top | item 46878182

(no title)

fancy_pantser | 26 days ago

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 :)

discuss

order

gignico|24 days ago

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.