Are Computer Science degrees still relevant?

I took a more traditional path into tech, going to a 4-year university and getting a Computer Science degree (way back in 2004!). These days, it's no secret that there are many alternate paths to a software development job. The three main paths today are:

  1. Traditional CS education

  2. Bootcamp

  3. Completely self-taught

I have seen people become very successful taking any of these 3 paths. It's clear that a CS degree is no longer necessary to get a good tech job. Does that mean they're no longer worth it?

What I learned in my CS program

From 2000 to 2004, I went to UMass Lowell. The curriculum started with the class Computing 1, which was a few hundred freshmen in a big lecture hall learning C programming. Computing 2 moved to object-oriented C++, and later courses covered databases, operating systems, and Java.

At my current position, I use none of the above in my day-to-day work. Today I work mostly with JavaScript, which I didn't learn at all during my college years. Every skill I use today was self-taught.

However, data structures and algorithms, the fundamentals of computer science, have stuck with me and helped me to solve problems all the time. Even these, of course, can be learned outside of a college environment.

Back to the question

So, back to the question: are CS degrees still relevant? Well, I would say while they are in no way a prerequisite to being successful in this field, there is still a lot of benefit.

Of the three paths above, most people I have worked with (and myself as well) have followed a hybrid path combining two or more. In my case, it's a hybrid of a CS foundation with self-taught knowledge.

I have also worked with talented engineers who started with a bootcamp and are still on their learning journey, who are progressing all the time.

The most critical skill

Whatever path you choose for your adventure, the most critical skill to learn is how to learn effectively. This isn't the same for everyone - what helps me learn effectively may differ from what works for you.

The other important things to consider are what to learn and why. Don't just learn programming languages for the sake of learning more. Over the past 20 years, I have learned:

  • Python

  • Ruby

  • PHP

  • C

  • C++

  • Elixir

  • Java

  • JavaScript

  • TypeScript

Of those, I only really know the last three today. I learned those other languages for the sake of learning them, thinking it would help me get ahead. But if you don't have a good reason for learning something, you won't use that knowledge and like an old cache entry, you'll lose it.

I have, pretty much, forgotten everything about Python, Ruby, PHP, and Elixir. C and C++ are a distant memory, and since I went to a JavaScript-only job in 2015, I'm starting to forget Java as well.

Conclusion

For me, a CS degree was a good path. Of course, this was in the early 2000s at a state school, at a time when college was much less expensive than it is now.

The bottom line is that you can follow any of the three paths, or a combination of them, to achieve success in a software development career.

So, yes, a CS degree is still relevant, but in my view it's not a must-have anymore.