Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:
JavaWorld Daily Brew

Do You REALLY Need a College Degree to Get a Programming Job?


 

There's plenty of articles about the shortage of skilled IT workers, and the difficulty experienced by companies in finding qualified software developers. The whining would be far more credible if the Want Ads didn't have a silly, arbitrary qualification: a college degree.

There's nothing wrong with a software developer getting a college degree in CompSci, especially when it accompanies an opportunity to learn useful skills. My problem is with hiring managers who think the degree an absolute necessity, and who exclude otherwise-brilliant candidates who didn't spend four extra years in a classroom. If you never graduated from a university, you may discover that getting a programming job without a degree is like trying to get a Teamsters job without a union card. Which is, not to put too fine a point on it, really dumb.

Frankly, I have always found this attitude unfathomable. But I'm willing to be wrong (really) and to listen to the opposite viewpoint. So I asked for input about the reasons someone might require a college degree as part of their company policy. I hoped to be given an "Oh! Now I understand!" moment in which I whacked myself on the head. So much for that idea.

A strangely common explanation for requiring a college degree is that it demonstrates "commitment." As a recruiter friend said, "One client described it to me as less about the education or the degree and much more, for them anyway, about the sense of commitment the person shows to starting and finishing something. They indicated that they saw the lack of degree in parallel to the lack of loyalty or dedication to the employer." Or as someone else said, "It helps demonstrate that that person can set a goal and then achieve it. It also shows that the person had the vision to realize that four years spent now will probably pay off in the long run."

Maybe, maybe you could get away with that attitude if the manager is trying to fill an entry level position, and expects the pool of candidates to be very young or have little experience. In such cases, the youngsters have had little time to "achieve" much of anything, so the ability to do an all-nighter in pursuit of a good grade is — arguably — an indication of seriousness.

But even then, it's not really a measurement of commitment. It's a measurement of the candidate's parents' ability to pay a college tuition. Yet, someone who dropped out of school because he could no longer afford it and had to earn a living might care just as desperately about the field. Requiring a college degree (in anything, not just CompSci) excludes the people who are really committed to learning programming skills, because they did it on their own time, or worked full-time days while they attended a Tech School at night. Becoming a programmer because you want to demonstrates resourcefulness and determination. Aren't those equally important as "commitment"?

Another major problem with the "commitment" excuse is that its relevance fades over time. I might have been a drifter or impatient idealist at age 20 (and in fact I was: I dropped out of a poison ivy league university to Save the World). In the ensuing 30 years, I might possibly have learned something — ya think? Yet, if I apply for a "college degree required" position today, my résumé wouldn't make it past the HR department. (Because, as we all know, HR departments exist to eliminate candidates, not to find them.) I've seen several programming jobs listed that specify "college degree or five years experience," and I'm fine with that. But I also know a major innovator in programming languages who was told he couldn't teach a class in the field he invented, because he never bothered to get a sheepskin.

