The (Unnecessary) Education Requirement in Software Development
Last weekend, I was at a gathering with a bunch of my friends when the topic of needing a degree came up. This topic is one that really gets me thinking.
For the record, I do have a degree in a computer-related topic and happen to be the odd one in my group of friends. I have a Bachelor of Science in Computer Science & Engineering Technology from the University of Toledo.
Do you need a degree in a computer-related topic to be a successful software developer?
Honestly, no. Some of my great developer friends have different backgrounds. There are those with theater, music, or other arts degrees. Some have science degrees – chemistry, biology… those kinds of sciences. Some have degrees along the lines of journalism, English, or psychology. And yes, some have non-computer engineering degrees – such as chemical engineering and mechanical engineering.
Each of these degrees, while not computer-focused, have different elements of their expertises that in reality could be applied to computer-related stuff, even if we never pictured it. With a psychology background, you may be able to understand your end users a bit better and use that to develop better user experiences. With the engineering degrees, there’s the engineering element of taking things apart and putting them back together – writing a program is pretty much taking a broken problem a part and putting it back together. With journalism or English backgrounds, you may find those handy when writing documentation and error messages.
Do you really need a degree to be a successful software developer?
In my opinion, I don’t believe you need to have a degree – or even certifications – to be a successful software developer. I know many high school students who are mentored by people in the industry who can write code much better than some college-educated folks. College degrees and certifications – to me – show that you can set a goal of completing a program and actually earning that piece of paper. Unfortunately, many employers are looking for degrees and certifications because they see value in them. However, the smart employers know that if a candidate shows great potential for success – be it through code challenges, discussions of a person’s side jobs, or even someone’s hobby – then their education background really doesn’t make a difference.
So what do you think it takes to be a successful software developer?
If you treat your software development job/side job/hobby as a craft, that’s a great sign that you’re on the road to success. Accepting that you aren’t the only developer out there trying to be successful and learning from other developers who’ve achieved the success you’re looking for are great steps as well. To me, one of the key things you should have in order to be a successful software developer is an understanding not just of the front end, back end, or middle tier but the big picture – if you can explain the front end and why the user experience is the way it is as well as understand how it talks to the back end via a middle tier, then you’re doing something right.
What do you suggest employers look for then if not for a degree in a computer related topic?
The things I tell my manager friends to keep an eye out for include:
- Past jobs experience
- Hobby or side jobs experience
- Code samples
- Portfolio of work/well done resume
If you see something in those and are still uncertain of the candidate’s software development skills’ levels, then try a code challenge and have potential teammates or managers review the code challenge.
My call to employers is this – understand that while someone has a piece of paper saying they’re good working with a technology, it doesn’t mean that the other candidate without that piece of paper is any less of a candidate.