I don’t have a Computer Science degree so I had to create my own.
When I graduated from a coding bootcamp five years ago, I was completely unprepared for technical interviews. My coding bootcamp not only spent a brief (less than a few days!) time on algorithms and the coding interview, but I was out sick during that time.
Other candidates applying for the same jobs as I was had four years in school working on their computer science degree. I had three months at a bootcamp where I learned some basic concepts, Rails, and taught myself Angular.js.
Over the past few years, I’ve had to fill the gaps in my knowledge with resources that I could find online and for free. I’ve worked as a Senior Engineer for companies such as Eventbrite and I’ve even written an O’Reilly book. I’m proof that you don’t need a CS degree to succeed as an engineer.
Here’s how I did it.
Introduction To Computer Science
Before you try to dive in with complicated CS classes, I recommend that you start with a course on the basics. This will help give you a solid overview and will also help you to feel a little less intimidated. If you spend some time getting a solid overview, the rest of your free CS degree classes will be so much easier.
My favorite course was CS50: Introduction to Computer Science by Harvard.
This is probably one of my favorite classes of all time. I’ve always loved the idea of Harvard so it was sort of a no brainer for me to take a free computer science class there. I even briefly considered completing one of the Harvard certifications for programming but it was pricey so I stuck with the free CS50 course.
I didn’t end up getting the certificate with Harvard CS50. I thought it would be just as powerful to list the course on my resume. My general rule when it comes to paying for an online certificate is that unless it’s an AWS certificate from Amazon, it’s probably not worth it.
If you feel intimidated starting with a Harvard course (which I did as well!), you can find an easier course online to make you feel more comfortable before you jump into complicated topics.
Computer Science 101 is an introduction to computer science from the very beginning. You’ll learn how the internet works, a little about computer security, what a gigabyte is, some coding knowledge and more.
Get started with Algorithms next. The University of San Diego offers a free course, Data Structures and Algorithms Specialization, that has a tremendous amount of content available.
It’s overwhelming if you look at this entire course and think you need to finish it right away and understand everything. Try focusing on one section at a time and reviewing the concepts regularly.
And if taking a university course on data structures and algorithms makes you a little queasy, you can start small.
Udacity has a free course, Intro to Data Structures and Algorithms. I love taking free courses on Udacity and this one has a ton of great information. You’ll cover arrays, linked lists, stacks, binary search, maps, heaps, and more. This course can give you a great overview which will help you succeed in the more complicated course from the University of San Diego.
If you’re feeling brave after you finish an introductory course, MIT offers a course on Advanced Data Structures.
Udacity has some pretty cool free content. They offer a class called Introduction to Operating Systems that is from Georgia Tech. This course will walk you through threads, concurrency, distributed systems and more.
I also found out that the book, Operating Systems: Three Easy Pieces, is available online and free. Books like this really helped me feel more confident in talking about concurrency and persistence.
Databases completely baffled me when I first started out. I tried to avoid working with them as much as possible early on. I asked a senior engineer for help all the time and thought because I didn’t have a CS degree, I shouldn’t be working with a database.
Wow, I was so wrong.
I finally got the courage to work with some backend code, and I loved finding how I could write efficient requests to get data from the backend and writing queries.
Stanford offers a free online course on Databases. And if that’s too intimidating to start with, Udacity offers a free course on databases that will be a lot easier to handle.
When I was contemplating a CS degree in college, everyone told me that I needed to be really good at math. I never got the CS degree, and five years later I haven’t needed to use much math yet.
But mathematics can teach you logic which, in turn, can help you become a better programmer.
Thankfully, MIT offers a Mathematics for Computer Science course for free. Taking a course like Mathematics for Computer Science can also help open you up to more possibilities in tech, like creating your own degree in Machine Learning.
I found out about MIT’s Mathematics for Computer Science course from TeachYourselfCS, which is an awesome website with a ton of resources for learning about computer science.
TeachYourselfCS also suggested a course on Linear Algebra which is available on YouTube. I love free content so I was super happy to find this book on Linear Algebra available online free as well.
So as you can see, you don’t need a CS degree to be an engineer. Some of the smartest engineers I've ever worked with didn't have a CS degree. Sometimes they didn't have any degree at all.
Don't worry if you don't have a degree. You just need to be able to do the job.
I'm writing a book on how you can become a Standout Developer, ace the interview and get a job. Find out more here.