Missing Links: What You're Not Getting From Your CS Degree

Nana Bonsu
ILLUMINATION
Published in
4 min readDec 29, 2023
CS Grad Rejected From the Industry by DALL-E

Let me start by telling you a joke.

Drumroll, please.

Getting a CS degree is all you need to get a job in FAANG or any company.

Ok, maybe it wasn't that funny.

But it does highlight an expectation that many have that falls short of reality

Here’s the deal.

A CS education in college is filled with a never-ending stream of theoretical concepts, some of which leave us scratching our heads, wondering how they’ll ever apply in the real world.

As a result, valuable real-world tech skills, the kind that you need to qualify for a top tech job, is pushed to the background and not taught.

As someone who has recently stepped into the real-world job market, I've quickly discovered this bitter truth.

That's why Im here to share two valuable skills that you need to know before stepping into the workforce.

Project Development With Version Control

Version Control Cat by DALL-E

The problem

Much of the software written in the industry is large, and complex and requires multiple developers to work to maintain it. And where multiple people work on something, there needs to be effective collaboration between them

In college, I was never taught how to effectively code and collaborate with tools such as Git. Even simple concepts such as pull requests and merging, I learned only from a summer internship program.

While I didn't expect to learn everything in school, I did expect to learn how to use tools like Git to make working on projects much easier.

What you can do.

As a student studying CS, make it your aim to learn and even master key version control concepts such as branching, code review, and merging. Then apply these concepts to code that you develop for team projects or your projects.

Remember, as a software developer you spend a lot of time working to maintain code that other people have written. So knowing how to use these collaboration tools is a must from day one.

Testing

Knight squashing testing bug by DALL-E

The problem

Bugs.

In real life, we generally detest them. From roaches to bees, humans have come up with a plethora of techniques to get rid of these annoying creatures.

In software, it’s no different. Well, we just leave out the chemical part.

Testing is an essential part of software development. Most industry codebases are complex and large, and companies usually need to ship out features quickly. Therefore, as a developer, you likely have to engage in test-driven development. This is where you develop tested code that works correctly right from the outset or performs well based on testing factors.

In college, the concept of test-driven development (TDD) was barely mentioned, and we certainly didn’t learn how to write proper test cases. It’s as if we were taught to think of proper testing in terms of user testing.

We just ran the code, used the software as if we were regular users, and… hoped it didn’t crash.

What you can do

Ensure you understand test-driven development (TDD) and its application in the programming language you are using. Apply these principles when writing code for either academic or personal projects.

Remember, TDD is not a waste of time. Not knowing how to develop code with unit tests will be a major problem and might even prevent you from getting a job. It's an essential skill to have to be able to contribute to complex, scalable codebases that are so common in the industry.

Code collaboration and testing are just two software development skills that tend to be glossed over in college. But there is a lot more.

Granted, I'm not saying that a CS education in college is useless. Some fundamental concepts and ideas are well taught in college and you are exposed to a variety of things that can be difficult to find elsewhere.

But just like a swimmer training for the Olympics will have a very small chance of success if he only learns swimming by watching videos of others, a recent CS graduate will have a difficult time succeeding in the current tech industry if he only relies on a college education which tends to not teach real-world software skills.

Thankfully we have the Internet..

So Make it your mission to master these skills and all the top skills needed for software developers today

Oh. and don't forget to. have a portfolio.

--

--

Nana Bonsu
ILLUMINATION

Mobile Developer | Technology Enthusiast | I love writing about human behavior and the immigrant experience