A friend of mine once described getting a college degree as "getting your union card". A college degree doesn't indicate knowledge or experience per se, but what it does imply is that person can make a long-term commitment and complete it. A college degree is a significant investment in money, time, and effort. Lots of people don't attempt it or quit along the way, so someone that completes one demonstrates that they can complete long-term tasks.
3-4 of the best years of your life is a hefty price to pay just to demonstrate that you can do something for a long time.
This question is asked frequently and I can summarize the ensuing debate. For any benefit offered by college, or competence that it allegedly demonstrates, it can be said that:
1. college doesn't actually accomplish that in practice, and/or
2. it's not actually important in the real world, and/or
3. the same thing can be achieved faster/cheaper/more effectively through self-education/work experience, and/or
4. it is obviously not worth the staggering investment of time and money.
I rarely see tech job ads that don't qualify the education requirement with "or equivalent experience" so the people doing the hiring seem to feel the same way.
> 3-4 of the best years of your life is a hefty price to pay
Those 3-4 aren't really going to be the best unless you're in an environment with young girls, beer, drugs, and class, where you get to meet new people.
In my town, you do all that in high school. By the time you start uni, you either have peers from school or peers from outside school who you found because there were no other weird people in your school. There's nothing special going on at uni and whatever there is is perfectly accessible to everyone else.
I'd say the connections in my extended social network are 5% through high school, 1% through uni, 10% through doing random stuff and the rest through friends. That network provides me with a more or less steady supply of jobs, girlfriends, cool dudes and assorted adventures. And, it's part of the real, permanent world and not some expensive fantasy camp that you have to leave behind when the vacation's over.
Maybe things are different here, but if it works for us, it can work for anyone, and economics may soon force the matter.
If people want to hook up, get high and party, they'll make it happen wherever they are and whatever they're doing, so they might as well be doing something useful.
If all you're going to end up with at the end of uni are some good stories, you can condense the partying to 1 year of backpacking far more efficiently and cheaply. I personally believe the experience is far superior, and the lessons learnt more valuable. Depending on how you travel of course.
So imho if you're basing uni's value purely on the social aspect then it comes up way short. Instead, go travel for a year or three, figure out who you are and what you're passionate about, then get to it. You're forced to be social in both atmosphere's.
Compare a four year degree to two years of travel and two years work experience in your chosen field. Which do you think has the edge?
Absolutely not. The closest thing I have to a degree is a few credits towards my Community College of the Air Force degree (an Associate's).
Being involved in the open source community and being a wealth of knowledge surrounding your field is more than enough.
My interview went smooth as possible as I simply talked about my past and present projects, throwing in terms like "SVN," "jQuery," and "semantics." I'm not saying sprinkle your keywords around but why wait for the interviewer to ask the question - tell him right off the bat and just let him check that item off.
For me: 6 years USAF experience in System Administration, wonderful letters of recommendation from my Commander and Vice Commander (a 3-star and a 1-star), leadership positions within open source communities in my field, and an apparent knowledge of not only my specialty (PHP) but the surrounding technologies (web servers, version control, database management, Python, Ruby, etc.) landed me a Senior Developer position with the largest contractor in US Defense.
My family and I live a much happier life, I am less stressed, don't have to worry about deployments and our take-home income is three times what it was two months ago.
How many people from the services do you know who have gone on to well paying non-Defense jobs? I get the impression that the enlisted route you describe is very often a lifelong commitment to the defense industry.
In case you didn't know, working for a large defense contractor is very different from most of the "real world."
Count me as one from the 'services' that has gone on to well paying non-defense job(s). But you are correct in that it doesn't happen often. At least not without getting a degree somewhere along the line.
Of course it's different than the real world - it's government. I'm sure we've all heard the phrase "it's good enough for government work." Sad, yet true.
Nonetheless, a lifelong commitment to the defense industry doesn't seem like a bad deal to me. Great pay, great hours, and no matter how bad the economy sinks - my job isn't going anywhere.
Do you need one? Obviously not. Whether or not you should have one is a different question.
The best answer I've seen regards professionalism. We require degrees from doctors and CPAs and passing the bar for lawyers not because it's a guarantee of quality, but because it indicates that the person has a certain minimal level of understanding of the field's Body of Knowledge. Having that knowledge means that they are less likely to totally screw up and they have a rational basis for finding a solution to whatever ails you. Requiring a degree in CS, SE, or EE (I don't see the point of requiring a degree if it's not directly related to the field) does exactly this.
Of course, the argument then becomes should we be regarded as professionals or "just" programmers & hackers...
Disclosure: I have a BS in EE and an MS in SE and once seriously considered becoming a registered Professional Engineer (PE). I'm also a card-carrying hacker and I disagree with the article.
> Requiring a degree in CS, SE, or EE (I don't see the point of requiring a degree if it's not directly related to the field) does exactly this.
But it doesn't. There are plenty of people with CS or SE degrees that lack a minimal level of understanding. Even with a terribly lenient definition of minimal.
I'm talking about people who get through 4 years of a decent CS program and would vehemently insist that "array" is an exact synonym for "linked list".
I'd say that the benefit of a CS degree is weaker -- just that it brings forced exposure to important topics, so if you have two people who are smart, the one with a CS degree is going to be more well-rounded. The thing is, you usually don't get to decide between two smart people when hiring. And the CS degrees that are around don't seem to reduce the risk of bugmaking.
Having had a lab partner who in Senior year EE couldn't do even the most basic things, I sympathize with you. But you need to consider what that person knows "as a whole." I've found that if you take the time to talk to graduates who were poor students that they do have a basic understanding of the subject matter, but there are gaps. The gaps tend to be most noticeable when they're really simple things, which I think is the point you're making.
Contrast that with someone who has say, a History degree who happens to be a good programmer. That person's expertise tends to be in one narrowly defined area and when taken outside that range he does badly. I'd rather hire someone who had promise to be reasonably good at anything I threw at him than amazing in one aspect and weak at most everything else.
I don't know where you work, but the people who make it through both our HR screen and the technical phone screen and end up in front of me are generally pretty bright. We normally weed people out for teamwork/communication skills rather than technical ability.
Next time you turn down someone with a History degree that has become a coding expert in a narrowly defined area, please send them to me so we can collaborate on something that rocks in another narrowly defined area.
With a college degree in Computer Science, I had a world of trouble finding a job that wasn't programming. I'd apply for different jobs and inevitably end up on the 'CS major' pile on some recruiter's desk. Grr.
I don't have a degree. Hasn't been a problem for getting work.
Instead of spending 4 years on a degree, spend 1 year learning just as much or more on your own, and then spend 3 months creating a couple good demos, an interesting resume, researching some companies you want to work at, and writing some good cover letters when applying.
I'm in the same boat. And to be honest, this problem of asking for a degree is not really our problem. I personally consider it part of the filter on potential employers. If, as an employer you're not knowledgeable enough to realize this for such an important position then I don't want to work for you anyways. It means I'll be surrounded by peers that aren't in it for the same reasons, and I probably won't have any chance to move up based on merit.
Not because I believe having a degree means you aren't a good programmer. Degree or not, I just don't trust it as an indicator of skill either way. 90% of the headhunter's I've run into in the past have no coding background themselves... so why would you entrust them with something so important to your business? You could be scaring off some really great candidates. To me it says your company really doesn't know how important the position is.
Granted it's often difficult for very small companies with limited technical resources to make the right hires, but if it's an attractive business and / or great environment we'll find you. Just don't turn us down because we do or don't have a degree. It doesn't mean anything.
Granted I'm not a superstar coder, but I'm very passionate about it and work very hard. I can figure out how to do most anything I'd need to for a job. A degree wouldn't change this in the slightest.
If I thought a degree would truly would benefit me as a programmer, then I'd probably go get a degree for higher learning purposes... and not because the job market supposedly requires it.
In fairness it depends on where you want to go. If you want to work for a big company like IBM, Microsoft, etc... you probably need a degree (though sometimes these companies skirt their own rules by hiring contractors)
But as far as other IT companies I don't think it's necessary.
Honestly I have a degree and if I were looking for a job right now I'd use a degree requirement to determine where not to apply. Because that, to me, says that the company is run by "managers" who don't understand the first thing about programming.
John Carmack's a dropout for God's sakes. That alone disproves just about every "devil's advocate" argument given in the article
I have a degree, just not one in computer science. I'm self-taught, and although I've been doing this for a long time, I still occasionally freak myself out when I start to think about what I might have missed.
First few jobs it can certainly help, but really once you have a couple years of experience you don't need it. I've been doing fine for the last 10 years. So latch onto a small shop and get good ;)
If you have a network of people who can get your foot in the door for a job, then no, it's not a necessity. It would be very difficult, though, to get past most HR screening without some sort of degree on your resume.
Development experience on a relevant platform will pretty much always trump a degree in my hiring experience
That being said, I don't have a CS degree but have made my bones for the last 10-15 years in some sort of developer role. The thing I can justify that a bit because when I started building websites they we're usually some sort of static site, Java was in its infancy and database driven websites were a few years off. A large bulk of what modern day programming (particularly on the web) consists of was still being developed and I could learn these skills as they rose to prominence. I could pace the growth of the technology, grow with it without too much trouble. There's a whole generation of developers in their mid to late 30's who are in this boat. I'd hire a bunch of these guys in heartbeat and I'll pay them pretty well.
Now in my current role I'm hiring junior developers fairly regularly. In this role where I'm looking for guys who are younger, smart and capable but who I don't want to pay a ton of money for. If I'm looking for a guy in their early 20s for a junior role I look for 2 things, a CS (or sometimes EE or CE) degree AND experience building something on their own. I've gotten a few guys through who started coding on their own in late high school but a lot of times they don't make the cut. In this case you don't need to have a CS degree, but just to leap the recruiters hurdles you better have one.
Mid-30s here, and I'm with you completely. I remember when I was in school I was pretty bored with what was being taught, however a couple things (specifically database theory) got me revved up and I kinda took off on my own. Acing my classes without attending them because I was busy building the department's intranet (none of the professors knew what an Intranet was until I explained it to them).
I dropped out one year before completing my program. Which is kind of funny because it really wouldn't have taken any effort. Instead I was chomping at the bit to work on this new and exciting back-end web stuff, so I went and got a contract job with a small webshop who didn't really understand what I was doing either at first, but we did some great work and had some great success.
My profs were great because they realized I was on to something pretty nifty and tried to make it easy for me to pursue it. They also tried to learn some of the stuff I was learning (I was teaching them in a way). In the end I think both sides benefitted from it.
Okay funny, not sure you'll ever see this but, I just followed your profile to your site to linked in (curiousity thing).
I think we might have crossed paths once, I was the lead ITV engineer at TechTV doing an Interactive IO Portal for CableVision that Extend designed. Worked mainly with a woman dev who's name I can't remember right now.
Overall, I would say no. I think a developer who spends more time actually developing is better off than one who only studies about the theories of Computer Science and doesn't really ever apply the knowledge they acquired.
That's not to say Computer Science is useless, but your time in college is better spent doing more than the minimum requirements for school (doing homework and passing tests). Otherwise, you'll have a harder time trying to get "work experience" with your first job after graduation when you could have given yourself plenty of experience with your own projects.
You don't have to have a college degree but unless you have experience you will face a significantly higher barrier to entry in getting a job without one.
The question will always, be, if you are really such a kick-ass coder and love programming so much, why didn't you go and study what you love at college? If the answer is that you couldn't be bothered or you already know everything there is to know so it would be a waste of time etc. then it indicates something possibly highly problematic about your personality, like an arrogant or lazy attitude.
For me it was a matter of efficiency. I have a natural dislike for inefficiency. Why would I go to university for 4 years to learn something I believe I can learn on my own in 1. Maybe I'm wrong about that, but the educational resources available outside of institutions nowadays are incredible.
I also learn so much faster by doing. For me personally, there's not enough doing in university. I imagine there's quite a few similarly minded coders out there. Maybe it says were arrogant? Too cool for school? Most likely. But I get along with most people socially, and also have no problem buckling down to get a job down. In fact I get very focused when I work. I just never learned very well in the typical school environment.
That said, I think programs with internships could be extremely valuable though. A mix of theory and practical has win written all over it.
A degree will help you get your foot in the door if you're looking for your first programming job. Once you've got some real world experience, that's going to be much more valuable than what you might have studied in school.
A lot of places (especially smaller companies, in my experience) are more interested in seeing examples of your work, even if it's a web page you designed or an open source app you've contributed to in your spare time.
Some of the best developers I know either A) Never went to college for B) Went to college and majored in English or Classics and taught themselves to code.
nope. i'd hire someone without a degree if i had the need to hire for my company. hiring should be about the person. a degree is a very good measuring stick, but there are other ways to measure out there.
plus, as someone who has a degree, i know comparatively little about real-world development you learn simply from your classes.
That's not assured: phds are almost always paid significantly more and tend to be more involved in R&D projects than day-to-day code grinds, and depending on how short sighted the company is, R&D is often the first group to see cutbacks.
It's not all that uncommon for a company to simply look through their rosters and pick off the highest paid non-essential personnel (for certain values of "essential," which usually put middle management above R&D) to get rid of.
Of course this largely depends what kind of work you're doing, so YMMV.