

Ask HN: Rate my OCW math curriculum for comp sci - ramblerman

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.<p>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.<p>My emboldend plan is now to continue with the following courses (all on OCW) : http://i.imgur.com/nHFoQip.png<p>My questions are:<p>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.<p>2) Am I overstating the importance of math in comp sci, will I be dissapointed?<p>3) Any addendums or modifications to the plan are welcome.
======
alexholehouse
I think it depends a lot on what you want to do.

For 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.

------
impendia
I think combinatorics -- both enumerative and graph theory -- are likely to
prove very useful, perhaps the most important thing you could study.

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!

~~~
cowsaysoink
Differential equations has its uses within specific fields.

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.

------
logn
I didn't go to MIT. I think Automata and Combinatorics were two of the more
interesting and relevant courses I've taken. Calculus is enlightening but I've
yet to find a use for it. I think Probability is important too. "Math for CS"
aka Discrete Math is good. If you're into graphics I guess Linear Algebra is
helpful but I've never use that.

------
rdouble
Do linear algebra and stats+prob before getting into multivariable calc. You
can probably leave DiffEq out entirely unless you're getting into modeling.
Math for computer science is a grab bag. Graph theory comes up a lot but
propositional logic never comes up.

------
ramblerman
clickable link for the plan : <http://i.imgur.com/nHFoQip.png>

