Language Foundations
Syntax is the easy part. This track spends its time on the parts that trip people up later: scope, mutability, type coercion, and how a language handles errors. Exercises are short and repeatable so the concepts settle before you move into frameworks.
Format: guided modules with weekly code review
Software Engineering Methods
Covers version control habits, branching strategy, code review etiquette, and how to break a feature into commits that another person can actually follow. Includes refactoring drills on a shared repository so you feel the friction of a messy history.
Format: paired exercises on a live repository
Debugging and Diagnostics
A method for turning a stack trace into a fix list. You learn to read errors from the thrown exception upward, isolate the first frame that belongs to your own code, and write down the broken assumption before changing anything.
Format: timed debugging sessions with a written post-mortem
Testing Practice
Why a suite that breaks on every rename is testing the wrong thing. We look at the difference between asserting on a public contract and asserting on a private step, and how fixture design quietly decides how expensive your refactors will be.
Format: test suite audit on your own project
Data and Storage Basics
Relational modelling, query shape, indexing trade-offs, and where an application should stop talking to the database directly. The emphasis is on reading an existing schema and reasoning about it, not on memorising syntax.
Format: schema reading and query review
Deployment and Environment
Build steps, environment configuration, logs, and what happens between a merged branch and a running service. Enough infrastructure literacy that a deployment failure stops being a mystery and becomes a checklist.
Format: walkthrough of a staging pipeline