Do You Need a Computer Science Degree to be a Good Frontend Developer? ๐
How relevant is what you will learn in a formal four year program to being a very effective frontend developer. Let's dive into this.
A very common question I get is around whether a Computer Science degree is worth it. With this siteโs strong focus on frontend development and many of us navigating a tricky job market, this is a good topic to go a bit deeper intoโฆso letโs do just that! ๐
Computer Science Degree !== Good Developer
Letโs get something out of the way first: one of the greatest misconceptions is that learning Computer Science will make you a good developer. Itโs not true. A lot of great developers have no college degree, or many of them have degrees in unrelated fields far removed from programming and computers. Hold this thought, for weโre going to get back to this.
What would I learn in Computer Science?
When you are learning Computer Science, you are getting a better understanding of how computers and their many related subsystems work. You learn a variety of mental models that you can use to translate your thoughts into something our computers can understand:
You will learn how to optimize for memory, CPU, network, and other constraints. You will learn all about data structures, algorithms, artificial intelligence, computer architecture, and many other foundational concepts. Most importantly, you will improve your thought process and how to reason through and solve complex technical problems:
What you will not learn as part of your Computer Science degree is how to become great at any particular programming language.
Sayโฆwhat?
Yes, learning a programming language is not a direct goal of a Computer Science education. As a side-effect of going through the coursework, you may have to learn languages like Java or C++ or HTML/CSS/JS. Going deep into a Computer Science education just so you can become proficient in a programming language will leave you disappointed. That is like only wanting ice cream but being forced to eat a bucket of vegetables first:
You also wonโt learn these programming languages at the depth youโll need to be effective as a developer in that domain. I can guarantee you that the smartest Computer Science graduate would have struggled (just like everyone else) with common problems like centering an element on a page both horizontally and vertically or figuring out how to use Promises! ๐ฅ
Why Bother with a Computer Science Degree Then?
As with many things in life, a Computer Science degree is a signal. Never underestimate the power of a signal:
If you are looking to start your first formal job, a degree is one of the biggest door openers you can find - even in our seemingly meritocratic tech industry:
Many companies wonโt hire you without that piece of paper, no matter how qualified you actually may be. A college degree exposes you to a more well-rounded set of experiences, which are all signals many recruiters take comfort in. If you have the opportunity to go to college, by all means take it. Do not hesitate.
What if you have no plans of working for someone else and want to start your own business? If you are your own boss, you have a lot more freedom. Despite countless threads on Twitter and LinkedIn from entrepreneurs who found great success working for themselves, there are many more cases of entrepreneurs who are struggling or have failed. We just donโt hear too much about them, so donโt underestimate the difficulty of entrepreneurship. Statistically, most businesses do not survive.
A college degree provides a fallback should you decide to work for someone else again. A big thing to highlight is that entrepreneurship and working 9-5 for someone else arenโt exclusive choices. You can do both:
Ultimately, what a college degree provides is options. It gives you the opportunity to pursue paths that may otherwise be blocked off. In a world where so many of our decisions are predetermined, having the ability to hold some extra cards in your hand is a good thing.
Conclusion
This topic is one that is near and dear to me. I have a Computer Science degree, and I spent a lot of time before, during, and after my four years in college learning frontend development on the side. A lot of what I say here is something I have personally experienced. It is also based on what I have seen from working with many talented colleagues, many of whom do not have a Computer Science degree, in my 15 years of working at various big tech companies.
Now, I would like to hear from you. Do you agree with my assessment? Am I off base here? Do you think a Computer Science degree is necessary to be an effective frontend developer? Please feel free to vote and comment on the forums with your thoughts.
Cheers,
Kirupa ๐
I took a Computer Science course when I started university, but soon discovered that it didn't teach me what I wanted to learn at the time. I had just bought my first computer (Commodore Vic20) so was anxious to learn some programming. However, the best thing about the computer course was the 6 months we spent learning algorithms before even touching a keyboard. Eventually I dropped that course and everything I know now about programming is self-taught. Perl, JavaScript, SQL (sqlite), SVG and web development are areas I'm familar and competent in. I was self-employed doing web development for about 10 years. Running an Apple M1 has also given me exposure to the whole Unix toolbox (awk, grep, sed, etc). I spend half my time in Terminal (shell).
So I would tend to agree with you that a CS degree may not be for everyone, but is definitely pretty handy for a fallback.
Well, that ship has long since sailed. 1984 was my first year in university and I have no idea what text would have been used then. I do remember the prof though - in a lecture hall he asked us how a computer would walk down the stairs. So think like a computer, and imagine all the steps (pun intended) you would have to do to accomplish that. You have no idea how many steps there are let alone what a step is. How do you move forward, and do so without falling down. What do you do when there's nothing for your foot to stand on. That was an eye-opener for me.
I maintain several of my own web sites and 2 might shed some light for you.
https://www.softouch.on.ca/cgi-bin/kb/index.pl --> search for 'algorithms'
https://www.softouch.on.ca/cgi-bin/stem/index.pl --> here also