Intro: Why computer science is critical
Last updated
Last updated
You may not encounter computer science directly in your day-to-day work but it's for sure the the most important factor of becoming a talented software engineer, let's define talent IMO
A talented software engineer, has a non-linear positive effect to any organization (you can't predict his output based on the inputs), he understands machines very well and he can move faster between professions, technologies, and industries. A lot of promising talents can do much more but they are limited just because their skills in CS is limited, so it's better to have a strong foundation to break any learning boundary in the future.
Computer science is critical for understanding how technology works and how to compare two different technologies (what is the difference between a container and a VM? Or bare-metal VM vs Guest VM? What about the cost of an actual Java thread for RAM and CPU context switch cost compared to a Go routine? How databases management systems implement their indexes data structures differently?)
Everything will seems harder to understand if you always learning abstracted skills in a black box environment
Computer science in a high-level overview it's concerned with the theory + software + hardware studies of computing
In a deeper level however, we could divide it into subfields such as
Algorithms & Data Structures
Computer Architecture & Organization
Operating Systems
Software Engineering
AI and robotics
Bioinformatics
Networking
Programming Languages
Databases
Graphics
Human-Computer Interaction
Itβs a good idea to gain this overview, so whenever you have the time you could directly go and learn about a certain subfield π