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.
While having knowledge of algorithms might come in handy once in a blue moon, most of the time you’re just trying to get your CSS and Javascript to work in Chrome, Firefox and Internet Explorer.
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.
Coding interviews
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.
Conclusion
No degree? No worries. The forever evolving nature of front-end development means that even a developer who has a CS degree has to keep learning once they graduate to keep up with the constant changes to Javascript and other aspects of web development.
Focus on growing your skills and working within teams staffed with developers of varying skill levels and the rest comes naturally.
I completely agree with your conclusions here. What I have seen to be the biggest plus for candidates is having actual practical experience with a particular technology. For website developers, that means you have created at least one website that is actually running on a server somewhere. Even if you did it for your Uncle Bob.
The important phrase here is “front-end developer”. But nowodays front-end developers need to know much more than just front-end – networks, security and backend. At least this is the situation in small agencies, where the front-end developer is responsible for much more things than front-end. I personally started coding in AS2 in 2004, then some serious AS3 and the last 8 years – JS. And have only one degree – master of Laws. One thing I noticed – even guys and galls with degree forget what they’ve been taught if they don’t use the exact matter every now and then. For example, friend who studied algorithms for years struggled writing from scratch simple reverse binary tree algorithm after not working with binary trees since years.
Hi. I live in Turkey.
I agree with you. Some people who has CS degree, hasn’t got any skill. Actually engineering is important thing to develop amazing systems.
I think coder, developer and engineer are different. In order to find a good job you need to CS degree even if you know good knowledge about your job.
I graduated with associate degree. Generally, my country’s HR department firstly asking “are you engineer?” When I said “No”, they said me “I’m sorry we can’t work with you because of you haven’t engineering diploma”.
Why? I have good knowledge. For example I teached Linux, JavaScript, Python, C#, PHP to over 1.000 students. Really I did.
I wrote a free e-book to learn Python for Beginners in Turkish, I wrote blog posts over 200-250, I’ve video tutorials on YouTube.
I should say this. I’m working for two years. When I was 12, I started programming. Now, I’m 24
There is no justice. Every engineer’s salary better then me. Beucase they’re engineer.
They haven’t any contribute to develop themselves. They haven’t any contribute to develop open source projects, their projects.
I didn’t need to Machine Learning, If I need I can learn without any university or course.
I can’t understand why is degree so important?
There is no justice. I’m sorry, I wrote a long string 🙂
Hi. I have a degree and I agree with you.
The degree helped me to get the first job. Currently an employer look to my experience.
With or without a degree, we need keep learning, to follow the evolution and do not get outdated.
I believe with passion and dedication, we can learn anything and solve big problems.
10/10 Good read!