As one may infer from the name, Computers are entities that ‘compute’ - perform a (math) operation and return its result.
It is said that in the 1940s, women were recruited as ‘computers’ to perform operations on the machines that men would build it. Fast-forward to today, computers are omnipresent in different shapes and sizes - like the one in front of you.
Just as this word evolved from meaning a human to a machine, so has the layers of abstraction upon which we’ve leveraged technology. While Charles Babbage meticulously designed his analytical engine in the 18th century, tomorrow’s startup may spin up his business using no-code tools in a couple of minutes. Looking towards the future, one can only imagine the number of abstraction that’ll be packed to better enable us further.
In this era of information, it is easy for us to take for granted the collective progress of humanity over the years. It is our hope to shed light on these developments of computer science to bring clarity to your understanding. As promised, together we shall voyage the spectrum of computer science - from the basics of math to the advances of quantum - and leave you with some pointers on bringing out the practical elements of related concepts.
In our introductory post, we would like to:
Provide a sneak peak into the topics for coming weeks
Set an outline for each subsequent post, and
Hint about our goals for phase 2
The Atlas
While most my disagree, we believe that computer science is the field developments to solve math problems in our daily lives. These problems may not always involve numbers in the most straightforward sense - sometimes, it may be hidden. Hence, we develop logic in the form of ones and zeroes (or binary) to abstract these problems.
Sometimes, in the process of solving problems, we observe repeatable patterns that can be applied to other kinds of problems. Over time, we take the learnings across dimensions and unite them together to tackle the more complex problems out there. So to build the foundation to get there, the following will be the sub-domains of CS that will be covered in the coming weeks:
Computer Engineering 💻
Discrete Math
Logic System Design
Computer Architecture
Operating System
Computer Networks
Computer Science 💿
Programming Paradigms
Computational Analysis
Database Management
Theory of Computation
System Software
Bonus ✨
Compiler Design
Computer Graphics
Graph Theory & Combinatorics
Cryptography
Distributed Computing
While this is not an exhaustive list (additional topics exist, such as Microprocessors, robotics etc.), this is a decent set of topics that if you get at least a peripheral understanding, would usher you to dive deep for the ones that pique your interest.
(PS: For a nice map of Computer Science, check out this video or the poster directly - it helped us compile this list)
The Format
Key concepts of sub-field X
The history involving the pioneers of X
Present day research labs innovating in X
How you can get started in X - both theory and practice
The (2022) goal
Yes, we did say that we would #makeAcademicsCoolAgain - to show you why a career in research or foundational CS would be enticing for your intellectual thirst.
However, to do justice to those innovating in the labs, we as the writers of these posts need to do our ‘research’ and due diligence - to truly understand the nitty-gritties of each sub-domain. And this takes time - not just to aggregate the content, but to also structure it in a way that is worth your time to read.
Hence as we map out the sub-domains in CS as part of our Phase 1, we shall ready ourselves to get deeper in terms of examples and challenges for you in Phase 2. As always, we are open to your suggestions on how we may better expand on different topics so feel free to reach out to us.
Until next post, good bye!