Software developers have to read a lot of books. Here are several of the books that have helped me in my journey towards learning how to develop software. Rather than just enumerating the book titles, I’ve categorized them into the concepts or technical skills that each book helped me with. And, yes, I do realize that there are some real classics missing from this list.
LINUX & UNIX Shell Programming, by David Tansley
I read the first edition of Automating UNIX and Linux Administration, by Kirk Bauer, but the link here is to the 2nd edition.
All the O’Reilly books written by Randal L. Schwartz.
Python for Kids
Learning Python, by Mark Lutz is probably the most well written O’reilly book I’ve encountered.
Python Pocket Reference, by Mark Lutz
Mathematics and Logic
Logic for Dummies, Mark Zegarelli
An Introduction to Mathematics, by Alfred North Whitehead
Here’s Looking at Euclid, by Alex Bellos
Discrete Mathematics and Its Applications, 7th Edition, by Kenneth Rosen
Developer Philosophy and Wisdom
Selected Papers on Computer Science, by Donald E. Knuth
The Art of UNIX Programming, by Eric S. Raymond
Coders At Work, by Peter Seibel,
The C Programming Language, by Brian Kernighan and Dennis Ritchie
The 1953 Univac Programming Manual. AFAIK, this document had no antecedent. They rewrote it in 1959 and hired an illustrator. The diagrams in the 1959 Univac Programming Manual really helped me later when rereading the K & R chapter about pointers in C.
Hardware and Data Processing
Again, the two Univac documents mentioned above,
Code: The Hidden Language of Computer Hardware and Software, by Charles Petzold