"Do I need a degree in computer science to become a web developer?" I often hear this question, and for good reason. Going to school is a massive investment of time and money, and if it’s not truly necessary, why should you devote a portion of your life and assets to it?
The truth is that you don't need a college degree to become a web developer - nor is it always that helpful to have one.
Photo by 1871.
Taking this stance can be somewhat of a catch 22. If you already have a computer science degree, you could argue: “Well, how do you know what it’s like to learn to code for a person who hasn't gone to school for it?” If you don’t have a CS degree, you're likely to hear: “Well, you don’t even realize what you’re missing since you don’t have the right education!”
Those are good points, and I happen to have an MS in Software Engineering, myself. But when I was the Lead Developer at an e-commerce startup, I only used a small subset of what I learned in school to perform my job successfully. That's because many courses I took aren't really relevant to the practice of web development. For courses that did have significance to web programming, I found that I typically only used a few weeks’ worth of material from each course to get my job done as as a developer. The rest of each course was interesting, but not necessarily anything I needed to know.
The subset of knowledge necessary to the typical web developer can be learned by someone without a degree - without any previous programming experience. That's because web development isn't predicated upon academic disciplines that have to be learned in depth and for long periods of time. Programming is its own discipline, and it’s one that anyone can jump into anytime. Some can even teach it to themselves if they find the right resources and put in the hard work to practice what they learn.
The key to learning web development is that as you practice, you will learn what you need to know as you encounter new problems. Every time you run into a brick wall, you can Google around a bit and find the right information that you need to solve your problem. Then, that tidbit of information will be added to the knowledge-base of your mind and complement everything else you already know.
Throughout my career, I've worked with plenty of incredible developers who are as skilled or more skilled than myself, and most of them never took any computer science courses in school. And they're not a bunch of super-geniuses! They’re regular people who took the time to learn how to code and practiced what they learned regularly.
To go a step further, even having a CS degree doesn’t mean that you’re ready for a professional web development position. After completing my own degree, I found I wasn't ready for practical work until I completed tutorials to train myself in Ruby on Rails (one of the core focuses of our bootcamp at Anyone Can Learn To Code!). School is all about theory and academics, and you won’t absorb what you need for practical work until you practically work.
One reason people cite for earning a degree in a computer science-related field is that it can help land a job or open up possibilities of higher salaries. However, many programming jobs don't require a degree at all as long as you can demonstrate your technical ability. You can learn what you need to know by teaching yourself to code, finding a mentor to help you learn, or attending a coding bootcamp.
If you choose to go down the academic road, it's wise to first learn to program before attending school. That's because much of what is learned in school is theoretical and won’t mean much to you until you have practical experience. If you walk into a class already knowing how to code, you can make the most of each session by knowing what questions to ask, learning how to improve your programming techniques, and applying the theoretical knowledge immediately for practical use.
I want to note that I in no way mean to dismiss the value of Computer Science. It is wonderful, has its place in industry in addition academia, and is a lot of fun to learn and teach. However, you can become a top-notch web developer without going to school. And then you can build your own awesome stuff and take over the world.
-Jay Wengrow, Founder of Anyone Can Learn To Code