References

A short, curated list: enough to learn from, not a catalogue of everything. Items marked free can be read or used without paying. Books that cost money are listed by title and author only, so look for them at your library first. For real projects to read and contribute to, see Study Projects; for the programs of this roadmap, see Demo Examples.

Go Documentation and Playgrounds

ResourceUse it for
A Tour of Go freeThe official interactive introduction; enough Go to read every demo here.
Go Playground freeRun a Go program in the browser and share it by link. Good for the small examples; use a local go run for the larger demos.
The Go Specification freeThe exact rules for slices, maps, generics, shifts and integer overflow. Short enough to read once through.
Effective Go freeIdioms for naming, error handling, interfaces and concurrency.
pkg.go.dev freeDocumentation and source of every standard-library and public package: container/heap, slices, sort, math/rand/v2, sync, sync/atomic, testing.
The Go Memory Model freeWhat one goroutine is guaranteed to see of another's writes; read it before writing lock-free code.
The Go Blog freeOfficial articles on generics, profiling, slices, maps and concurrency patterns.
Profiling Go Programs and Diagnostics freeMeasure before optimizing: CPU and memory profiles, traces, and the race detector.
Go fuzzing tutorial freeTurn the "compare with an oracle on random input" idea into a fuzz test that the toolchain drives.

Visualizers and Cheat Sheets

ResourceUse it for
VisuAlgo freeAnimated data structures and algorithms with step-by-step execution and a self-test mode. Watch a structure before you code it.
Data Structure Visualizations (USFCA) freeInteractive AVL and B-trees, heaps, hash tables, tries and graph algorithms. Type your own inputs.
Big-O Cheat Sheet freeA table of common complexities to check your own analysis against; the Complexity Analysis lesson explains where the numbers come from.

Free Books and Lecture Notes

ResourceUse it for
Algorithms by Jeff Erickson freeA complete university text with clear proofs; strong on recursion, dynamic programming and graphs.
Open Data Structures by Pat Morin freeArrays, linked lists, hash tables, skip lists, trees and heaps with implementations and analysis.
Competitive Programmer's Handbook by Antti Laaksonen freeA compact tour of sorting, DP, graphs, bit tricks and range queries (Fenwick and segment trees) aimed at contests.
Algorithms, 4th edition: book site (Sedgewick and Wayne) freeFree code, exercises, lecture slides and data files that go with the textbook.
MIT 6.006 Introduction to Algorithms freeLecture videos, notes and problem sets from a standard first course.
cp-algorithms freeAn encyclopedia of algorithms with proofs and complexity: suffix arrays, Z-function, Aho-Corasick, segment trees and more.

Books Worth Buying or Borrowing

  • Introduction to Algorithms (CLRS) by Cormen, Leiserson, Rivest and Stein: the standard reference; rigorous and complete.
  • The Algorithm Design Manual by Steven Skiena: practical, with a catalogue of problems and how to recognize them.
  • Algorithm Design by Kleinberg and Tardos: excellent on greedy algorithms, dynamic programming and network flow.
  • Algorithms by Sedgewick and Wayne: clear code and pictures for sorting, searching, graphs and strings.
  • The Go Programming Language by Donovan and Kernighan (gopl.io): the best book for Go itself, including the concurrency chapters behind the last lesson.
  • Designing Data-Intensive Applications by Martin Kleppmann: how caches, indexes, logs, partitioning and replication work in real systems; the natural sequel to Production Structures.
  • Programming Pearls by Jon Bentley: short essays on choosing the right structure and checking a solution.

Practice Sites

SiteUse it for
Exercism: Go track freeSmall exercises in Go with feedback from volunteer mentors. Best for learning idiomatic Go.
CSES Problem Set freeAbout 300 classic problems in a sensible order: sorting, DP, graphs, trees, strings. Accepts Go.
USACO Guide freeA structured path from beginner to advanced, with problems for each topic.
LeetCodeInterview-style problems; a free tier is available. Useful once the lessons are done.
Codeforces and AtCoder freeTimed contests with editorials; the strongest practice for speed and problem recognition.
Advent of Code freePuzzles every December that reward graphs, parsing, DP and careful data structures.
Project Euler freeMath-flavored problems where a brute-force solution is too slow: practice for complexity analysis.

The Papers Behind the Lessons

Original papers are shorter and easier than their reputation, and they give the reasoning that textbooks skip. The three with links are free to read online; for the others, search the title.

LessonPaper
Advanced TreesAdelson-Velsky and Landis, "An algorithm for the organization of information" (1962), the AVL tree. Aragon and Seidel, "Randomized Search Trees" (1989/1996), the treap.
String AlgorithmsKnuth, Morris and Pratt, "Fast pattern matching in strings" (1977). Aho and Corasick, "Efficient string matching: an aid to bibliographic search" (1975).
Bloom FilterBloom, "Space/time trade-offs in hash coding with allowable errors" (1970).
Count-Min SketchCormode and Muthukrishnan, "An improved data stream summary: the count-min sketch and its applications" (2005).
HyperLogLogFlajolet, Fusy, Gandouet and Meunier, "HyperLogLog: the analysis of a near-optimal cardinality estimation algorithm" (2007).
Consistent HashingKarger et al., "Consistent hashing and random trees" (1997). Lamping and Veach, "A Fast, Minimal Memory, Consistent Hash Algorithm" (2014), the jump hash.
LRU Cache and AdmissionEinziger, Friedman and Manes, "TinyLFU: A Highly Efficient Cache Admission Policy" (2015).

How to Use These References

  • One primary text. Pick one book or lecture series from the free list and follow it alongside the roadmap. Reading three books at once means finishing none.
  • See, then write. Watch the structure in a visualizer, write it from memory in the Playground, then compare with the demo and finally with a library from Study Projects.
  • Practice on a schedule. A few problems each week on CSES or Exercism teach more than a weekend of marathon solving.
  • Check claims. Any figure in this roadmap (a hit ratio, an error rate, a speedup) comes from a program you can run. Do the same for what you read elsewhere.