This is the story of a junior software developer, fresh out of university, ready to get some work done. Except, they don’t have any real-world experience, and so they can not get anything done. I mean, sure, the past summer internships definitely help a bit: they actually understand what standups are all about, but when it comes to firewalls, to sending raw packets across the internet or implementing a simple calculator in hardware, will they be able to even get their head around the task?

This is my story, and most probably yours as well if you’re a Computer Science student with no prior software engineering jobs. We both signed up for this degree thinking that learning about computers and learning how to program them in a 3 or 4 or 5-year degree could be useful to any company out there.

And so it began… The struggle between theory and practice could be seen from the first day, from the first lecture, from the first outdated slide.

‘Why are we even learning about X?’ cries every student at least twice per week. ‘Why, if the industry standard has been long updated, are the lecture notes so old?’

Three years into my degree and I still can not honestly answer this question.

‘It’s because the history of the subject is important, and the purpose of the degree is to give you a deep understanding of the fundamental concepts.’

I first realised that this is a lie when every company I applied to asked for my GitHub profile, which seemed too empty for them. They wanted reasons to trust that I know how to code, and besides the grades from my degree, I had none.

Some may claim that the best students have the time to work on their personal projects as well as pursuing their studies, and I totally agree with those people. However, my claim is that the majority of students do not find the time to accomplish both tasks, and even if they have open slots throughout the day, it’s quite hard to start working on a separate project that lasts for more than a couple of hours. Documentation and good notes are the key indeed, but it’s not like we’ve learned that at uni.

With that in mind, why not make the degree better suited for the jobs? Why not have lecturers that update the materials regularly and present the benefits of every new framework? Why do you need to go through a degree and then still have to learn a lot more for a job? That is the main focus of this blog. It’s the journey we have to go through when starting our career. Incidentally, I will also be exploring and presenting technologies that the industry assumes the average computer scientist has encountered, thus building a better background for the real-world.