profile

The Computer Science Challenge

Why study Computer Science?


Why study computer science?

โ€‹

Hey, I'm Dan, a Senior Software engineer from the UK with a wonderful wife and 9 month old baby. I've been a developer for 5 years.

You might be wondering, if I am a Senior software engineer, with a job, why bother learning computer science?

Why do it?

I can see a low ceiling in my career in the not so distant future. The ZIRP era is over and the huge tech layoffs in MAANG are reshaping the industry. Interviews are getting tougher and the supply of good (and bad) software engineers is once again increasing.

But even in the boom times it was clear there were 2 types of software engineers. Teachyourselfcs.com have an amazing passage on this, but I'll paraphrase.

Type 1 I'll call web developers, have very shallow knowledge, mainly they know how to use tools. They can build things and can be productive in their chosen tools, but they don't really know how they work or why. I've noticed a lot of this type of person pitch themselves as React developers.
โ€‹
But when things go wrong or too far from the golden path provided by these tools, these people aren't that great at fixing things. And they can be pretty poor at architecting novel solutions. More often than not they'll end up suggesting using some cloud service as a solution (which can be a good solution but isn't always).

Thats when Type 2 people, I'll call Software Engineers, shine. They have deep knowledge. They might not know the API of the most popular tools but they can very quickly learn it, and when things go wrong they have no problem debugging it, or crafting their own solution. They know how and why things work the way they do. They can switch across platforms (web, mobile, embedded, etc.) because they understand how computers actually work.

MAANG interviews and Staff plus interviews are generally geared towards filtering for type 2 skills.

Its not to say one is better than the other, but I think the bottom is going to fall out of the market for type 1 developers, and they'll likely be the first ones replaced by "AI" tools as they're essentially doing similar things as LLMs. Or by other people using LLM tools.
โ€‹
I also just want to become highly skilled in my career, and I find studying how things work to be really interesting and rewarding. Yep I am a nerd.

As for where I sit on this spectrum, I'd say I'm a recovering type 1 trying hard to move to type 2.

How I'm doing it?

At the moment I'm using a mixture of MOOC lecture material, text books, Youtube, and any paid courses I think will help.
โ€‹
I'm currently studying CS186 from Berkley - Introduction to Database Systems. I've recently completed a few modules on Data structures and algorithms.

I want to go deep on databases, they're everywhere so it would pay to understand them from the bottom up. After I finish CS186, I'm going to complete the PostgreSQL docs, and if CS primer has their course finished by the end of the year I'll try that too.

I don't have a hard deadlines but my aim is to cover Computer Architecture, Operating Systems, and Computer Networks by mid next year. Its not a hard deadline though so this might change.

Finding time

This is going to be especially difficult because I have a very young baby, a wife, and we both have full time jobs. We don't have any family to help with childcare so its just us and a paid nursery which is eye wateringly expensive in the UK, and only covers work hours. When you have kids you suddenly become very productive compared to before ๐Ÿ˜….

โ€‹

โ€‹

113 Cherry St #92768, Seattle, Seattle 98104-2205
โ€‹Unsubscribe ยท Preferencesโ€‹

The Computer Science Challenge

If you're a self taught developer or bootcamp grad follow along whilst I share how I'm learning computer science and how you can too.

Share this page