Programmer's Library
Every working programmer or software developer ought to have a large personal library of books they consider essential–these books are mine. My list started off being very language heavy (mostly Perl), but as I’ve gotten older (and gained more experience) I’ve gravitated towards broader topics in software development.
Programming
Languages
ASP.NET
- Entity Framework Core in Action, Second Edition by Jon P Smith
- Pro ASP.NET Core 7, Tenth Edition by Adam Freeman
C/C++
- C++ Programming Language, The by Bjarne Stroustrup
Clojure
- Programming Clojure by Alex Miller with Stuart Halloway and Aaron Bedra
Perl
- Advanced Perl Programming by Simon Cozens
- Extending and Embedding Perl by Tim Jenness and Simon Cozens
- Higher Order Perl by Mark Jason Dominus
- Object Oriented Perl by Damian Conway
- Mastering Perl by Brian D. Foy
- Perl Best Practices by Damian Conway
- Perl Template Toolkit by Darren Chamberlain, David Cross, Andy Wardley
- Perl Testing: A Developer's Notebook by Ian Langworth & chromatic
- Programming Perl by Larry Wall, Tom Christiansen, Randal L. Schwartz
Regular Expressions
- Mastering Regular Expressions by Jeffrey E. F. Friedl
Ruby
- 99 Bottles of OOP by Sandi Metz and Katrina Owen
- Confident Ruby by Avdi Grimm
- Objects on Rails by Avdi Grimm
- Practical Object-Oriented Design in Ruby: An Agile Primer by Sandi Metz
Development
- Black Art of 3D Game Programming by Andre LaMothe (Game Design)
- Code Complete by Steve McConnell (Construction)
- Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Construction)
- Dynamic HTML by Danny Goodman (Reference)
- Functional Programming for the Object-Oriented Programmer by Brian Marick
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce (OO)
- Mastering the Requirements Process by Suzanne and James Robertson
- Object-Oriented Software Construction by Bertrand Meyer (OO)
- Pragmatic Programmer, The by Andrew Hunt, David Thomas (Craftsmanship)
- Programming Pearls by Jon Bentley (Wisdom)
- Rapid Development by Steve McConnell (Design/Planning)
- Refactoring by Martin Fowler (Construction)
- Software Estimation by Steve McConnell (Planning)
- Software Requirements (2nd Edition) by Karl Wiegers
- UNIX Network Programming: Volume 1 by W. Richard Stevens (Networking)
- Working Effectively with Legacy Code by Michael Feathers
Foundation/Theory
- Applied Cryptography by Bruce Schneier
- Art of Computer Programming, Volume 1 by Donald E. Knuth
- Art of Computer Programming, Volume 2 by Donald E. Knuth
- Art of Computer Programming, Volume 3 by Donald E. Knuth
- Concrete Mathematics by Ronald L. Graham, Donald E. Knuth, Oren Patashnik (Mathematics)
- Database In Depth by C.J. Date (Relational Theory)
Hardware
- Art of Electronics, The by Paul Horowitz, Winfield Hill (Electronics)
System Administration
- Essential System Administration by Aeleen Frisch (Administration)
- Practical Unix & Internet Security by Simson Garfinkel & Gene Spafford (Security)
Graphic Design/Usability
- Bulletproof Web Design by Dan Cederholm (CSS/XHTML)
- CSS Mastery: Advanced Web Standards Solutions by Andy Budd, Simon Collison, and Cameron Moll (CSS)
- Don't Make Me Think! by Steve Krug (Web Usability)
- Information Architecture for the World Wide Web by Peter Morville & Louis Rosenfeld (Information Architecture)
- Non-Designer's Design Book, The by Robin Williams (Graphic Design)
Others…
- A New Kind of Science by Stephen Wolfram (Science)
- Conceptual Blockbusting by James L. Adams (Problem Solving)
- Elements of Style, The by William Strunk Jr. and E.B. White (English Writing)
- Handbook of English by Harry Shaw (Grammar)