Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I agree on the last point. I think this sort of stuff can be learned in an apprentice-type way, but not many positions currently do a good job of it. A great motivated way to learn big-O type analysis, for example, is to work on a system where a bottleneck gets improved from an O(n^2) to an O(n logn) algorithm, while working alongside someone who explains to you what that means, how you determined which algorithm was which, and why this is useful analysis to know how to do.

A lot of non-degree programming jobs seem to lack both the challenge and the mentoring to make that happen, though, so you end up with people who learn more about how to bang scripts together out of snippets pulled off the web. That's actually also a pretty useful skill, especially if you become a very fast and skilled applier of band-aids, but it's not quite the same as a CS apprenticeship.



Good point, and actually one I overlook too often in my own experience.

I went to CMU for two years before dropping out, so I did get a decent grounding in data structures / algorithms etc.. And I absolutely agree that that grounding has been important and is hard to get in the trenches.

Maybe we need to be arguing towards one or two year of school then apprenticeships?

My housemate teaches a one year CS fundamentals course here in Rwanda. It is essentially the only real CS training available in the country, though there are plenty of people with degrees from the universities. But he does a pretty good job of covering the basics. I'm sure he'd confess that two years would be better than one, but I'm not sure he'd argue for more.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: