All courses
Coding track

Learn to code, on boards that show what your code did

Python and C++ from your first print to classes, tests and state machines. Every program runs on a simulated board, so a bug is something you can see.

Free7 courses, 56 lessons, about 41 hours3 levels
Start at the first rungPython from zero
The track

Zero to expert, one course at a time

Most coding courses end at text on a screen. Here your program lights an LED, reads a button or drives a display, and the simulator checks each step, so you know when you got it right and you can see exactly what went wrong when you did not.

Start with Python on a Raspberry Pi or C++ on an Arduino Uno, with no experience needed for either. The track then climbs to the habits working programmers use: classes, references, ring buffers, templates, tests and code split so it can be tested away from the hardware.

The ladder

Every course, by level

Take them in order, or start on the rung that matches what you already know. Each course page lists every lesson.

Level 1

Start from zero

Your first language, one idea per lesson.

7 lessons 路 5 h 路 Raspberry Pi 4 Model B

Python from zero

Beginner Python on a Raspberry Pi: print, variables, decisions, loops, lists, functions, dicts and strings, then a button with gpiozero and a working pedestrian crossing.

Open the course
13 lessons 路 10 h 路 Arduino Uno R3

C++ on a board

The language, one idea per lesson, on a board that shows you what your code did.

Open the course
Level 2

Build real programs

Find bugs from evidence, then write code that stays sane as it grows.

8 lessons 路 1 h 路 Arduino Uno R3

Fix the bug

Short puzzles on an Uno: one planted fault each, in the wiring or the code. Find it, fix it, and see it work.

Open the course
7 lessons 路 6 h 路 Arduino Uno R3

C++ that scales

The habits that keep a big program sane, on the Uno: references and const, classes, a ring buffer, a state machine class, templates, and logic split from pins so it tests itself. Ends with a tested calculator.

Open the course
7 lessons 路 6 h 路 Raspberry Pi 4 Model B

Python with real habits

Advanced Python on a Raspberry Pi, after Python from zero: modules, classes, exceptions, files and logging, tests with plain assert, generators, and a sensor logger that uses them all.

Open the course
Level 3

Expert

The data structures, algorithms and design habits interviews ask about.

7 lessons 路 6 h 路 Arduino Uno R3

Data structures and algorithms

The ideas every programmer is asked about, built and measured on an Uno: big O, linked lists, stacks and queues, hash maps, sorting and binary search. Ends with a leaderboard that needs them all.

Open the course
7 lessons 路 7 h 路 Arduino Uno R3

Software design and testing

How teams keep firmware right as it grows: readable code, modules behind narrow interfaces, fakes, tests on boot, test-first fixes, safe refactors and code review. Ends with a messy sketch refactored under test.

Open the course
Outcomes

What you will be able to do

  • Write Python with variables, loops, functions, dicts, classes, exceptions and tests.
  • Write C++ that knows the size of its types, uses pointers and structs, and splits into headers.
  • Find a bug from the evidence instead of guessing, in the wiring or the code.
  • Structure a bigger program with classes, a state machine and logic you can test without the board.
Careers

Where this track leads

The jobs these skills are used in every day, with what each one does and how to get there.

Topics

Looking for something specific?

Each of these starts you on the right course and lesson for one subject.

For programmers

Electronics for programmers

You already think in state, timing and interfaces. This route maps them onto current, voltage, pull-ups and buses, with code you can read on a simulator that shows each wire.

Start here
Questions

About the coding track

Do I need to know any code before I start?

No. Python from zero and C++ on a board both start with a program of one line and build from there, one idea per lesson.

Should I learn Python or C++ first?

Either works. Python reads more like plain English and is a good first language. C++ is what most microcontrollers run, so pick it if you want to build devices. The ideas carry over both ways.

Why learn to code on a simulated board?

Because you can see what your code did. A loop that runs one time too many blinks one time too many, and a wrong comparison leaves a light on. That makes bugs easier to find and the ideas easier to remember.

Do I need to install anything?

No. Everything runs in your browser on a laptop, a Chromebook or a tablet, and your progress is kept so you can stop after any lesson.

Tracks

The other tracks

16 courses, 126 lessons, about 97 hours

Embedded track

Arduino, ESP32, Raspberry Pi Pico and STM32: pins, timing, buses, motors, WiFi, registers and debugging, every lesson checked on a simulated board.

See the track
11 courses, 102 lessons, about 60 hours

Electrical track

Current and voltage you can see, then transistors, op-amps, filters, power and PCBs. Every circuit runs in a real circuit simulator in your browser.

See the track
21 courses, 141 lessons, about 98 hours

Maker track

Follow the starter kit you already own, then build a claw machine, a balance bot, a handheld console or an LED cube, each a short course checked by the simulator.

See the track
15 courses, 107 lessons, about 82 hours

Robotics track

Motors, servos, sensors and PID control loops, then a rover, a claw machine and a balance bot, every lesson checked on a simulated board.

See the track