A classic guide that groups and explains Python's special (dunder) methods such as __init__, __getattr__ and __enter__ with examples. in Programming Languages →
Intermediate
For someone past the basics: the step after you can already use the language or tool.
116 links
Go’s official tour, with every example runnable and editable in the browser. in Programming Languages →
The University of Pennsylvania’s Haskell course, with lecture notes and assignments public. in Programming Languages →
A free book that has you write a language twice — a tree-walking interpreter in Java, then a bytecode VM in C. in Programming Languages →
Ned Batchelder’s classic talk on Python’s model of names and values. in Programming Languages →
Explains each concept through one annotated program. in Programming Languages →
Google’s short Python course made for its own staff: notes, lectures and exercises. in Programming Languages →
A community guide to Python style, project layout and tooling. in Programming Languages →
Short episodes each deepening one Python concept. in Programming Languages →
Teaches Python, SQL and R through runnable examples, opening each concept with one small piece of code. in Programming Languages →
A long series building an interpreter step by step in Python, constructing every piece by hand from lexing to the abstract syntax tree. in Programming Languages →
An introduction to the LLVM infrastructure plus the Kaleidoscope tutorial, the classic starting point for writing your own language. in Programming Languages →
Structure and Interpretation of Computer Programs, MIT’s classic text in a readable HTML edition. in Programming Languages →
A short book of common Python mistakes, each with the wrong and the right form. in Programming Languages →
A tiny compiler of a few hundred heavily commented lines. in Programming Languages →
A collection of surprising and counter-intuitive Python behaviours, each as a short snippet with an explanation. in Programming Languages →
A downloadable, deliberately vulnerable app containing 100+ web vulnerabilities. in CTF & Hands-on Labs →
A step-by-step solution of the internet’s best-known puzzle, chaining steganography, book ciphers and Tor hidden services. in CTF & Hands-on Labs →
A user-submitted archive of reverse engineering challenges (crackmes), filterable by difficulty, language and platform. in CTF & Hands-on Labs →
A deliberately vulnerable iOS app for learning mobile security. in CTF & Hands-on Labs →
A modern, vulnerability-filled web app practice target built by PortSwigger. in CTF & Hands-on Labs →
Module-based learning with practical certifications such as CPTS and CBBH. in CTF & Hands-on Labs →
Hands-on, in-browser labs covering penetration testing and web security. in CTF & Hands-on Labs →
An embedded-systems CTF where you break electronic locks using an in-browser MSP430 debugger. in CTF & Hands-on Labs →
A modern web app deliberately full of vulnerabilities — a target for learning security. in CTF & Hands-on Labs →
Web and application security exercises where each one explains a vulnerability and gives you a running environment to exploit it. in CTF & Hands-on Labs →
The CTF guide from the security firm Trail of Bits, laying out which skill each category needs and how to build it. in CTF & Hands-on Labs →
Docker-compose environments for known CVEs that come up with one command. in CTF & Hands-on Labs →
An archive of community-built vulnerable VMs you download and run locally. in CTF & Hands-on Labs →
PortSwigger’s free, hands-on web-security course — a live lab for each vulnerability. in CTF & Hands-on Labs →
Turkish YouTube channel by Prof. Kemal Bıçakcı featuring university lectures and talks on cryptography, application… in Certification & Career →
A channel working through algorithms on a board with complexity analysis. in Learning & Roadmaps →
A platform that visualises an algorithm step by step alongside its code, and runs code you write yourself. in Learning & Roadmaps →
Independent archive of code-heavy tutorials covering C++, Python, Linux systems programming, sockets, algorithms, and… in Learning & Roadmaps →
The study plan its author used to get into Amazon, as a long checkable list. in Learning & Roadmaps →
A channel explaining computer science concepts in conversation with academics. in Learning & Roadmaps →
The classic collection of step-by-step animations for data structures and algorithms, from red-black trees to Dijkstra. in Learning & Roadmaps →
A "crash course" series summarising a language or framework in a single video. in Learning & Roadmaps →
A compilation spanning distributed systems, character encoding, latency numbers and security. in Learning & Roadmaps →
The University of Helsinki’s free, end-to-end full-stack course teaching React, Node and GraphQL. in Learning & Roadmaps →
The archive of technical talks given at Google, many by the founding figures of their fields. in Learning & Roadmaps →
Conference recordings weighted towards software architecture and engineering culture. in Learning & Roadmaps →
A video archive of selected talks from software conferences, most with a transcript. in Learning & Roadmaps →
A step-by-step tutorial that builds a SQLite-like database from scratch in C: REPL, B-tree, pager, cursors. in Learning & Roadmaps →
MIT’s open archive for electrical engineering and computer science — the source of its algorithms, operating systems and compilers courses. in Learning & Roadmaps →
MIT’s open archive of lecture notes, assignments, exams and solutions. in Learning & Roadmaps →
The classic whiteboard series on data structures and algorithms. in Learning & Roadmaps →
Orders algorithm problems by topic dependency — two pointers into sliding window into dynamic programming. in Learning & Roadmaps →
An open textbook presenting data structures in Java, C++, Python and pseudocode side by side. in Learning & Roadmaps →
Nine subjects for self-teaching computer science, each with exactly one book and one course recommended. in Learning & Roadmaps →
Recordings from a software consultancy: pair programming sessions, code reviews, design discussions. in Learning & Roadmaps →
A detailed step-by-step account of everything that happens when you type an address in a browser and press Enter (DNS, TCP, TLS, HTTP, rendering). in Learning & Roadmaps →
An archive of Turkish computer engineering lecture notes and term explanations. in Learning & Roadmaps →
One puzzle a day each December, with the archive open year round. in Practice & Challenges →
Java implementations of algorithms and data structures. in Practice & Challenges →
A curated problem set with a video walkthrough for each. in Practice & Challenges →
A stepwise framework for approaching an interview algorithm problem — constraints, examples, brute force, optimise, test. in Practice & Challenges →
A Japan-based contest platform whose beginner rounds (ABC) are more approachable for newcomers than Codeforces. in Practice & Challenges →
An online judge grading programming, mathematics and SQL problems automatically, formerly URI Online Judge. in Practice & Challenges →
A single colour-coded table of time and space complexity for data structures and sorting algorithms. in Practice & Challenges →
A piece correcting common misunderstandings of big-O notation. in Practice & Challenges →
A collection of common bit-level tricks — the patterns that turn up in low-level optimisation and interview questions. in Practice & Challenges →
A community contest to solve a problem in the shortest possible code. in Practice & Challenges →
A competitive algorithm platform with regular contests, difficulty-tagged problems and published editorial solutions. in Practice & Challenges →
Front-end (HTML/CSS/JS) challenges with an embedded editor, each round on a new theme. in Practice & Challenges →
An interview problem bank and assessment tool. in Practice & Challenges →
A skills assessment and interview platform that produces a standardised score you can send to several companies. in Practice & Challenges →
The assessment platform companies use for technical screening, with a practice section open to candidates. in Practice & Challenges →
A platform that has you solve programming puzzles with a game theme, showing your code’s result in a game scene. in Practice & Challenges →
A free handbook for competitive programming, from basic algorithms to advanced techniques. in Practice & Challenges →
Teaches cryptography by breaking it, with each level exploiting a real weakness. in Practice & Challenges →
A visualisation tool built for Georgia Tech’s data structures course — narrower than VisuAlgo but aligned exactly to a syllabus. in Practice & Challenges →
A service that emails one coding-interview problem every day. in Practice & Challenges →
SQL and data science interview questions with real queries run and checked in the browser. in Practice & Challenges →
A challenge site that has you build web projects with realistic designs and requirements. in Practice & Challenges →
Small, fast puzzles targeting language fluency rather than algorithm theory — better than LeetCode for settling syntax when you move to a new language. in Practice & Challenges →
Exercise-based practice in 70+ languages, with volunteer mentors commenting on your solution. in Practice & Challenges →
A very broad article archive of algorithms, data structures and interview questions. in Practice & Challenges →
A practice tool where you answer interview questions aloud and get AI feedback. in Practice & Challenges →
Combines contests with hiring assessments — companies run technical screening here. in Practice & Challenges →
Practice and hiring assessments on one platform. in Practice & Challenges →
Structured courses for system-design and algorithm interviews. in Practice & Challenges →
Opens up the reasoning steps rather than handing over the answer, showing how you move from brute force to optimal… in Practice & Challenges →
Gamified interview preparation. Unlike LeetCode’s open problem pool, topics are ordered by dependency, each building on the last. in Practice & Challenges →
Spins up a real Linux or Kubernetes machine in the browser — not a simulation. in Practice & Challenges →
A practice archive focused on JavaScript interview questions: writing polyfills, the event loop, closures. in Practice & Challenges →
The most widely used bank of interview questions, filterable by company tag. in Practice & Challenges →
Tushar Roy’s large collection of coding-interview problems and solutions. in Practice & Challenges →
A roadmap that groups LeetCode problems by topic and pairs each with a solution video. in Practice & Challenges →
Free, peer-to-peer mock technical-interview practice, now part of Exponent. in Practice & Challenges →
Well-explained small programming projects, heavy on maths and algorithms. in Practice & Challenges →
A riddle game where each level is solved with a bit of Python. in Practice & Challenges →
Peter Norvig’s short Python programs and notebooks on puzzles, algorithms and language. in Practice & Challenges →
A spec whose same realistic app (Conduit) is built across different front-end and back-end stacks. in Practice & Challenges →
A long-running online judge with a large archive of classic algorithm problems. in Practice & Challenges →
Stanford’s problem-solving course for technical interviews with open materials — it teaches a way of thinking rather than a question bank. in Practice & Challenges →
A channel presenting data structures and algorithms as an ordered curriculum. in Practice & Challenges →
An ordered, comprehensive, free guide to cracking the tech interview, by the author of the Blind 75 list. in Practice & Challenges →
An archive of data structure and algorithm problems grouped by topic, with C++, Java and Python solutions. in Practice & Challenges →
One of the oldest competitive programming platforms; its problem archive and editorials form a slice of algorithm history. in Practice & Challenges →
The classic arena for timed algorithm competitions (SRM). in Practice & Challenges →
The classic competitive programming tutorials, many from the early 2000s, on subjects that do not age. in Practice & Challenges →
A channel working algorithm problems step by step, best known for its dynamic programming series. in Practice & Challenges →
A classic online judge auto-grading hundreds of contest problems. in Practice & Challenges →
Animates data structures and algorithms step by step. in Practice & Challenges →
Mark Pilgrim’s free Python 3 book for programmers. in Free Books & Long Reads →
A long essay explaining Git from its data model rather than its commands, showing what each command changes inside .git. in Free Books & Long Reads →
Free programming books compiled from the Stack Overflow Documentation archive, each example-heavy and split topic by topic. in Free Books & Long Reads →
An online book that teaches Vim as a grammar — verb plus motion plus text object — rather than as key sequences to memorise. in Free Books & Long Reads →
A book teaching Vimscript for configuring Vim and writing plugins. in Free Books & Long Reads →
The open repository of Andreas Antonopoulos’s book on how Bitcoin works technically. in Free Books & Long Reads →
A free book covering NumPy, pandas, Matplotlib and scikit-learn, published entirely as runnable Jupyter notebooks. in Free Books & Long Reads →
A free, exercise-heavy Python book. Unlike explanation-first books it moves chapter by chapter through exercises. in Free Books & Long Reads →
A book covering GraphQL from both client and server side. in Free Books & Long Reads →
A free book on simulating natural systems in code — forces, particles, flocking, cellular automata — delivering the… in Free Books & Long Reads →