These concepts exist in every programming language. Variables in Python behave differently from variables in Rust — but the concept of a variable is the same. Understand the concept and every language becomes easier to learn.
Foundations
The six building blocks every program is made of.
Named storage for values. Binding, mutation, scope, and lifetime — and why Rust's variables behave differently from Python's.
Built · Session 05Integers, floats, booleans, strings, and how the choice of type determines what operations are valid and how values are stored in memory.
Built · Session 05Arithmetic, comparison, logical, bitwise, and assignment operators. Operator precedence and why 2 + 3 * 4 is 14, not 20.
If/else, switch/match, and the conditional expressions that let programs make decisions based on data.
Built · Session 05For, while, do-while, and range-based iteration. How different languages express repetition and when each form is appropriate.
Built · Session 05Functions & Scope
How code is organised into reusable units and how names are resolved.
Named, reusable blocks of code. Parameters, return values, first-class functions, and the difference between a function definition and a function call.
Coming · Session 06Where names are visible. Local, global, and block scope. Lexical vs. dynamic scoping. Why the same variable name can mean different things in different parts of a program.
Coming · Session 06Functions that call themselves. The base case, the recursive case, and the call stack. When recursion is the right tool and when it isn't.
Coming · Session 06Exceptions, Result types, and error codes. How Python, Java, Rust, and Go each handle the problem of things going wrong at runtime.
Coming · Session 06Organising code into separate files and namespaces. Import systems, packages, and how dependency management works.
Coming · Session 06Objects & Data Structures
How complex data is organised and how objects model the world.
Ordered collections of values. Indexing, slicing, and the difference between a static array and a dynamic list.
Coming · Session 07Key-value structures. How dictionaries, maps, and records work across languages.
Coming · Session 07Blueprints for objects. Constructors, instances, methods, and how different languages implement the class concept.
Coming · Session 07Subclasses and superclasses. Method overriding, super(), and the risks of deep inheritance hierarchies.
Coming · Session 07Threads, async/await, goroutines, and the challenges of doing multiple things at once.
Coming · Session 07Advanced Concepts
Functions that remember their enclosing scope. How closures enable callbacks, currying, and the module pattern.
ComingAddresses in memory. How C, Rust, and Java handle memory references — and why it matters.
ComingValues that cannot change after creation. Why immutability makes programs easier to reason about and test.
ComingChanges to state outside a function's return value. Why managing side effects is central to writing reliable software.
ComingThe absence of a value. Tony Hoare's "billion dollar mistake" and how modern languages are solving it.
Coming