Programming, explained and run.
Each page explains one idea, language feature, task or tool of programming in plain words. Each code example runs in a pinned toolchain, and its output on the page is the output of that run. Each fact names its source.
Search 0 pages⌘K- 0 concepts
- 0 languages
- 0 language features
- 0 tasks
- 0 example files
Areas
All areas- FoundationsWhat a program is, how a machine runs it and how a machine stores numbers and text.
- ParadigmsThe main styles of programming and the ideas of each style.
- Syntax and semanticsHow the text of a program is read and what it means.
- TypesType systems and how they find errors before or during a run.
- Data and valuesThe values that a program works on, and the collections that hold them.
- Functions and abstractionFunctions, closures, modules and the other ways to name and hide a part of a program.
- Objects and classesObjects, classes, prototypes and the ways that they share behaviour.
- Memory and resourcesHow a program gets memory and other resources and gives them back.
- Errors and control flowControl structures, and the ways that a program reports and handles errors.
- Concurrency and parallelismPrograms that do more than one thing at a time.
- MetaprogrammingPrograms that read, change or make programs.
- Language implementationHow compilers, interpreters and runtimes work.
- LanguagesThe catalogue of programming languages. Each language of the register has a guide with the same parts.
- Software designDesign principles, design patterns and architecture.
- Construction practiceHow to write code that people can read and change.
- TestingHow to find defects by running the program.
- Debugging and observabilityHow to find the cause of a defect, and how to see what a running program does.
- Tools and workflowThe tools that programmers use each day.
- Program analysis and verificationThe methods and the tools that find defects in a program or prove that it is correct.
- PerformanceHow to measure the cost of a program and how to make it smaller.
- Secure programmingWeaknesses in code and how to prevent them.
- Software engineering processHow teams plan, build, release and maintain software.
- Open source and licensingFree and open-source software, licences and how projects work together.
- Data and persistenceDatabases, data formats, text encodings and files.
- Systems programmingPrograms that work close to the operating system and the hardware.
- Web developmentPrograms that run in a browser or answer HTTP requests.
- Mobile and desktopApps for phones and for desktop computers.
- Distributed and cloud programmingPrograms that run on many computers and on cloud platforms.
- Data science and ML programmingThe tools that data scientists and ML engineers program with.
- AI-assisted programmingProgramming with language models and coding agents.
- Graphics and games programmingGraphics APIs, shaders, game loops and audio.
- Scientific and high-performance computingNumerical programs and programs that run on large machines.
- Embedded and hardwarePrograms for small devices, and languages that describe hardware.
- Domain programmingProgramming for a special field, from spreadsheets to robots.
- History and cultureThe history of programming, its people and its culture.
- Learning programmingHow people learn to program, and the common mistakes of learners.
How a page earns trust
- Plain words. The text uses short sentences and simple words. A reader who knows some code can follow it.
- Code that runs. The build runs each example and records its output. A version claim, such as "since Python 3.10", comes from a probe that the build runs on each version.
- Sources. Each rule of a language cites the reference or the standard, at the version that it is about.
- Honest badges. The build computes each badge from evidence. Nobody writes a badge by hand. Read about the badges.