A computer science study plan
I am sorry but this is neither complete nor a plan how to become a software engineer.<p>This is a list of trivia to get you through a coding interview conducted by a clueless HR department that equates engineering skill with remembering answers to test questions. Nothing more.<p>None of the stuff in the list will actually teach you <i>how to apply</i> these techniques nor <i>when to apply them</i> (and when to stay away!) - which is much more important to know than to remember how to balance a red black tree or to sort a list.<p>The algorithms you can always look up - and frankly, how often does an average engineer implement something like that today instead of using a library? However, knowing <i>when</i> to use which technique or algorithm is absolutely essential.<p>What am I missing completely is foundations of mathematics. There is some on combinatorics (good) and some geometry in the optional parts, but where is numerical mathematics? Linear algebra? Basics of statistics and calculus?<p>With the &quot;big data&quot;&#x2F;AI crazes going on you will be dead in the water if you don&#x27;t know at least the basics. Not to design the algorithms (that will be still way over your head) but to at least have a shot at understanding what you have to implement! Nobody is going to explain you how to multiply matrices or calculate a covariance there.<p>Stuff like geometry and linear algebra is absolutely essential also for people programming computer games, anything related to virtual&#x2F;augmented reality or robotics.<p>Statistics is needed anywhere dealing with data but especially in AI, machine learning and computer vision.<p>And basics of calculus are pretty much everywhere.<p>So while the list is pretty useful as a reference, the title is seriously misleading.