What is Computer Science?
In simple terms, Computer Science is the study of computers and how they work.
Everything from the hardware and software, to understanding the theory behind the
algorithmic processes, computation, and automation.
Do you need to know this CS theory content to become a coder?
No. You can quite easily get a job as a beginner programmer or developer without a CS degree,
or even being completely aware of all the concepts covered.
The reason being is that a CS degree or course is concerned with the theory behind how
computers work and scale. While programming is the application of those principles.
It's only once you start to work in more complex scenarios, scalable projects, or applying to
high-end companies where this information becomes vital to succeed.
For example
Imagine you want to build a small wall in your garden. This would be relatively simple right? You
understand bricks and concrete, and how they work together and you can easily build that wall.
However, if you wanted to build a tower block, you would need a deeper understanding:
How many bricks would this need?
Is there a max weight that can be applied before the bricks crumble?
Are there other materials you can use?
How can you ensure it wont fail in worst case scenarios?
What other safeguards or processes need to be applied?
How would you even start designing something like this?
This is when you would need to apply that deeper theory and understanding.
Likewise, imagine you're building a website for a small business.
You can set up a framework, build it, set up the hosting and shopping cart etc, which are all
technical programming skills.
The principles to build Netflix would be similar, but the volume of traffic and users would be
astronomically different.
Sure, more servers could help manage the larger volume of traffic, but it's only part of the
solution, and that's where understanding the concepts and ideas in a CS degree would be
required.
It's also partly where some of the imposter syndrome kicks in. Suddenly there's new problems
that you not only didn't plan for, but you were not aware they were an issue - simply because
they didn't come up during your previous experience.
What's covered in a CS Degree?: The mile high overview
In a computer science degree, the main topics you’ll learn are:
1. Computational Complexity
2. Data Structures
3. Algorithms
4. System Design, and
5. Databases
Now, each topic is worth its own blog post but I’ll give an overview of each and what you can
expect to learn, while providing some great resources to start learning each of them.
We’ll start with computational complexity, data structures, and algorithms since these topics are
the most useful to your day to day work as a developer.
Not only that, but if you’re interviewing for software engineering roles at large tech companies
aka FAANG (Facebook aka Meta, Apple, Amazon, Google, Netflix), you will need to know these
three topics deeply.