DEV Community

Randall Kanna
Randall Kanna

Posted on


Do You Need a CS Degree?

People contact me all the time and ask if they need a computer science degree to be an engineer. Many have spent countless hours studying CS fundamentals instead of building a portfolio and they ask which they should focus on.

I’m going to share with you what I share with them - you don’t need a CS degree to be an engineer. You just need to prove you can do the job. Here are a few key things you can focus on that will help you get your first dev job without a CS degree.

Focus on Building
Instead of spending all your time studying CS fundamentals, focus on building and creating things. Work on creating a solid portfolio that you can demo to a prospective company. If you can actually do the job, you don’t need to prove you can write some silly algorithms that you won’t ever actually use on the job.

I was able to get my first dev job by showing the company I was eager to learn. They told me I could build a small demo app in a framework that I was comfortable using. But I instead chose to learn the framework the company used over the weekend and presented that instead. While it was barely working and actually broke during the demo, I got the job.

If you aren’t at the level where you feel you can build a portfolio quite yet, build your way up. Start with a mini project or even a tutorial and add a feature to it. The first app I ever built was with a Ruby tutorial and I just started making the frontend look better and added extra features.

Find the Right Company
Avoid companies that focus on algorithms that even senior engineers with computer science degrees would struggle answering correctly. This is a sign that the company won’t be a culture fit if they expect a junior engineer to be able to answer complex algorithm questions.

If you find a company willing to train you and the company has a good culture towards junior engineers, they won’t be concerned that you don’t have a computer science degree.

Supplement with CS Knowledge Later
Ideally, later on in your career, a company will pay for you to get some education. Some companies even provide education stipends to use towards CS classes. There are programs like Bradfield that offer computer science classes online where you won’t need to go back to college to enroll!

If you really want to learn some CS fundamentals right now, here are a list of resources that you should check out:

  • Free online course by Harvard
  • An awesome resource that suggests some really great books. Most of which I own.
  • A handy roadmap!

For myself, I've studied basically next to no CS fundamentals and it has never held me back. I’ve worked at companies such as Pandora and Eventbrite and had my work featured in Forbes. I’ve taught myself Blockchain, frontend, backend, and iOS development and worked successfully in all of those fields.

Some of the very best engineers I've ever known didn't have a CS degree or even a college degree. Most I’ve spoken to say their degree was useless and only helped in getting them in the door.

Once You Have the Experience…
Once I got 5 years of engineering experience, companies like Google, Facebook, and LinkedIn started reaching out asking me to interview. As soon as you have a few years of engineering experience on your resume, no company will care about a degree - because they’ll know you can already do the job.

Top comments (1)

aeiche profile image
Aaron Eiche

I built my career being self-taught, working in a variety of technologies and sectors. I had an opportunity to pursue my bachelor's a few years back inexpensively. For me, getting my degree has been a personal goal. I'm a term away from graduation. I don't expect to gain much (in anything) in terms of career advantage from completing my degree - my experience far outweighs that - but I'm pleased to have made the journey. I recently learned that a good friend, and very talented engineer never completed his degree. There is undoubtedly a lot of value in formal schooling, but don't underestimate self-direction and application.