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

Trouble is, any good practicing programmer should know about all that and more (e.g. networking and UX). Of course people will have specialties, but they should have decent knowledge across the board.

But they don't have to learn it all in school. The way for CS to cut itself down to a manageable size is to concentrate on the traditional "hard core". Compilers, operating systems, plus some newer (i.e. from-the-1970s) stuff like networks, distributed systems and concurrency.

As always, people will cry that they never (ha!) do such stuff in their real jobs. But the more day-to-day stuff can be learned on the job. The stuff I listed is where university-style learning can offer a real advantage.



It's interesting to read someone else thinking that - I am about to graduate with my CS / Engineering degree, and I've tried to take classes which benefit from university instruction. The courses I've chosen and found most valuable have essentially been the ones you named: compilers (we wrote a compiler for a C subset), operating systems (we wrote a simple operating system with multiple processes), networks (implemented the TCP stack in userspace), and algorithms.


If nothing else, these classes were great because they removed the mystery of what happens after you write your code. Many jobs boil down to moving strings around the network, and many programmers draw a line somewhere in the towers of abstraction we've built to do this, and never cross it. But you'll have the priceless benefit of confidence that if something goes wrong, it's code all the way down, that you can understand and debug.




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

Search: