As a self-taught developer, it’s easy to feel like you missed out on something, and assume your colleagues who did get a degree know more than you. Your colleagues know about algorithms and CS concepts like data structures and you most likely don’t.
Does having a degree or not having a degree even matter? In my experience as a self-taught developer: no.
For those rare times when you do need to implement some kind of algorithm, someone has already posted the answer over at StackOverflow or on Google somewhere. Why learn something you can Google?
Take it from someone who has worked with many developers with degrees over the years, I have never encountered a situation where someone with a degree and same amount of experience as me, was a better developer because of it.
Thanks to numerous online resources (many that are free), learning to code is easier than ever. I am encountering more and more self-taught developers in front-end development, and it’s great to see people showing real passion to learn how to code.
For companies like Facebook and Google, candidates with degrees are still favoured and the interview questions are famously tilted in the direction of fresh candidates with knowledge of algorithms and computer science fundamentals (at least at Google anyway).
Understandably, Google are working on bigger problems and in many cases they actually do need developers with fundamental programming knowledge. For every day agencies and small to medium sized companies, not so much (unless you’re specifically working on complicated problems).
Also worth mentioning is companies like Google receive thousands of applications per week, so they have to be a little more picky with the candidates they do choose to hire.
It doesn’t mean if you lack a CS degree you’ll be passed over, but be prepared to put in some work before the interview if you want a chance at being hired. I personally have no interest in the fundamentals or theory aspect of computer science.
Where a degree comes in handy
Degrees are not completely irrelevant, if you’re just starting out a degree is your golden ticket to getting interviews. When you have no commercial experience, a degree can sometimes be the edge you need to get hired.
Once you have some experience in development, a degree doesn’t really matter anymore. Most job listings you’ll encounter will specifically mention wanting someone with X years of experience as one of the requirements.
Another instance where a degree might help is when a company is deciding between two candidates. Both might have the same amount of experience and skills, but one might have a degree and that could be the deciding factor.
Depending on where you are interviewing, some companies still ask outlandish and complex coding puzzles to screen candidates. Don’t let it deter you, if you can teach yourself to code you can teach yourself anything and interviewing is definitely a learned skill separate from coding.
Not all companies have complicated coding interviews, most of the companies I’ve interviewed at asked reasonably straightforward questions and I’ve never been asked anything about algorithms.
I have only ever had one bad interview experience in ten years (not bad). Companies that ask hard questions during coding interviews do exist, so always be prepared.
Many developers I know who have degrees end up utilising so little of what they actually learned in the real world, when it comes to things like algorithms and data structure type questions in interviews, they’ve had to go relearn it all anyway because they’ve forgotten it.
Focus on growing your skills and working within teams staffed with developers of varying skill levels and the rest comes naturally.