Do You Need a Degree to be Hired to Develop Software?

I retweeted a link to Here's a Thing: There’s No Correlation Between a College Degree and Coding Ability. I was a bit surprised by some of the reactions to that link.

One colleague said, “I question whether people who wait until a college assignment to learn to code have the same obsessive interest in the topic.”

I was quite surprised. Back when I went to college, people didn't have access to computers except in school. And, what about those of us who only discovered programming by accident, say our sophomore year in school (me), or a few years later (another colleague)? Would a hiring manager penalize us for not knowing about programming when we were 12?

Do developers need an “obsessive” interest in programming? I don't think so.

When I hired developers, I looked for a number of preferences, qualities, and non-technical skills:

  • Ability to learn our system fast
  • Ability to get along with the rest of the team
  • Ability to take feedback and provide feedback
  • Problem-solving abilities in several domains: ways to look at both technical and non-technical tradeoffs
  • More things depending on the role and environment

Of course, I looked for technical skills also:

  • Ability to explain their code to me and others
  • We always did a technical audition, so we could see somebody's technical skills at work
  • Ability to explain how their code fit into the whole of the system they were working on at the time
  • More things depending on the role and environment

In all the time I hired developers (about 10 years), I never made a college degree a requirement. Nor did I make obsessive interest in coding a requirement.

One guy came into my (quite technical) software testing team via the IT group. He had a high school diploma. He'd been automating scripts for IT and was looking to expand his skills.

He automated everything he had to do more than once. He was fast. He was great. He was a sponge. He learned everything we could teach him, and then he taught the rest of us.

I'd been giving him raises all along because he proved his value. I tried to give him a specific raise because he was worth it. HR didn't let me because he had no degree. I ranted and raved, and lost that battle. By this time, he'd worked in our group for a couple of years. I suggested he consider a bachelor's degree. Not because it would make him more marketable. But, because it would allow me and any future managers to pay him what he was worth.

I had a colleague at a previous job who had no degree. He was a whiz at embedded systems. He was terrific at discovering the technical details that would make or break a system. He was great at coding, at iterative design, and incrementally building things that were resilient. I'm not sure how he got into software, but he was great at it.

I've also seen people with and without degrees who have no idea about the hardware architecture that they work on. I've seen people who had no idea how to design for performance or testing. They had degrees from accredited universities. Often, their degrees were much newer than mine (1977).

A degree is a sign of perseverance. It has little or no bearing on whether someone's code will work. (See Hiring Geeks That Fit for other suggestions of what to filter on, aside from degrees.)

If you make a degree necessary for your candidates, you are unnecessarily filtering some great people out. Why do that?

Your career has taken some path. Don't think everyone else's career should take the same path. We are all wonderfully unique. Hire for uniqueness, and you might just create a great team.

6 Replies to “Do You Need a Degree to be Hired to Develop Software?”

  1. The best developer (and much more – designer, coach, architect, program manager…) I ever hired didn’t have a college degree.

    Our company had also just hired a new HR person that started “showing their worth” with new rules such as the dictate that all hires must have a college degree. Thankfully the CIO decided that was nonsense and we hired the applicant.

    I have written about what a great software development team we created.

    1. HI John, nice story!

      HR defines rules like that when they don’t know how to define a job. That’s why it’s critical for hiring managers to do a job analysis and define their own jobs. Then, get together with the interviewing team and determine how they will ask questions about integrity, capability to learn, and how to turn that passion into deliverables.

  2. There’s one thing a degree guarantees though.

    It does guarantee that person has (or at leas had in the past) the ability, persistency and dedication to complete the required studies needed for a getting that degree.

    It doesn’t tell you anything about his or her technical abilities, I agree, but It does hint at a person who is able to commit to a project long time and put the required effort to complete it. In other word, the guy’s not a quitter.

    Of course a lack of a degree doesn’t imply lack of the above, it just means you don’t have that information.

    In the technical side I’ve found computer science master degree does in fact provide with certain assumptions (I.e. Knowledge of pointers, data structures, algorithms or concurrency) of a given level of knowledge and awareness about those topics.

    1. Hi Jorge, yes, we agree on the perseverance thing.

      Re the master’s in CS? My experience is it depends on how old the degree is. My Master’s degree is from 1984. We did not study concurrency or pointers back then.

      I learned a lot for my BS in CS and from my Master’s in Systems Engineering. However, everything I learned about pointers, concurrency and multithreaded applications came much later.

      I agree that a degree is a sign of perseverance. However, I do not believe a degree is necessary for a great developer. Someone who can learn on their own? Yes. But a degree? Nope.

  3. I wonder why having a degree would allow you to pay someone more? Do you know HR’s reasoning for denying a raise based on lack of degree?

    Great article, thank you for putting it out.

    1. David, at that time, HR’s reasoning was “You can’t be a senior member of the technical staff without a degree.” They thought it was a requirement. I did not understand that.

      I explained (in my ranting and raving) that we had plenty of people who had attended but had not graduated from MIT. They got promotions and raises. “They went to college.” I didn’t see how it mattered.

      I told them, “He trained himself. I trained him more. He’s so valuable, he did this and that and that.” No, no budging.

      This is why I focus so much on a job analysis, so people think about activities and deliverables, not degrees or certifications. What people can do is much more important than their paperwork.

      Thanks, glad you like the post.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.