Computer Science and More

A strong foundation in computer science is crucial for success in the field. It’s your own responsibility to educate and grow yourself - not your company’s, not your school’s.

teachyourselfcs.com has helped me to identify some key areas to focus on.

This blog is also inspired by some popular quotes:

Albert Einstein — “If you can’t explain it simply, you don’t understand it well enough,”

Richard Feynman — ‘What I cannot build. I do not understand.’

In fact, the second statement is much more true when it comes to software engineering (not CS), as translating theoretical knowledge to working code is a skill all good engineers must have.

Hence, this blog aims to explain CS concepts and problems, and document the process of building solutions around these concepts and problems, starting from Jan 2025.

Main Areas of Study

Operating System

Why? Most of the code you write is run by an operating system, so you should know how those interact.

Computer Network

Why? Imagine living without the internet.

Data Structure and Algorithms

Why? They are necessary for solving complex problems, and they are fun.

Databases

Data is at the heart of most programs, few understand how database systems actually work.

Distributed Systems

These days, most software systems are distributed systems.

Site Reliability

This topic has growing importance in my day job, and therefore requires its own section.