Ask HN: Rate my OCW math curriculum for comp sci
I've been programming professionally for 5 years - mostly java. The prospect of doing the same thing in 10 years is less than attractive and a PM position doesn't appeal to me. What I really want is to further my technical knowledge, dig deeper. Machine learning is something that springs to mind, as I really enjoyed the coursera course. But above all I just want options.
I have no math above college level and I think this is my main achilles heel. I actually started with an algebra refresher via ALEKS and have now commenced Calculus I on MIT Open Course Ware. Two Exams in and I'm actually performing well. This has removed a long standing irrational fear I had with math.
My emboldend plan is now to continue with the following courses (all on OCW) : http://i.imgur.com/nHFoQip.png
My questions are:
1) These are all MIT courses, any graduates care to comment on the experience, perhaps weigh in on which are more and less useful in your day to day work.
2) Am I overstating the importance of math in comp sci, will I be dissapointed?
3) Any addendums or modifications to the plan are welcome.
6 comments
[ 3.3 ms ] story [ 22.5 ms ] threadFor any kind of machine learning or data processing, linear algebra is definitely a good thing to have. Basic calculus is good too, but I'd say may be less important if you're applying methods and approaches as opposed to developing them too. Differential equations, while providing an important set of mathematic tools which may open some doors you didn't even know existed, may not be the "highest yield" material from a programmers point of view.
In my opinion, probability and statistics is a big yes for anything data related, doubly so for algorithms. I'd also consider some graph theory, as it's amazing how many problems can be projected as networks and then approached from that perspective.
I suspect that differential equations could be left out if you choose. IMHO the subject is boring, but naturally others disagree.
I suspect it will be indirectly helpful to get practice writing proofs. I imagine some of these courses already involve proof-writing.
Finally, I also believe it will be helpful if you see some mathematical abstraction. I think the best place for this is abstract algebra (= "modern algebra"), and in particular group theory.
Here is one fact to convince you that group theory is cool. It turns out that there are 43,252,003,274,489,856,000 positions into which you can manipulate a Rubik's cube. But suppose that you are allowed to take apart the puzzle and then put the pieces back together any which way. Then there are 519,024,039,293,878,272,000 positions - exactly 12 times as many.
Why is the ratio of these an integer? Study group theory, and you will have a very good intuition for questions like that. Probably not something you will need directly, but I imagine it will sharpen your mind in the direction you'd like to go in.
Good luck to you!
If you want to do anything involving control systems or robotics it would be good to have a background that includes differential equations.
Anything related to kinematics usually involves differential equations as well.
As for compsci outside of controls and robotics you see diff eq a lot less.