Hacker ApprovedDepartments

The best programming books, according to hackers

115 programming books were recommended on Hacker News between November 2025 and November 2026. We rank them by how many separate people recommend each one, and 8 earn the Hacker Approved badge.

Top picks

The three most recommended programming books with the badge. Each figure is 5 people. RecommendsCriticizes One comment

  1. Crafting Interpreters by Robert Nystrom

    60 recommend, 4 criticize, 94% approval

    Ranked 1 of 115 by recommenders

    Strong introduction to interpreters and compilers

    People recommend it as a clear, practical introduction to interpreters and compilers, building two interpreters. Caveat: it focuses on dynamic runtimes, not compiled ones.

    Check price on Amazon

    We may earn a commission. It never changes the order.

  2. The Pragmatic Programmer by Hunt and Thomas

    28 recommend, 1 criticize, 97% approval

    Ranked 3 of 115 by recommenders

    Inspires better craft and habits

    Recommended as a classic for practical software craft and everyday development habits, though some critics say its principles may be out of date or overkill.

    Check price on Amazon

    We may earn a commission. It never changes the order.

  3. How to Design Programs by Felleisen, Findler, Flatt and Krishnamurthi

    18 recommend, 2 criticize, 90% approval

    Ranked 4 of 115 by recommenders

    Teaches recursion and functional thinking

    Recommended for learning program design, recursion and functional thinking, with praise for its exposition. One critic found its opening cash register example hard to get past.

    Check price on Amazon

    We may earn a commission. It never changes the order.

We may earn a commission. It never changes the order.

All 115 programming books, ranked

Select a column heading to sort. Approval share is recommenders out of everyone who gave an opinion; the tick on each bar marks the 2 to 1 line the badge needs. Months counts the months, out of 13, in which someone recommended it.

