Programming languages

There are study paths for three languages: Go, Rust and JavaScript. Each one has a long overview page, about twenty short pages on the language itself, from a first program to testing, and pages on how its runtime works. 96 pages in all.

The other Codex paths, such as databases and networking, cover the subjects you will use a language for. These pages are for when the language itself is what you need to learn.

Which one first If you are choosing a language for the kind of work you do.

Go

20 pages on the language, 13 on the runtime

A small language with goroutines and channels built in, and a runtime that schedules them across threads and collects garbage with short pauses.

Backend services and infrastructure tools. Kubernetes, etcd and Docker are written in Go.

Start with the Go overview

Rust

20 pages on the language, 11 on the runtime

Memory safety without a garbage collector: ownership and borrowing are checked when the program compiles, which rules out use-after-free bugs and data races in safe code.

Systems code where memory use and latency matter, such as Cloudflare’s Pingora proxy and parts of Firefox and the Linux kernel.

Start with the Rust overview

JavaScript

20 pages on the language, 3 on the runtime

Closures, prototypes, promises and async/await, and the event loop that runs them, in the browser and in Node.js, Deno and Bun.

Everything that runs in a browser, and many web servers and command-line tools through Node.js.

Start with the JavaScript overview