Conclusion
In this module, we introduced some common abstractions for computers. The key takeaways are:
- Developers almost always target abstract computers to allow their programs to run on more computers, and to program complex applications more easily.
- The closest-to-hardware abstractions of computers are Instruction Set Architectures (ISAs). The common ingredients shared across most popular ISAs are registers, memory and instructions.
- Memory use cases, stack and heap are the basic models for using memory effectively.
- Memory use cases defines what a piece of memory is for at each point in time.
- Stack is a small, ordered piece of "buffer" memory from which memory can be allocated and accessed quickly.
- Heap is a large, unordered piece of "buffer" memory that is generally slower to allocate and access memory from compared to stack.
Congratulations! You now have a basic understanding of how computers look like to developers!
Developing the basic mindset and understanding how computers work is the first milestone in the journey of becoming a good developer, and you have made it!
You can feel excited, as this marks the end of the "prerequisite" modules; starting from the next module, we will be discussing actual development, and you will start to get your hands dirty on coding!