Hacker News new | ask | show | jobs
by aidenn0 4924 days ago
I'm not sure anyone knows the answer to that question. My best first approximation is to just jump into an open-source project and try to fix bugs. It gets you to both read code by those who are (presumably) more experienced, while also working your problem-solving skills.

Classical CS education is also important; I went to a school with a fairly math-heavy CS program so that's how I learned it. Our algorithms text was pretty good, but it's on my shelf at home, so I can't recommend it by name.

The lecture notes for CS 182 are reasonably good for the really basic stuff: http://www.cs.purdue.edu/homes/raof/cs182-f12/schedule.shtml

[edit] Not quite as complete as they used to be; it was previously all taught from lecture notes, but they now have 2 textbooks they use as well