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

This is great advice and will give a good background in programming that mirrors what you would learn in a CS program.

I'd also like to suggest studying the practical side of building software that many university programs don't spend much time on. To help address this gap, John Ousterhout wrote A Philosophy of Software Design. He has retired from teaching, but captured the hard-won lessons in the book.

This type of book offers the perspective I wish I had developed more before working in software teams early on, as it would have made me a more valuable developer right off the bat. Instead, I went deep on architecture patterns and language theory, becoming somewhat insufferable to my peers (who were very tolerant and kind in return!) for the first few years. 20 years later, I can see that I was trying to hammer a CS "peg" into a business-software-shaped hole :)





I see your point about pragmatic software engineering not being valued enough in university programs. Somehow the incentives are not aligned properly, which is unfortunate. I try to be as pragmatic as possible when I happen to teach courses where this makes sense. Next semester I'll probably teach "C programming" again after a few years, which is always fun for the students, who will never see a raw pointer again in their career.



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

Search: