Choose where to start.
8 tracks, 15 videos, 14 deep tutorials and 107 quick answers — zero prerequisites. Each track takes you from installing the tools to building something real.
Python
Variables through regular expressions, in the language that gets out of your way. The fastest path from "what is a terminal" to writing programs that do real work.
Written syllabus
- 01 Intro to Python — Your First Real Program Install Python, meet the REPL, and write a program that takes input from a human and does something useful with it — all in one sitting. 12 min
- 02 Python Basics — Lists, Dictionaries and Functions The four data structures and the one language feature that every later lesson assumes you already know. This is the load-bearing lesson of the whole track. 16 min
- 03 Python Loops and List Comprehension For loops, while loops, enumerate, zip — and the comprehension syntax that replaces about eighty percent of the loops you were about to write. 18 min
- 04 Introduction to Regular Expressions in Python Pattern matching without the fear. The dozen symbols that cover ninety percent of real use, plus groups, and the one function everyone reaches for first by mistake. 14 min
Watch the series
- Intro to Python10:47
- Python Basics14:58
- Python Loops and List Comprehension22:35
- Introduction to Regular Expressions in Python4:59
Quick answers
- f-string vs .format() vs % in Python: which should I use?
- How do I check if a list is empty in Python?
- How do I copy a list in Python without changing the original?
- How do I get the index while looping in Python?
- How do I read a file in Python?
- How do I reverse a list in Python?
- How do I sort a dictionary by value in Python?
- How do I swap two variables in Python?
PHP & the Web
Install a local server, serve your first page, handle a form, validate what users type, then make the whole thing look good with CSS. A complete web mini-course.
Written syllabus
- 01 Hello World in PHP with XAMPP Get a real web server running on your own machine, understand why you cannot just double-click a .php file, and serve your first dynamic page. 10 min
- 02 Building a PHP Web Form HTML forms, GET versus POST, superglobals, and the self-submitting page pattern that every PHP app is built on. 13 min
- 03 Building a Factorial Calculator in PHP Functions, loops and recursion applied to a problem small enough to hold in your head — plus the integer overflow that every factorial tutorial forgets to mention. 12 min
- 04 Input Sanity Checks in PHP and JavaScript Validate on the client for speed, validate on the server for safety — and understand exactly why skipping the second one gets you hacked. 15 min
- 05 How to Make a Beautiful Website with CSS Take the working-but-ugly form from the last lesson and make it something you would actually show people — using custom properties, flexbox, grid and a real type scale. 16 min
Watch the series
- Hello World in PHP with XAMPP3:35
- PHP Web Form4:26
- Building a Factorial Calculator in PHP5:13
- Input Sanity Checks in PHP and JavaScript5:44
- How to Make a Beautiful Website with CSS3:59
Quick answers
- echo vs print vs print_r vs var_dump in PHP
- GET vs POST: which should my form use?
- How do I fix "headers already sent" in PHP?
- How do I fix "Undefined array key" in PHP?
- How do I format dates in PHP?
- How do I handle a file upload safely in PHP?
- How do I hash a password in PHP?
- How do I prevent SQL injection in PHP?
Ruby
Loops, iterators, and blocks — the three ideas that make Ruby feel different from everything else you have used. Short track, big payoff.
Watch the series
Quick answers
- Blocks, procs and lambdas in Ruby
- each vs map in Ruby: what is the difference?
- How do I handle nil safely in Ruby?
- How do ranges work in Ruby?
- How does string interpolation work in Ruby?
- require vs require_relative in Ruby
- select, reject, find and detect in Ruby
- What does &. mean in Ruby?
C#
Build a working calculator in Visual Studio — event handlers, state, and the parts of a GUI app that every tutorial skips.
Watch the series
Quick answers
Racket
The functional language used in university CS programs worldwide. Parentheses look strange for about ten minutes, then they make everything else make sense.
HTML, CSS & JS
Layout that does not fight you, JavaScript that does not surprise you, and the browser behaviour underneath both. Written answers to the questions that come up while you build.
Written syllabus
- Written lessons landing soon.
Quick answers
- CSS position: relative vs absolute vs fixed
- CSS transition vs animation: which do I need?
- Debounce vs throttle: what is the difference?
- Flexbox vs Grid: which should I use?
- How do I add dark mode to a website?
- How do I center a div in CSS?
- How do I fetch data from an API in JavaScript?
- How do I fix "Cannot read properties of undefined"?
CS Fundamentals
Big-O, data structures, recursion, git and the command line. The parts of computer science that stay useful no matter what you end up writing.
Written syllabus
- Written lessons landing soon.
Quick answers
- Array vs linked list: when does it matter?
- git merge vs rebase: which should I use?
- How do I resolve a git merge conflict?
- How do I undo the last commit in git?
- How does a hash table work?
- Recursion vs iteration: which should I use?
- Stack vs queue: what is the difference?
- The terminal commands worth learning first
Interview Prep
LeetCode problems walked through the way an interviewer wants to hear them: brute force first, then the insight, then the optimal solution and its complexity.
Written syllabus
- 01 LeetCode 349: Intersection of Two Arrays The set-versus-nested-loop lesson. Three solutions, from the one that gets you rejected to the one that gets you hired — and how to talk through each. 10 min
- 02 LeetCode 997: Find the Town Judge A graph problem in disguise. Reframe trust as in-degree and out-degree and a fiddly problem collapses into ten lines and a single pass. 12 min
Watch the series
- LeetCode 997 Explained (Python) — Find the Town Judge10:24
- LeetCode 349 Explained (Python) — Intersection of Two Arrays2:52
Quick answers
- How do I write binary search without off-by-one errors?
- How do I write FizzBuzz well?
- Reverse a linked list
- Time complexity of common operations, by language
- Two Sum: how the hash map solution works
- Valid Parentheses: why a stack is the answer
- What is the sliding window technique?
- What should I say out loud in a coding interview?