4 ms·
I understand where you're coming from completely. I worked as a software developer for about 5 years before starting an MA in CS having previously gotten a BA i
by jfaucett 10y ago
I understand where you're coming from completely. I worked as a software developer for about 5 years before starting an MA in CS having previously gotten a BA in the humanities.
To answer your question, the biggest knowledge gaps for me where in the following: Mathematics, Physics and just being able to parse and understand theoretical stuff like books and articles on information or complexity theory.
The biggest thing that has helped me has been to just do tons of math, i.e. working through calculus, linear algebra, combinatorics, probability theory, etc. and once you get relatively comfortable with these subjects most of the "CS Theory" stuff seems pretty simple IMO or at least easy enough to understand and apply.
From experience, I can also tell you the theoretical stuff is generally the biggest gap all developers have whether they have a degree or not, simply because they are developers not theorists and rarely if ever use 90% of the theory except perhaps O-Notation.
So my advice would be to do lots of math/physics in your free time if you're not already really comfortable reading and comprehending more advanced "math texts". Once you get comfortable there, I'd just read the following books till you understand and can apply them, if you do that you will probably know more than 95% of software developers out there.
Books:
1. Introduction to Algorithms (by Cormen,Leiserson,Rivest,Stein)
2. Introduction to Automata Theory, Languages, and Computation (Hopcroft)
3. All of Statistics (Larry Wasserman)