A Reintroduction to Programming
Deeper knowledge of your most essential tool.
Mastery of computer programming unlocks power, flexibility, speed, and debugging prowess across all of your work. We will learn in depth what you use every day, by exploring memory, instructions, syscalls, functions, structure and cognition.
Chapter 1: Memory & instructions
We explore the most basic level of computer programming — binary, assembly, and machine code.
1. Introducing 0DE5
2. From the Rosetta Stone to Binary, Hex, Octal, and ASCII
3. Just enough C to have fun
4. Making .BMP images from scratch
5. Just enough assembly to blow your mind
6. From ARM64 to x86-64
7. Fast and beautiful assembly
8. How the stack got stacked
9. Crafting executables from raw bytes
10. Best of the comments, worst of the mistakes
11. Project: build a disassembler
Chapter 2: From instructions to languages
We explore how languages are built out of memory and instructions.