Sei sulla pagina 1di 2

9/25/2017 Brian Bowman's answer to What would be a good schedule with regards to learning areas in computer science every

every week to become a competent industry software developer? - Quora

What would be a good schedule with regards to learning areas in


computer science every week to become a competent industry software
developer?
This question previously had details. They are now in a comment.

Brian Bowman, Principal Software Developer in Analytic Server R&D at SAS


for 32 years
Updated 13h ago

Focus on the fundamentals:

1. Good logic skills

2. Competency in discrete mathematics

3. Basic fluency in a modern programming language. That is probably still Java. Also C if you have any desire to do Linux kernel coding.
Otherwise goLang, Scala, or Python as a "second language" to be familiar with.

4. Data structures and basic algorithms

5. Mathematics through linear algebra and calculus-based probability theory.

6. Operating Systems — Linux internals then Windows APIs etc if you plan to work in MicroSoft’s ecosystem or OS X /iOS if Apple’s

7. Basic skill in Intel X 86–64 assembly language. Power64 or ARM are good second choices if you have time.

8. Analysis of algorithms (ideally having coded them up and measured timings in assembly as well as Java or C/C++).

9. Relational and Columnar Database fundamentals. Ideally a second course in database theory.

10. Network fundamentals and socket programming.

11. Formal languages and Automata theory.

12. Compilers.

https://www.quora.com/What-would-be-a-good-schedule-with-regards-to-learning-areas-in-computer-science-every-week-to-become-a-competent-industry-software-developer/answer/Brian-Bowman-17 1/2
9/25/2017 Brian Bowman's answer to What would be a good schedule with regards to learning areas in computer science every week to become a competent industry software developer? - Quora

These are foundational topics that would prepare you for a wide array of software development positions.

Since I do not have a formal computer science degree (I was a CIS major), I have learned most of these things at various levels of depth as I've
worked as a software developer for the past 33 years. I've been fortunate to have several mentors who are very advanced in formal academic
computer science. I also read extensively and work problem sets from Knuth and others.

Not getting a formal computer science education is one of the biggest regrets of my life. Although it has not really held me back professionally, it
would've been so much more efficient to have learned it in an academic setting as Kurt Guntheroth and John L. Miller have repeatedly pointed
out here on Quora.

https://www.quora.com/What-would-be-a-good-schedule-with-regards-to-learning-areas-in-computer-science-every-week-to-become-a-competent-industry-software-developer/answer/Brian-Bowman-17 2/2

Potrebbero piacerti anche