/programming_books

A curated list of *genuinely good* programming books

Whichever books you decide to read, please make sure to get the most recent editions!

It's very important, as some of these books would otherwise be outdated.

Also please note that these are just books I know are good, I'm not saying all other books are bad!

Linux:

  • The Linux Bible, Christopher Negus
  • How Linux Works, Brian Ward
  • Unix and Linux System Administration Handbook, Evi Nemeth et al.
  • Advanced Programming in the UNIX Environment, W. Richard Stevens

C:

  • K&R The C Programming Language, Brian Kernighan and Dennis Ritchie
  • C Programming: A Modern Approach, K. N. King
  • Modern C, Jens Gustedt
  • Expert C Programming: Deep C Secrets, Peter van der Linden
  • C: A Reference Manual, Guy L. Steele Jr.

Assembly:

  • Programming from the Ground Up, Jonathan Bartlett
  • Assembly Language Programming with Ubuntu, Ed Jorgensen
  • Hacking: The Art of Exploitation, Jon Erickson
  • Reversing: Secrets of Reverse Engineering, Eldad Eilam

Algorithms & Data Structures:

  • Introduction to Algorithms, Thomas H. Cormen et al.
  • Algorithms in C, Parts 1-4, Robert Sedgewick
  • Hacker’s Delight, Henry S. Warren
  • Programming Pearls, Jon Bentley
  • The Art of Computer Programming Vols. 1-4a, Donald Knuth (this goes without saying but for completeness' sake I added it)

Compilers:

  • Compilers: Principles, Techniques, and Tools, Alfred Aho et al.

Networking:

  • TCP/IP Illustrated, Volume 1: The Protocols, W. Richard Stevens
  • Unix Network Programming, Volume 1: The Sockets Networking API, W. Richard Stevens

Operating Systems:

  • Operating System Concepts, Abraham Silberschatz et al.
  • Modern Operating Systems, Andrew S. Tanenbaum
  • Operating Systems: Three Easy Pieces, Remzi Arpaci-Dusseau, Andrea Arpaci-Dusseau

Misc:

  • Hackers: Heroes of the Computer Revolution, Steven Levy
  • The Practice of Programming, Brian W. Kernighan, Rob Pike
  • Data Oriented Design, Richard Fabian