Programming Foundations
Programming is the implementation layer for every other domain in this vault. These notes build fluency from the ground up: how computation works, how to structure it, how to reason about its correctness and efficiency.
Core Topics
Languages & Paradigms
Concepts that transcend any single language: typing systems, memory models, concurrency primitives, functional vs. imperative thinking.
Data Structures
Arrays, linked lists, stacks, queues, trees, heaps, hash tables, graphs — their implementations, trade-offs, and when to use each.
Algorithms
Sorting, searching, dynamic programming, greedy methods, graph traversal, divide and conquer. Analysis via Big-O.
Software Design
Design patterns, SOLID principles, clean architecture, APIs, modularity, and testability.
Systems Programming
How programs interact with hardware: memory management, processes, threads, I/O, and operating system primitives.
Key Questions These Notes Answer
- What is the time and space complexity of this operation?
- How do I choose the right data structure for this problem?
- How do I design software that is maintainable at scale?
- How does a program actually execute on hardware?
Prerequisites
None. This is a starting point.
Connects To
- Mathematical Foundations — complexity analysis, discrete math
- Software Engineering — applied at scale
- Data Science & AI — programming for ML pipelines
- Agentic AI — programming AI systems