As an old-timer, I worry that it may have been forgotten that all the major systems vendors used to have extensive shelves of high-quality technical manuals for their software, written by their in-house teams of professional technical writers. And many of them were really good, especially the ones on programming languages. The Univac APL 1100 manual might be the best book on APL ever, for example, and the CDC Fortran manual was a superb reference. I wonder if any of these old gems are available on-line.
Some of my favorites that have stayed at least pretty relevant. Disclosure: not an old timer.
- UNIX and Linux System Administration Handbook. Get the most recently volume. It's a tomb (~1200 for the most recent).
- If you do any SQL, SQY Performance Explained is an 80/20 read for DB indexes, query optimization, and troubleshooting
- A Philosophy of Software Design (more recent). Just a great book on good design considerations to keep in mind.
- Mastering Regular Expressions. The first half of the book will make you confident. The second half will show you how they're implemented. Regular expressions aren't something to be afraid of!
- Designing Data Intensive Applications (more recent). Great book about data infra design decisions. Maybe not the scope you're looking for though.
- Design Patterns (Gang of Four). Absolute classic. Hard to read all the way through though, more of a reference read. You'll recognize a lot of the patterns. You'll find some great to see a formal definition of, and you'll see some you never want to use.
- Clean Architecture - Uncle Bob's best book IMO. I really don't like Clean Code, but this book talks a lot about interfaces and the right level of separation in your systems.
- K&R, as you mentioned, is of course a classic
- The AWK Programming Language is a nice quick read with similar quality and structure to K&R.
- Beej's Guide to Network Programming. The best overview of network programming, including the C API. Plus this book is genuinely funny. Beej has a ton of great stuff, all on their website for free, or in print.
- The Rust Programming Language is very well written too. Also online for free or in print.
Been doing this software thing for 35 years so I guess that makes me an old timer.
Technical books, especially for practitioners, that stay relevant over a long period of time are rather rare. I wish I could say that I've had time to study TAoCP or SICP, but I haven't.
Some of what I did find useful back in the day were: Advanced Programming in the Unix Environment by Stevens, Stan Lippman's C++ book, Code Complete by Steve McConnell, the GoF Design Patterns book, Working Effectively With Legacy Code by Michael Feathers, and Introduction to Artificial Intelligence by Charniak and McDermott.
Whether, and to what extent, any of them are useful now is hard to say. Depends what you want to learn and what you're doing. The Charniak book, for example, is about classic "good old fashioned" AI, not the currently dominant connectionist approach. But it's LISP, and LISP is always relevant.
I'd also add The Systems Bible by John Gall as a book that influenced me. Its not a technology book though.
I’m not an old timer and I do read tech books on a weekly basis. It’s the only way for me to stay sharp in the industry. I also read documentation ofc. As for which books, the good ones.
In 1968 all we had was McCracken's short book on FORTRAN and a large number of utterly inpenetrable IBM manuals. When IBM finally came out with "FORTRAN Programmers Guide", it was revolutionary. Asking other programmers was very useful.
None of this is useful for you other than discussing things with fellow programmers.
reply