Language Atlas (mini-courses for more languages)
Language Atlas (mini-courses for more languages) practice
74 exercises and 49 quizzes from the lessons of this track. Sample tests run in your browser; what you pass is kept in this browser only.
Start here: how the atlas works and how to learn a language fast
ABAP with the open-source abaplint toolchain
Visual Basic .NET for maintainers (and the road to C#)
- Work out the Options a Visual Basic file is compiled with
- Quiz: VB.NET on .NET 10: projects and Option Strict
- Port Visual Basic array bounds, For loops and CInt to Python
- Quiz: VB.NET for C# developers: the differences
- Rebuild the XML summary of the orders from a CSV file
- Quiz: VB.NET LINQ, XML literals and Async
- Compare a port with the legacy answers, case by case
- Port the legacy invoicing module behind its characterisation tests
- Quiz: Project: port a VB.NET module to C#
Object Pascal with Free Pascal (Delphi-compatible)
- Work out which settings a Free Pascal build uses
- Quiz: Object Pascal setup: FPC, modes and Delphi
- Port Pascal's Copy, Pos, Delete and Insert to Python
- Quiz: Object Pascal for Python and C developers
- Port the generic ring buffer and its exceptions to Python
- Quiz: Pascal classes, generics and exceptions
- Compute the marks report's statistics with whole numbers
- Quiz: Project: a marks report in Object Pascal
Ada with Alire and GNAT
- Read GNAT's messages and say whether a build fails
- Quiz: Ada with Alire and GNAT 16: install and build
- Compute as Ada does, in Python
- Quiz: Ada for C and Java developers: strong types
- Read GNATprove's summary table and gate a build on it
- Quiz: Ada contracts, tasks and a first SPARK proof
- The level-crossing controller, as a Python model
- Quiz: Project: a level-crossing controller in Ada
Tcl 9 for engineers and automators
- Split a Tcl command into its words, as Tcl does
- Quiz: Tcl 9.0 and 9.1: install and what changed
- Refuse the arguments that exec would read as redirections
- Quiz: Tcl for Python and Bash users: the rules
- Predict the order in which the event loop runs callbacks
- Quiz: Tcl event loop, coroutines and small DSLs
- Turn nanoseconds into whole picoseconds and back
- Summarise the slack of each clock, worst first
- Quiz: Project: a timing-report summariser in Tcl
Objective-C for maintainers and Swift developers
- Format paise as rupees, negative amounts included
- Quiz: Objective-C with clang and Foundation on macOS
- Write Objective-C message sends from a selector
- Quiz: Objective-C for Swift and C developers
- Predict which objects ARC never frees
- Quiz: Objective-C ARC, blocks and Swift interop
- List every problem of one transaction
- Check the amount of one ledger line
- Print the trial balance of a ledger
- Quiz: Project: a command-line ledger in Objective-C
Groovy for Java developers, Jenkins and Gradle
- Check a groovy --version line against the pins
- Quiz: Groovy 6 on JDK 21, and the Groovy in Jenkins
- Give missing minutes a default, and keep a real 0
- Print values the way Groovy's println shows them
- Quiz: Groovy for Java developers: idioms and traps
- Find a name the way a closure's resolve strategy does
- Quiz: Groovy closures, DSLs and static checking
- Find the flaky jobs, in run order
- Average the minutes per tag, rounded half up
- Quiz: Project: a build-report tool in Groovy
D for C, C++ and Python programmers
- Check a dub recipe the way dub 1.42.0 does
- Quiz: D: compilers, dub and where D is used
- Port the topWords range pipeline from D to Python
- Quiz: D for C, C++ and Python developers
- Work out the type D gives each unit expression
- Quiz: D at compile time: CTFE, templates, mixins
- Decide which cells are numbers, as csvstats does
- Print the whole csvstats report from a CSV text
- Compute a column's five statistics, as csvstats does
- Quiz: Project: a CSV statistics tool in D
Gleam on the BEAM and in JavaScript
- Pick the newest version a requirement allows
- Check three version lines against the pins
- Quiz: Gleam on Erlang/OTP 29 and Node.js: first project
- Check a form the way form.gleam does
- Quiz: Gleam for JavaScript and Python developers
- The message handler of a rate-limiter actor
- Quiz: Gleam processes, actors and FFI
- Report the free seats and the sales
- Confirm a hold, or say why not
- Hold seats, all or none
- Quiz: Project: a ticket-booking core in Gleam
Nim for Python and C programmers
- Predict an int8 addition in each Nim build mode
- Quiz: Nim 2.2: install, build modes and backends
- Find the most common letter, ties broken alphabetically
- Quiz: Nim for Python developers: types and procs
- Predict which refs ARC and ORC free
- Quiz: Nim macros, ARC/ORC memory and backends
- Step 1: the line rule of loglens
- Step 2: the nearest-rank p95
- Step 3: the whole loglens report
- Quiz: Project: a log analyser in Nim
Elm and The Elm Architecture
- Read an application's elm.json
- Print paise as rupees, the way Orders.elm does
- Quiz: Elm 0.19.3: install, build and run headlessly
- Divide and round the way Elm does
- Print refunds without losing the sign
- Quiz: Elm for JavaScript developers
- Write a cart's update the way Elm runs it
- Decode an order with a path in every error
- Quiz: The Elm Architecture, JSON and ports
- Read a price typed in rupees as paise
- Split a bill so that the shares add up
- Report every problem of a bill at once
- Quiz: Project: a bill-splitter app in Elm
Crystal for Ruby developers
- Read what crystal spec reported
- Quiz: Crystal 1.21: install, compile, test, shards
- Divide two integers the five ways Crystal does
- Add two Int32 values the way Crystal does
- Round a half the Crystal way and the Ruby way
- Quiz: Crystal for Ruby developers: types and nil
- Work out what C sees of a Crystal string
- Write the methods define_units writes
- Quiz: Crystal macros, fibers and C bindings
- Convert one cell by its column's type
- Split CSV into records with their start lines
- Run csv2json from schema to JSON
- Quiz: Project: a CSV-to-JSON converter in Crystal
Capstone: one specification, twelve languages
Results here are what this browser has checked: feedback for you, not proof. They stay on this device; your Learn progress can be exported to a file. · Back to the Language Atlas (mini-courses for more languages) track