New Beginner paths, plus Tailwind CSS and XML tutorials

Learn to code. Ace the interview. Think like a senior engineer.

Start from zero with step-by-step tutorials you can run in the browser. Then practise on 173 coding problems with real tests and 3,721 interview questions answered the way senior engineers answer them.

New to coding? Start here with the beginner path

  • 803tutorial pages
  • 173coding problems
  • 3,721interview questions
  • 1,318course lessons

Practise today, free

New to coding?

Start from zero. No experience needed.

Learn Python one small step at a time: variables, loops and functions, each with an example you can change and run. Nothing to install, just your browser.

Follow the beginner path
  1. Learn the Python basics
  2. Solve your first 10 problems
  3. Ask questions of data with SQL

No installs

Run real code right in your browser

Python, JavaScript, TypeScript, PHP and SQL run on the page. Edit any example, press Run and see the result instantly.

Start a tutorial

Build for the web

Build your first web page and see it live

Write HTML and CSS, style it quickly with Tailwind CSS, then add JavaScript. Every example shows a live preview that updates as you edit.

Start building websites
  1. HTML: structure a page
  2. CSS: colours and layout
  3. Tailwind: style faster
  4. JavaScript: make it interactive

Practise

From your first problem to interview-ready

Begin with ten friendly problems that have hints and tests, then move on to problems grouped by the pattern that solves them, from Two Sum to LRU Cache.

Try your first problem

Think like a senior

Answers that explain the trade-offs

Interview questions answered the way senior engineers answer them: the why, the trade-offs and the follow-ups interviewers ask.

Browse questions

Look it up fast

Every built-in function, explained

Syntax, parameters, version history and examples you can run for Python, JavaScript, PHP and SQL.

Open the reference

Free during beta

Learn for free. Save your progress.

Every tutorial, course and reference page is free to read. Create an account to track progress, keep notes and build a streak.

Create a free account

Everything in one place

From your first loop to the system design round.

Learn a language, drill the patterns interviews test, and go deep on the engineering topics senior roles expect, all with code you can run.

Tutorials

Start with a language.

All tutorials →
Python Tutorial Learn Python from scratch: syntax, variables, strings, lists, dictionaries, loops, functions, classes,… 42 lessons JavaScript Tutorial Learn modern JavaScript step by step: variables, strings, arrays, objects, functions, closures,… 44 lessons PHP Tutorial Learn modern PHP 8 step by step: syntax, variables, strings, arrays, functions, forms, sessions, files,… 38 lessons Java Tutorial Learn Java 21 step by step: syntax, variables, strings, arrays, methods, classes, inheritance,… 37 lessons SQL Tutorial Learn SQL step by step on a real database in your browser: SELECT, WHERE, ORDER BY, GROUP BY, joins,… 36 lessons TypeScript Tutorial Learn TypeScript step by step: types, interfaces, unions, narrowing, functions, classes, enums,… 25 lessons HTML Tutorial Learn HTML from scratch: page structure, headings, text, links, images, lists, tables, semantic… 34 lessons CSS Tutorial Learn CSS step by step: selectors, colours, the box model, typography, units, flexbox, grid,… 19 lessons Go Tutorial Learn Go (Golang) step by step: variables, types, slices, maps, structs, pointers, functions, methods,… 30 lessons C# Tutorial Learn C# and .NET step by step: variables, strings, control flow, methods, classes, interfaces,… 22 lessons C++ Tutorial Learn modern C++ (C++20) step by step: types, strings, control flow, functions, references, pointers,… 21 lessons Terraform Tutorial Learn Terraform and infrastructure as code from scratch: providers, resources, variables, expressions,… 25 lessons Networking Tutorial Computer networking for developers and cloud engineers: IP addresses, subnets and CIDR, IPv6, ports,… 28 lessons DevOps Tutorial DevOps from the ground up: Linux and the shell, robust bash scripts, Git, CI/CD pipelines, deployment… 25 lessons Cloud Computing Tutorial Cloud computing for engineers, AWS first with Azure and Google Cloud equivalents: regions and zones,… 24 lessons Forward Deployed Engineering Tutorial What forward deployed engineers do and how to do it well: customer discovery and scoping, integrations… 24 lessons XML Tutorial XML from the basics to advanced use: syntax, well-formedness, namespaces, validation with DTD, XML… 28 lessons Tailwind CSS Tutorial Learn Tailwind CSS v4 step by step with live examples on every page: utility classes, colours,… 27 lessons Laravel Tutorial Learn Laravel, the most popular PHP framework, step by step: routing, controllers, Blade templates,… 27 lessons Git & Command Line Tutorial Learn the command line and Git from scratch: navigating folders, working with files, searching, pipes… 20 lessons AI Engineering Tutorial Build features on large language models: tokens and context windows, messages and system prompts, API… 25 lessons Docker Tutorial Learn Docker from your first container to production-ready images: images and layers, the container… 26 lessons Kubernetes Tutorial Learn Kubernetes hands-on: architecture and kubectl, pods, namespaces and labels, Deployments, rolling… 26 lessons Bash Tutorial Learn Bash and the Linux command line step by step: navigating and managing files, pipes, grep, sed,… 30 lessons Rust Tutorial Learn Rust step by step: variables, types, functions and control flow, ownership, borrowing and… 29 lessons Kotlin Tutorial Learn Kotlin step by step: variables and types, null safety, functions and lambdas, classes, data and… 31 lessons Swift Tutorial Learn Swift step by step: constants and variables, types and strings, control flow, functions,… 30 lessons htmx Tutorial Learn htmx 2 step by step with a live, clickable example on every page: requests with hx-get and… 30 lessons

Courses

Go deep where it counts.

All courses →

Track your progress, free.

Save solved problems, bookmarks and notes, run timed mock interviews and follow learning paths built for your next role.