This is an oft-asked 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 one devote a portion of one’s life and assets to it?
The truth is that you do not need a college degree to become a web developer, nor is it always that helpful.
Taking this stance can be somewhat of a catch 22. If you have a computer science degree, one can argue: “Well, how do you know what it’s like to learn to code for a person who has not gone to school?” If you don’t have a CS degree, you’ll hear: “Well, you don’t even realize what you’re missing since you don’t have the right education!”
Those are good points. Indeed, I do happen to have an MS in Software Engineering. Yet, as a web developer, I only use a relatively small subset of what I have learned in school to perform my job successfully. Here’s why:
Some courses I have taken are hardly relevant to practical web development. Regarding the courses that have significance to web programming, I generally only use several weeks’ worth of each course to get my job done. The rest of each course is interesting, but not necessarily anything Ineed to know.
And this subset of knowledge can be learned by someone without a degree, even without having any previous programming experience. The reason for this is that web development is not predicated upon certain academic disciplines that must be learned in depth and for long periods of time. Programming is its own discipline, and it’s one that you can just jump into. You can even teach it to yourself if you find the right resources and continuously practice what you learn.
The key behind this 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 that you know.
In fact, I work 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 are not a bunch of crazy 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 full fledged job at web programming. After completing my degree, I wasn’t ready for practical work until I then followed certain tutorials to train myself to use Ruby on Rails. School is all about theory and academics, and you won’t really absorb what you need for practical work until you practically work.
One reason to earn a degree in a computer science related field is that it can help land a job, or open up possibilities of higher salaries. Many programming jobs do not require a degree, as long as you can demonstrate your technical ability. However, if you do choose to go down the academic road, I would advise that you first learn to program before attending school. And that’s because much of what is learned in school is very 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 apply the theoretical knowledge immediately for practical use.
I am in no way dismissing the value of Computer Science. It is wonderful, and has its place in industry in addition academia, and is a lot of fun to learn and be involved in. However, one can learn to be a top-notch web developer without having to go to school. And then you can build your own awesome stuff and take over the world.