Module 1: The Abstract Computer
This module assumes that you know the fundamental ideas in the developer's world, specifically, abstraction, hierarchy and standards. If you don't, please take a look at Module 0: The Developer's Mindset before learning this module.
This module introduces the various abstractions of computers applicable to developers, that is, what computers look like to developers. Understanding this is essential to understanding why programming languages are designed in the way they are and the logic behind their design choices, and it also helps you to understand what you can do or cannot do in coding, as well as the "why".
In later sections, you will find that a lot of concepts introduced in this section (such as memory address space, stack and heap) apply to virtually all programming languages.
Let's dive right in!