Why CS Degrees Don’t Matter
| technology | programming - Ben Finkel

Why CS Degrees Don't Matter

Over the course of your IT career you will be inundated with advice about the best way to get an education, the best way to learn, the best skills or technology or languages to focus on. One piece of advice you'll hear over and over is this: You need a degree in computer science to get anywhere in this field. Your skills are not valid without a four-year degree to back them up, people will tell you. The easiest and most direct route to a successful career in IT is through a four-year university program.

I think this advice is pure rubbish.

The basic argument for why you should get a CS degree breaks down into three areas:

  • Foundational skills
  • Connections
  • Value over cost.

Foundational skills. A degree leverages a vast pool of well-researched sources to teach you foundational topics and skills that underpin all of the technology today. Sorting algorithms and data structures, binary math and memory addressing, all of the variety of concepts that make our devices whir and beep are the domain of those who have been through a proper CS program.

Professional connections. While pursuing a CS degree, you'll meet industry figures, make connections with mentors and colleagues, and find experience through work internships and placement programs.

Value over cost. The cost of a CS degree, spread over the full four years, is more than easily supported by the robust salaries for jobs in the IT market.

I don't buy most of these arguments for earning a CS degree.

At least, I certainly don't believe that a university is the only way to achieve these goals — and in fact, I think that it's often an inefficient and difficult path toward those goals. As a self-taught professional who has also gone through the effort to earn a bachelors of science, I have a lot to share from personal experience as well as observations in this field over the past 20years.

CS Programs: A Mile Wide and an Inch Deep

An advisor of mine once described CS programs as "a mile wide and an inch deep". While there is a large variety of topics covered over the course of a four-year program, there is never enough time to delve too deeply into any given topic before moving on to the next. Engineers at organizations like Google devote their entire careers to the research and development of data structures that are covered over the course of a few hours of university classes. Programming, networking, databases, compilers, machine learning, the list goes on and on. Sure it's a wonderful experience to be exposed to all of these different fields, but how much can you really grasp about any one of them when you're forced to move onto the next so soon?

With a self-taught or self-guided career, you can choose the areas that interest you the most and spend the time, money, and effort focusing on those topics. The plethora of learning opportunities available today, both online and in-person, mean you can craft an education plan that is geared to dive deeply into the topics you need and want to learn more about. A degree plan offers very little in the way of flexibility in this regard when compared to a plan for self-learning.

IT Leaves Universities in the Dust

An unfortunate side effect of the tenure and size of the typical college is that they will always find themselves behind the curve in the fast-paced world of IT and IT education. By the time the latest techniques and languages and systems are available to be taught in class, the field has moved on.

At the time this post was written, programming jobs are focused overwhelmingly on Javascript and ReactJS and the ecosystem of libraries that support those technologies. Database administration has moved into the cloud, and networking is absorbing the lessons of automation and configuration management. You won't find many college courses covering those topics.

Alternatives to college can be smaller, leaner, and more efficient. They can react to changes and updates in the world of IT with more agility and pivot more easily. Boot camps are an example of this, but a simple perusal of the social media feeds of experienced professionals in the field will show you this as well.

What is everyone discussing and how are those discussions unfolding? Not in college university classes but online, in real-time, with exposure and possible input from anyone connected.

On-the-job Training Only Happens on the Job

No one will deny that the best IT learning comes from your colleagues in the office. You get mentoring from a boss or team lead, you solve a particularly vexing problem head-to-head with a coworker, or you force yourself to learn a new technology to keep up with changes in the organization. Because of this internships and work programs are always a big part of any CS degree program. We go out of our way to get students out of the classroom and into the office for the most effective learning.

The important thing to remember is that you don't need the school to get you in the door. Companies are always looking to take on interns and junior employees. The strongest items on your resume aren't your college credentials. It's your open-source contributions, Medium and Dev.to posts, and GitHub projects where you just noodled around with something you wanted to learn. The work you've done outside of a formal program is highly regarded by employers as evidence of a willingness to engage and learn new skills and topics.

Final Thoughts

I don't want to give the impression that there is no space for a four-year degree. Just the opposite in fact (I have one myself). A degree can and should be an important consideration for anybody's education plan. There are aspects of a university education that cannot be replicated in any other setting or any other way. But it's important to make sure that you're pursuing a degree with the proper motivation. The understanding that it is only one way to engage and often not the most efficient way.

If you're making the choice to educate yourself there are some critical paths you'll want to take. First, make sure you're always seeking out mentors and guides in any forum you can. Following established professionals in online settings is a great way to engage in a dialogue about technology trends and the latest features. Question your co-workers and colleagues and others in your workplace.

Second, focus on the professional certifications that are meaningful to you and the field you're in. A networking certification is great, but may not advance your web development career the way you hope.

Finally there is no better educational value than putting your fingers to a keyboard and practicing the things you're learning. All the books and online courses and in-person training in the world will never replicate actually trying and often failing the things you wish to learn. Write blog articles even if you're the only person who ever reads them. Start a Github account and store your code there. Seek out open source projects and find out how you can contribute.

Wherever you land on this question, be sure you're making a proactive choice that fits your career and personal goals and you cannot go wrong. Degrees and certifications and self-learning are all pieces of a big puzzle — and you'll always succeed as long as you keep that in mind.



Ultimate Networking Cert Guide

A 97-page guide to every Cisco, Juniper, F5, and NetApp certification, and how they fit into your career.

I have read and understood the privacy policy, and am able to consent to it.