So far, I'm assuming that a company demanding a degree insists you have one in Computer Science, but I've rarely see them specify what your major should be. As several people pointed out to me (and I agree wholeheartedly on this point), the best programmers often come from other disciplines. (IBM at least used to give a +1 to any candidate with a degree in music.) To the degree that college does teach you "how to think" (though I suspect it's more likely to teach you how to drink), it's more important for students to acquire the skill of learning quickly than to have college experience in programming a now-"legacy" language.

As one correspondent, John M, explained eloquently, "The drop-dead killer programmers you want on your team, as likely as not, were not CompSci or Software Engineering majors. They're doing programming because they like to do programming. They're intrinsically interested in communicating with the machine, and what they can get the machine to do. The college kids you interview are in Comp Sci or Software Engineering because they think they'll earn big bucks. That's why Joel Spolsky insists that any job interview should include asking the candidate to write code. I've had Dean's List students from major engineering schools who couldn't solve a simple problem — and couldn't be coached into figuring out what to do. I have a young man working for me now who majored in Music Composition who rolled his eyes at the problem and said, "You probably don't want to do it that way—the new LINQ to XML tools make it easier...."

For fairness, let me cite a few of the more sensible responses I encountered:

  • A college degree in CompSci gives you fundamental skills, such as data structures, how to handle large problems in a systemic way, or an awareness of accounting (relevant, since many apps interface with accounting systems). Someone with a university degree understands the difference between "coding" and "software engineering," my correspondents argued.

    I'll give a nod to this viewpoint, because a good degree program does expose students to these important concepts. But I'd argue that few college graduates get a holistic view of the field until they're out of school on their first job, busy un-learning all the technically interesting "techiques" they were taught, and finding out how programming works in the real world. (The most arrogant programmers are the ones who just graduated, as I'm sure you've noticed. They're also the best and smartest in the industry. You can believe them, because they'll tell you so.)

    A degree does not guarantee that the job applicant learned these skills. Programming skill is not a sun lamp. Being exposed to it doesn't mean you soak it in.

    Nor does it mean that someone who worked her way through tech school, or who is self-taught from many fine programming books, lacks an understanding of Computer Science basics. Instead of asking for a degree, the interview process at these companies should include the question, "What's the last programming book you read? When? What did you learn from it?"

  • Some programming tasks need specialized knowledge you'd only get in school. As one person said, if the software to be written has complex algorithms, such as those that are calculus-intensive, a degree is usually a must. "You might find some unique individual without a degree who can code such algorithms, but that would be a very odd case. Or maybe the person did go to college but did not complete. It is unlikely that someone off the street without schooling could do that task."

    Here I disagree. If you need specific knowledge, advertise for that need. Someone can major in CompSci without taking calculus; the degree wouldn't assure you she had that knowledge. But if the job listing makes it clear that advanced math skills are a prerequisite, you have a better chance of finding the right individual. Degree status isn't part of it.

    The other assumption in this argument is that domain knowledge can't or won't be learned outside of school. That's really strange. Because someone who works in a given area is likely to learn a lot more about it than somebody who took a three-hour course in it, a decade ago.

    For example, one correspondent without an undergrad degree was contacted by a recruiter whose client wanted software developers who understood their specific industry. "The project they were undertaking was an exact mirror for the project I had just completed for their chief competitor. My references were excellent and were from industry leaders that their very own senior management had long relationships with. My qualifications were so solid, I expected an interview to be merely for ceremony." Instead, the hiring company decided not to speak with him. "His client required a college degree. It wasn't important if the degree was in the artistic studies of microscopic archeology but a degree was required. They refused to review my résumé."

  • The degree is a measurement of achievement for those who have no other metric. One individual asked, "How familiar with software development is the person doing the hiring? If little, then would you want to rely on someone who claims to have a lot of experience without a degree? What would be the measure of identifying how knowledgeable the person truly is?" That's a fair point — and one that is a worthwhile question outside of the hiring process. (Certainly, it applies to any computer consultant who needs to sell herself to a non-technical client... a topic I'd better leave for another time.)

    But I'd hate to think about the decision-making process in which one candidate is chosen over another because the former, to paraphrase comedian Robert Klein, was admitted to a college that'd accept anyone who could make it to the bursar's office. If the hiring manager isn't qualified to judge someone's knowledge, hire a consultant to interview the candidate and write a report the boss can understand.

    Or take the aforementioned John M's advice: "By contrast, I can think of three strong predictors: Has the candidate been involved with the full life-cycle of a serious project? Is the candidate presently doing software development outside of work (i.e. for a social organization, his church website, a non-profit, or a hobby interest)? And does the candidate have strong performance experience with music? Two of the three warrant giving this person a close look; find all three and you've likely got your new team member. The college degree? It's a nice-to-have."

    If a company really and truly wants the best programmers it can hire, it should ditch the "college degree" requirement. Now.

  • We used to disqualify those with a computer degree...

    I'm only half-kidding: When I started out, a comp-sci degree was a negative. They didn't know basic data processing.

    I took music when my friends took CS. I use to mock them for complaining about 100-line final exams. I'd write more than that before lunch.

    IT recruiting is a mess, though.

    (I majored in music. Heh.)

    Heh. I knew someone who disqualified PhDs on principle.

    MANY years ago, my husband worked with a brilliant (and self taught) developer when the company happened to have a job opening. "Let's have some fun," Mike opined, "And interview a few PhDs." My husband sat in on a few of the interviews, and said all the candidates lived in ivory towers.

    We need the top

    We need the top administration official to hear and appreciate how badly the education organization is broken down in some parts of the globe. Education is a great stepping stone in finish shortage once and for all, by enable people to work and be industrious members of society. It’s time to teach people about binary numbers, how to stay healthy by hand wash, and other basic fundamentals.

    not a miracle

    I know many freelancers who dont have a College degree, and now they have programming job... including me:)
    ______________
    VirgilM part of Usi de garaj team.

    Hiring programmers without a college degree.

    I am a retired System/Programmer Analyst. My IT career started in June 1966 on the brand new IBM 360 30! I do not have a college degree. I stayed in IT till July 2007.
    I recall reading Computer World, when it consisted of 6 or 8 pages max. There was an article in mid to late 60's about the state of Illinois in conjunction with IBM attempting to teach programming to inmates of the Illinois penal system. It seems they decided to select those inmates who planned bank robberies because those types of inmates were very good at using minute detail when planning a holdup!

    On another note. Pun intended, IBM was also hiring Music majors, sometimes selecting them over
    Engineering majors! It had to do with their mental discipline needed to score music at the orchestra level. Various instruments could be viewed as various input devices with different protocols. The resulting sound would be the desired output.
    I was an amateur musician and that could explain the longevity I experienced in an IT capacity for over 40 years. I'm a COBOL "dinosaur" and always found the work challenging with self satisfaction.

    I recall good and bad programmers in both categories, college degreed and non-college degreed. The one problem I have noticed in IT resource use is the constant use of the "Peter Principal where one gets gets promoted to their level of incompetance. Too many good programmers were enticed into being bad "managers". That always
    kept programmers in demand. That was a perfect example of "Dumb and Dumber" in corporate America.

    college degree

    Strongly agree, there's both good and not-so-good regardless of degree. It all comes down to the skill set of the individual.

    Serialization is the process

    Serialization is the process of saving an object's state to a sequence of bytes; deserialization is the process of rebuilding those bytes into a live object.

    Yeah!! I do agree with your

    Yeah!! I do agree with your point to a certain extent but the degree which comes with the person qualifies him for the responsibility..Classroom learning has always been seen as a stereotype and gives you the behaviour and the future vision..

    I couldn't agree with you

    I couldn't agree with you more!

    The problem is now partly

    The problem is now partly eliminated by inculcating the learn-while-work policies in big MNC's so that the employees' can pursue the higher studies simultaneously...Employment in Dubai

    I don't think so but Degree

    I don't think so but Degree can be an added advantage to any Career. toner cartridge

    don't need College Degree

    i think don't need College Degree to Get a Programming Job. Gemstone Jewelry

    Yes, you probably do

    Trying to select candidates for a programming role is a difficult task, fraught with traps for the unwary Development Manager.

    I've been a programmer for a couple of decades now. Needless to say the Fortran, Cobol and Pascal that I learned at university have little relevance in today's market. Even so I strongly believe that many of the concepts I learnt still apply today, and that without the foundations learnt there I would not be as capable a developer as I am.

    I've also led and/or managed a number of programming teams, and although I've come across university graduates who show little to no initiative, by far the worst candidates I've ever had the misfortune of working with are those who are "self taught".

    Some of these guys thought themselves geniuses -- an opinion I did not share. Some actually produced some pretty impressive results -- at first glance anyway.

    The problem always came when you looked at the code behind. Poorly structured, badly implemented, completely undocumented and therefore a nightmare to maintain or extend.

    There MAY be some genuinely talented programmers out there who have no degree and are largely self taught, but they are few and far between. Mostly what you get are cowboys.

    If I was going to be shelling out the cash for a top notch developer, I would take a lot of convincing before I took on someone who did not have a degree.

    This is what code reviews are *for*

    If you are not performing them regularly - then you are at fault for any poorly implemented/documented work. Code reviews are *essential* regardless of what degree you got where.

    Personally, the worst work I have ever seen was committed by an Ivy League Phd. It was almost a personal affront to look at.

    Do You REALLY Need a College Degree to Get a Programming Job?

    Look at :

    1. Bill Gates
    2. Warren Buffet
    3. Thomas Alva Edison....... The list is huge, all without a college degree !

    Thomas Alva Edison

    I didn't realize Edison was a computer programmer. You do realize that Edison had many many bright individuals under him actually doing the work?

    Also (can of worms here), what has Bill Gates actually written himself - and from scratch?

    Sure - but Gates left

    Sure - but Gates left Harvard as a junior. I contend getting into Harvard (or a few other ivy's) and staying for any cnsiderable period of time marks that individual as a good cut above a graduate from most any lesser school. You get into Harvard and the top ivy's for a reason - you are superior.

    ... or you're a legacy or

    ... or you're a legacy or have a monied family or...

    What did Bill gates write?

    I believe it was called BASIC!

    Kemeny and Kurtz wrote

    Kemeny and Kurtz wrote BASIC. They were professors at Dartmouth at the time. John Kemeny went on to become President of Dartmouth. They both had college degrees.

    Warren Buffet

    Warren Buffet has a degree.

    Not only that, but a Masters

    Not only that, but a Masters degree from Columbia.

    Not only THAT, but he was

    Not only THAT, but he was the only one in Ben Graham's class to ever get an A.

    These people don't work or

    These people don't work or get a job. They build their own company.

    I agree!

    I am a 3rd year EE major at a UC. I have also taken quite a few CS classes.

    Right now I am reading "Surely you're joking, Mr. Feynman!" Mr. Feynman spends much of the book exploring meaning of true intelligence; the difference between knowledge and intelligence, between knowing and understanding. Getting a good grade in a class means you know, but not necessarily that you understand.

    The best programmer I know isn't a CS major. He's an EE major who programs because he likes solving problems. He learned by doing projects for himself - just to see if he could do it. So did I, and I took CS classes to see if I was any "good". The result? I have ranked within the top 5 of every CS I've taken (out of typical class sizes 80~120)! The cs majors are like cattle, being herded through some arbitrary set of requirements they don't care about and won't take the effort to understand.

    If I ever become a manager I'll be the first one to eliminate the college degree requirement!

    (but it won't stop me from getting MY degree)

    Non-degreed developers

    To all those who favor throwing open the floodgates and allowing all and sundry to become developers - you should also allow carpenters to work on your gall bladders and hernias. You should also let plumbers and roofers fix your cavities and perform root canals. Does that sound fair?

    Yes, as long as the

    Yes, as long as the carpenter can also perform surgery to an expected level; or the plumber perform dentistry to an expected level.

    Of course, allowing these non-degreed persons entry is not opening the floodgates to all and sundry when they are still required to know what to do and perform to a certain level.

    The question is whether getting knowledge/experience A from source B or source C makes any difference. I would contend that if the knowledge really is the same, then the source is of negligible difference.

    One has nothing to do with

    One has nothing to do with the other. It's more like, letting your gardener help you move furniture.

    non-degreed developers

    I see what you are doing. Cleverly using a person's well being to prove your (invalid) point.

    You are likening medical skills to programming skills. They're not even in the same ballpark.

    Would you allow a computer programmer to fix your leaking faucet? How about build you a shed?

    What if your carpenter never had a formal education, but learned on the job? Does that make his work shoddy?

    I believe a formal education is a wonderful start, but it's not a mandatory one.

    I will say that it's an easy out for HR departments though. When the stack of incoming resumes gets bigger and bigger, it's an easy filter to apply.

    interesting question....

    The best programmers I have hired and worked with have college degrees. The odd thing is I can't think of one with a CS degree. For this reason, I tend to favor degrees. I can only think of one exception while I sit here. They tend to not be what I call a MAVERICK programmer. They also tend to be more discipline, become cogs more easily on big projects and have less fragile egos. I have not kept count but probably only have met a few hundred in my working lifetime. Education is directly linked to prosperity. I am amazed every time I go to China and India. I worry for a our future and the potential answers to questions like this.

    Comment viewing options

    Select your preferred way to display the comments and click "Save settings" to activate your changes.

    Post new comment

    • Web page addresses and e-mail addresses turn into links automatically.
    • Allowed HTML tags: <p> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <br /> <br> <strike>
    • Lines and paragraphs break automatically.
    • Use <!--pagebreak--> to create page breaks.
    • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

    More information about formatting options

    CAPTCHA
    Just checking to see if you're an actual person rather than a spammer. Sorry for the inconvenience.