Hacker or Developer?
June 30, 2009 § Leave a comment
Ran across this article on infoworld discussing whether American programmers are really properly trained for a career in software development. It makes a lot of very valid points.
Some of the best developers I’ve worked with are self-taught. My friend Derek I still consider to be one of the most talented developers I know, and he’s a physics teacher. The problem with being self-taught are all the things that you don’t learn teaching yourself. Stuff like how to put together a design document, communicate effectively with your team, document your code properly, write code that can be maintained easily and understood by people other than yourself. These are things you typically learn on the job – well, maybe, depends on the type of job you have, and where you work, and who you work with. Some of these things I don’t even really think I’ve learned fully – I’m still working on them.
Of course, the things that are missing from the self-taught developer are largely the same things that are missing from the college educated developer. College degrees are computer science degrees, which is a lot like getting a degree in fluid dynamics if you want to be a plumber. Sorry, it’s not something most of us want to hear, but we’re the plumbers and electricians of the 21st century. We take bits of code from here and there, write a little bit of original code to tie it together, and create a software solution. Most people outside this industry are about as cognizant of the software development process as they are the inner workings of their car.
So why are we getting computer science degrees? If the things we’re learning in college are of no more practical use than the things we learn on our own, and most of us don’t work in an ivory tower, why aren’t we getting computer engineering degrees?