by Colin Smith
How to choose a Computer Science degree program
I remember combing through the countless computer science programs online and feeling a bit lost on what I should be looking for. I ended up choosing the degree that I felt I could finish the quickest. The degree was supposed to be a 2 year program but that was really just bait. It wasn’t feasible to finish the program in 2 years and I ended up finishing it in 3. And this was only possible because the program was a post-bacc program, meaning that you had to have another degree already to enroll.
Looking back, I should have had a specific target in mind. I had a very broad goal which was get a job as soon as possible. The program I chose worked because it was short and did enable me to get a job within 2 years. But after I got my first job, I realized which company you worked for was important.
The degree was supposed to be a 2 year program but that was really just bait.
I now work at a top tech company and have worked here for around 2 years. But I wish I could have started at this company directly after graduating. My philosophy is you should always shoot for the top. If you end up disliking the environment of a top tech company, then the name of that company will allow you to move to any other company. It gives you credibility and freedom to work where you want.
So I’ll be writing this article from that perspective. I’ll give you concrete things to look for when choosing a degree so you can work at your target company.
Study the people who work where you want to work
If you want to work somewhere, emulate the people that already work there. It’s as simple as that. They were hired for a reason. You may be wondering how to go about emulating people that work where you want to work. The first step is looking up the company you want to work for on LinkedIn.
LinkedIn is an incredibly valuable resource. There is a ton of free information on LinkedIn. And all you have to do is sign up to get access to it. Let’s start off with a basic search. Type the name of the company you want to work for in the search bar. Go to the LinkedIn profile of that company and click the “People” row on the left side of the page.
Once you hit the “People” page, you’ll find all kinds of valuable information. You can see aggregated stats about employees that include where they live, where they studied, what they do, what they studied, what they are skilled at and how you are connected on LinkedIn. I can’t stress this enough, this is such valuable information.
You may feel disheartened when you search a company like Google and you see the top 7 universities people studied at are Stanford, Berkeley, Carnegie Mellon, USC, MIT and Cornell. But fret not! Because if you look closer to the middle and bottom, there are much more attainable universities.
Just below those top schools is the University of Washington which has an acceptance rate of 53.3% in 2015–2016. That gives you a good opportunity to follow in the footsteps of those who have forged the path before you. Let’s compare that acceptance rate to some of the universities I listed earlier. Stanford’s rate is the lowest at 5% and the highest being Carnegie Mellon at 23.7%. You have a much higher chance with the University of Washington.
But let’s say you can’t move and you need to stay within a certain area. I’d look at the University of Washington’s computer science program and study it heavily. Understand the ins and outs, know all the classes you can take and then check the universities in your area and see if they have similar a curriculum.
If you’ve exhausted all your options locally, then you need to look online for a degree program. Find the most attainable university from the list of universities that people studied at for your target company. Then find the online degree program that gets the closest to matching the attainable university you chose.
Study the specialization your target company needs
This option can be a bit more risky due to the fact that the needs of a company may change before you finish your computer science degree. But it is still a good way to narrow down your choices. We start again with LinkedIn but we can use any job search tool.
When I search Google’s job openings, I see a lot of mobile developers. This may be because of my LinkedIn profile and the fact I am a mobile developer but it’s clear the position is still in demand. I also see machine learning, firmware, site reliability engineering, business intelligence, database systems, imaging and many more.
Look into all of these specializations. Look at how long these positions have been around, what the job would entail and see if it interests you. Can you find these kinds of positions at a lot of other top tech companies? Then you’re in luck because these positions are needed across the industry. That means there is a very high chance that these positions will still be high in demand when you graduate.
Machine learning, firmware, site reliability engineering, business intelligence, database systems, imaging and many more.
Read articles about these specializations on Medium. There are a ton of amazing articles describing what the day to day of these kinds of positions would entail. This will help you make your choice on what specialization to focus on.
Once you’ve chosen your specialization, try to find universities that offer programs in them. You can also search your specialization in LinkedIn and see where people studied. This will give you a lot of ways to find universities that offer your specialty.
One last thing I would recommend is going to a local meetup that focuses on your target specialization. Talking to people at the meetup about your goal and your interest in this specialization will help you better understand the field. You can also get details about local jobs and concrete examples of what your future job would be like.
Become a solid generalist
As great as having a specialization can be, it comes with risks. The biggest risk is that your specialization will no longer be relevant once you graduate. This would be a major setback. The chances of this aren’t incredibly high but sometimes it is better to err on the side of caution.
If you want to be a solid generalist, you need to have some flexibility in your future career path. If you have a certain role in mind after graduation, then you shouldn’t choose this path.
You need to focus on fundamentals that apply to all computer science careers. And you need to have them be second nature to you. This will allow you to go with any career path.
As great as having a specialization can be, it comes with risks. The biggest risk is that your specialization will no longer be relevant once you graduate.
So what university should you choose if you want to go down this path? The fact is, you should probably just choose from a top list of universities in your country for computer science. Find the one that either is in your area or offers an online program. From there, make it clear to your advisor that you want to focus on computer science fundamentals. I would personally focus on courses related to algorithms and data structures.
This path is more difficult because of the fact you need to be careful about which classes you choose. Whatever you choose, make sure that the principles learned in the class can be applied broadly.
Also, if there are courses or extra-curricular activities aimed at interviewing, you should take them. Your goal here is to be so good at fundamentals, that you can ace most generalist interviews. So adding any knowledge or practice around interviewing will help you achieve your goal of getting a job at a top company.
Choose what feels right
I’ve talked about this before, but don’t get caught in analysis paralysis. What I mean by this is, take the time you need to choose a computer science degree. But don’t use that as an excuse for not going forward with your studies. It can be really easy to get stuck and bounce between different choices. Don’t get caught in this trap.
You set a specific goal and target for what you want to achieve with your computer science degree. Do the same with your search for the degree program. Set a deadline. Create a list of top 5 in no order. When you hit your deadline, make a choice from those top 5. In the end, the difference probably won’t be huge between those top 5 anyways. It’s important not to get stuck in the mud before you’ve even started the race.