Skip to main content

My personal programmer's library

note

This is a work in progress.

This is my personal library of programming books. I'm fortunate enough to have the means to acquire hard copies right now, so I'm methodically working through that process. There are, of course, other ways to ahem acquire them for those that are low on funds.

The titles in bold are volumes I feel encompass the "canon" of a core curriculum.

Computer science

Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman

A Programmer's Guide to Computer Science by Dr. William M Springer II

A Programmer's Guide to Computer Science Vol. 2 by Dr. William M Springer II

Computer Science: A Very Short Introduction by Subrata Dasgupta

Algorithms by Panos Louridas

Best practices

The Pragmatic Programmer by Andrew Hunt

A Friendly Introduction to Software Testing by Bill Laboon

Refactoring by Martin Fowler

Code Craft by Pete Goodliffe

Working Effectively with Legacy Code by Michael Feathers

Head First Agile by Andrew Stellman

Debug It!: Find, Repair, and Prevent Bugs in Your Code by Paul Butcher

Humane tech

Practical Web Inclusion and Accessibility by Ashley Firth

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability by Steve Krug

Accessibility Handbook: Making 508 Compliant Websites by Katie Cunningham

Engineering as Practice & Career

The Effective Engineer by Edmond Lau, Bret Taylor

The Nature of Software Development by Ron Jeffries

Programming Beyond Practices: Be More Than Just a Code Monkey by Gregory T Brown

Becoming a Better Programmer: A Handbook for People Who Care About Code by Pete Goodliffe

Being Geek: The Software Developer's Career Handbook by Michael Lopp

Software testing

Simplify Testing with React Testing Library by Scottie Crump

The Way of the Web Tester by Jonathan Rasmusson

Fifty Quick Ideas To Improve Your Tests by Gojko Adzic

End-to-End Web Testing with Cypress by Waweru Mwaura

Languages

JavaScript

Eloquent JavaScript by Marijn Haverbeke

JavaScript: The Definitive Guide by David Flanagan

Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript by Eric Elliott

Golang

The Go Programming Language by Alan Donovan

Introducing Go: Build Reliable, Scalable Programs by Caleb Doxsey

Clojure

Miscellany

High Performance Browser Networking by Ilya Grigorik

Once Upon an Algorithm: How Stories Explain Computing by Martin Erwig

Best Practices of Spell Design by Jeremy Kubica

Computational Fairy Tales by Jeremy Kubica

Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook by Workman Publishing

How the Internet Really Works: An Illustrated Guide to Protocols, Privacy, Censorship, and Governance by Article 19

Non-technical

History

Code: The Hidden Language of Computer Hardware and Software by Charles Petzold

Computing: A Concise History by Paul E. Ceruzzi

Endless Loop: The History of the BASIC Programming Language by Mark Jones Lorenzo

The Computer: A Very Short Introduction by Darrel Ince

Not directly tech, but helpful

Atomic Habits by James Clear

HBR's 10 Must Reads on Emotional Intelligence by Harvard Business Review

Miscellany

How to Make Sense of Any Mess: Information Architecture for Everybody by Abby Covert

A Civic Technologist's Practice Guide by Cyd Harrell

Reflections & Essays

Syntax & Sage: Reflections on Software and Nature

Life in Code by Ellen Ullman

Joel on Software by Joel Spolsky

More Joel on Software by Joel Spolsky

The Best Software Writing I by Joel Solsky, ed.

Geek Sublime by Vikram Chandra

The Mythical Man-Month: Essays on Software Engineering by Frederick Brooks Jr.

Older, outdated works

The Whole Internet User's Guide & Catalog by Ed Krol