Programming books ranked by the number of people who recommend them
Rank
1Crafting Interpretersby Robert Nystrom60494%10—Approved
2Clean Codeby Robert C. Martin318726%9——
3The Pragmatic Programmerby Andy Hunt and Dave Thomas28197%7—Approved
4How to Design Programsby Matthias Felleisen and Robert Bruce Findler and Matthew Flatt and Shriram Krishnamurthi18290%7—Approved
5Mastering Emacsby Mickey Petersen17194%8—Approved
Tied 6Working Effectively with Legacy Codeby Michael C. Feathers16194%8—Approved
Tied 6Open-source Zig book163134%1——
8The Linux Programming Interfaceby Michael Kerrisk150100%5—Approved
9Programming Windowsby Charles Petzold140100%7—Approved
10Logic for Programmersby Hillel Wayne13381%3——
11Usborne 1980s Computer Books12286%226 yrs3 owners—
12The Little Schemerby Daniel P. Friedman and Matthias Felleisen100100%6—Approved
Tied 13Ray Tracing in One Weekendby Peter Shirley and Trevor D. Black and Steve Hollasch90100%6——
Tied 13BASIC Computer Gamesby David H. Ahl90100%550 yrs3 owners—
Tied 13On Lispby Paul Graham9190%4——
Tied 13Modern C++ Designby Andrei Alexandrescu9282%3——
Tied 13Competitive Programmer's Handbookby Antti Laaksonen9190%1——
Tied 18Purely Functional Data Structuresby Chris Okasaki8189%5——
Tied 18Pro Gitby Scott Chacon and Ben Straub8189%5——
Tied 18FreeBSD Device Driversby Joseph Kong8657%2——
Tied 21Practical Common Lispby Peter Seibel70100%6——
Tied 21Hacker's Delightby Henry S. Warren Jr.70100%5——
Tied 21Game Programming Patternsby Robert Nystrom70100%5——
Tied 21Zigbookby zigbook74115%2——
Tied 21WebAssembly from the Ground Upby Joe Clark and Patrick Dubroy70100%2——
Tied 216502 Assembly Language Programmingby Lance A. Leventhal70100%2——
Tied 21NSFW Acronyms for Programmersby Ben Ruckman70100%1——
Tied 21Thinking in Pythonby Bruce Eckel7278%1——
Tied 21High Performance Gitby Ted Nyman7558%1——
Tied 30Programming Perlby Larry Wall and Tom Christiansen and Jon Orwant and Christiansen and WALL60100%6——
Tied 30Land of Lispby Conrad Barski6186%5——
Tied 30Domain Modeling Made Functionalby Scott Wlaschin60100%5——
Tied 30The Nature of Codeby Daniel Shiffman60100%5——
Tied 30Commodore 64 Programmer's Reference Guideby Commodore60100%5——
Tied 30Inside Macintoshby Apple Computer Inc.60100%4——
Tied 30Mazes for Programmersby Jamis Buck60100%3——
Tied 30Graphics Programming Black Bookby Michael Abrash60100%3——
Tied 38What Every Programmer Should Know About Memoryby Ulrich Drepper50100%5——
Tied 38Paradigms of Artificial Intelligence Programmingby Peter Norvig5183%5——
Tied 38Automate the Boring Stuff with Pythonby Al Sweigart5183%4——
Tied 38Rust Atomics and Locksby Mara Bos50100%4——
Tied 38Higher-Order Perlby Mark Jason Dominus50100%4——
Tied 38Practical Object-Oriented Designby Sandi Metz50100%4——
Tied 38Starting Forthby Leo Brodie and Inc Staff Forth50100%4——
Tied 38Build a Reasoning Model (From Scratch)by Sebastian Raschka5183%4——
Tied 38The Ray Tracer Challengeby Jamis Buck50100%4——
Tied 38Learning Perlby Randal L. Schwartz and Tom Phoenix and brian d foy50100%3——
Tied 38Programming Erlangby Joe Armstrong50100%3——
Tied 38Learn Go with Testsby Chris James50100%3——
Tied 38Database Design for Mere Mortalsby Michael J. Hernandez50100%3——
Tied 38Linkers and Loadersby John R. Levine50100%3——
Tied 38Let Over Lambdaby Doug Hoyte50100%3——
Tied 38Ruby Under a Microscopeby Pat Shaughnessy50100%3——
Tied 38Effective C++by Scott Meyers5183%314 yrs3 owners—
Tied 38Machine Code for Beginnersby Usborne50100%2——
Tied 38Real World Haskellby Bryan O'Sullivan and John Goerzen and Don Stewart50100%2——
Tied 38Learning Goby Jon Bodner50100%1——
Tied 38Apple II Reference Manualby Christopher Espinosa50100%1——
Tied 59Learn You a Haskell for Great Good!by Miran Lipovača40100%4——
Tied 59Vibe Codingby Gene Kim and Steve Yegge4736%4——
Tied 59Data-Oriented Programming in Javaby Yehonathan Sharvit40100%4——
Tied 59Writing an Interpreter in Goby Thorsten Ball40100%3——
Tied 59The Art of Unix Programmingby Eric S. Raymond4180%3——
Tied 59Browser Engineeringby Pavel Panchekha and Chris Harrelson40100%3——
Tied 59Building a Debuggerby Sy Brand4180%3——
Tied 59Object-Oriented Programming: An Evolutionary Approachby Brad Cox40100%3——
Tied 59The Art of Computer Programming Volume 1by Donald Knuth40100%3——
Tied 59A Tour of C++by Bjarne Stroustrup40100%2——
Tied 59The Power of Prologby Markus Triska40100%2——
Tied 59Programming the 6502by Rodnay Zaks40100%1——
Tied 71LazyVim for Ambitious Developersby Justin Schroeder30100%5——
Tied 71JavaScript: The Good Partsby Douglas Crockford30100%3——
Tied 71Advanced Programming in the UNIX Environmentby W. Richard Stevens and Stephen A. Rago3175%3——
Tied 71Seven Languages in Seven Weeksby Bruce Tate30100%3——
Tied 71The Practice of Programmingby Brian W. Kernighan30100%3——
Tied 7199 Bottles of OOPby Sandi Metz and Katrina Owen and T. J. Stankus30100%3——
Tied 71The Unix Programming Environmentby Brian W. Kernighan30100%3——
Tied 71Practical TLA+by Hillel Wayne30100%3——
Tied 71Building High Integrity Applications with SPARKby John W. McCormick and Peter C. Chapin30100%3——
Tied 71The Little Proverby Daniel P. Friedman and Carl Eastlund30100%3——
Tied 71Learn You Some Erlangby Fred Hebert30100%3——
Tied 71Undocumented DOSby Andrew Schulman30100%3——
Tied 71The Rust Programming Languageby Steve Klabnik and Carol Nichols3175%2——
Tied 71Perl Best Practicesby Damian Conway30100%2——
Tied 71The Rust Performance Bookby Nicholas Cameron et al.30100%2——
Tied 71Writing a Compiler in Goby Thorsten Ball30100%2——
Tied 71Effective Modern C++by Scott Meyers3175%2——
Tied 71Ruby is for Funby the commenter30100%2——
Tied 71Programming Pearlsby Jon Bentley30100%2——
Tied 71The Programmer's Brainby Felienne Hermans30100%2——
Tied 71Test Driven Developmentby Kent Beck3175%2——
Tied 71Elements of Clojureby Zachary Tellman30100%2——
Tied 71Eloquent JavaScriptby Marijn Haverbeke30100%1——
Tied 71Efficient C++ Programming for Modern C++ CPUs30100%1——
Tied 71The Concise TypeScript Bookby Stefan Baumgartner3260%1——
Tied 71Anatomy of Lispby Allen, John3175%1——
Tied 71Algorithms and Data Structures in TypeScript3443%1——
Tied 71The Little Book of C3260%1——
Tied 71Programming Collective Intelligenceby Toby Segaran30100%1——
Tied 100C Interfaces and Implementationsby David R. Hanson20100%4——
Tied 100Common Lisp Cookbook20100%3——
Tied 100Data-Oriented Designby Mr Richard Fabian20100%3——
Tied 100Multiplayer Game Programming: Architecting Networked Gamesby Josh Glazer and Sanjay Madhav20100%2——
Tied 100Too Many Listsby Alexis Beingessner20100%2——
Tied 100Programming Perlby Masha Hamilton20100%2——
Tied 100Java Concurrency in Practiceby Goetz et al.20100%2——
Tied 100The C Programming Language, 2nd editionby Kernighan and Ritchie20100%2——
Tied 100Expert C Programming: Deep C Secretsby Peter van der Linden20100%2——
Tied 100Commodore 64 User's Guideby Commodore20100%2——
Tied 100UNIX Network Programmingby W. Richard Stevens and Bill Fenner and Andrew M. Rudoff and Richard W. Stevens20100%2——
Tied 100Programming PHPby Rasmus Lerdorf and Kevin Tatroe and Peter MacIntyre20100%2——
Tied 100The Elements of Programming Styleby Brian W. Kernighan and P. J. Plauger20100%2——
Tied 100Threaded Interpretive Languagesby R. G. Loeliger20100%2——
Tied 100Essential COMby Don Box2167%2——
Tied 100Growing Object-Oriented Software, Guidedby Steve Freeman20100%2——

How we rank

Rank is the number of separate people who recommend a product in a Hacker News comment over the past year. Someone who praises the same programming book in five threads counts once.

The badge goes to programming books that at least 10 people recommend, with recommenders outnumbering critics at least 2 to 1, recommended in at least 4 of the 13 months.

Rankings are never for sale. We may earn a commission when you buy through our links. It never changes the order.