missingref

Learn to program, from the first line of code.

Most programming books assume you have already written code. We start from scratch: installing a real toolchain on your own machine, reading the first error message it gives you, and finishing every chapter with a working program you wrote yourself. Nothing is simplified now and corrected later.

The Missing Kotlin Reference

Kotlin will not let you forget that a value might be missing. One download gets you an editor and a compiler that check your work as you type, and the last chapters lift the floor on the machine running underneath. The mistake that has crashed more software than any other is the one Kotlin makes hardest to write.

33 chapters planned · free

See the roadmap

The Missing TypeScript Reference

TypeScript answers back while you type. You set up Node, meet the type checker in chapter 2, and write programs that run anywhere JavaScript does. The compiler catches the mistakes beginners actually make, and says so before the program ever runs.

21 of 32 chapters · free

Learn TypeScript

The Missing C++17 Reference

C++ hands you the machine. You install a compiler, learn to read what it says when it refuses, and work up to pointers, memory and crash reports that used to look like noise. What other languages keep out of sight, you will have seen for yourself.

All 33 chapters · free to start

Learn C++

Starts at zero

No prior programming experience is required, in any language.

You work in a terminal

Every program compiles and runs from a single command you type yourself. The editor you use doesn't matter.

Every chapter ends in a project

Each chapter ends with a program you wrote yourself, and can explain line by line.

What you learn stays true

You learn the same language working programmers use in production. Later chapters open it up and explain the machinery underneath.

Short, focused chapters

One idea, one program, one sitting. Pick it back up whenever you're ready.

Start simple, build up

Every book on this site starts with printing something to the screen and ends with a real project. The path between depends on the language.