I’ve been asked a number of times in recent years by (usually) High School kids, as to what exactly they should do to end up being a programmer at a “Cool Web 2.0” website (or something like that).
My response to them is almost always the same: Go get a Computer Science Degree
I then perhaps go into a discussion about how when I’m hiring and looking at resumes, especially of people without 5-10 years of solid experience anyway, that they quickly get sorted into piles of “Computer Science Degree”, or not.
Most simply put. Someone who has a Computer Science degree, has been taught the theory of programming, of algorithms. They have been taught how to ‘think’ like the computer, heck they hopefully even had to write some assembly code. They understand programming and they understand good program design (Even if they may have some ‘interesting ideas’ because of what their teachers specifically harped upon). They also understand the theories of Software Engineering and how to work as a team.
To contrast this, the other degrees, or lack of a degree … People in those categories MAY understand all of this. But it’s not guaranteed. Typically Computer Engineering students have learned much more about hardware and their programming knowledge was to allow quick one-off projects that were meant to work on chips. Computer Information Services students usually have a business degree, and were ‘also taught how to write code’. Those people without any degrees at all, may be very good at hacking out lots of code, and code that works, but not code that they deeply understand, which leads to problems later.
Yes, people without Computer Science degrees can have these skills. And as I said, if someone is giving me a resume and they have 10 years of deep coding experience, I’m not going to bother looking at the degree at all.
But in my opinion, having a true Computer Science degree under your belt is the best thing that someone without deep experience can have on their resume, and is an excellent use of 4 years of your life.