Effective Java / Joshua Bloch, Addison-Wesley, 2008
“I sure wish I had this book ten years ago. Some might think that I don’t need any Java books, but I need this one.” — James Gosling, inventor of Java.
“This is a truly excellent book done by the guy who designed several of the better recent Java platform API’s (including the Collections API).” — James Clark, of XML fame.
Advanced programming in the Unix environment / W. Richard Stevens, Stephen A. Rago, Addison-Wesley, 2005
If you are doing systems programming in C on Unix, this book is indispensable. It is slightly dated, and does not cover the latest improvements in Linux.
Holub on patterns : learning design patterns by looking at code / Allen Holub. Apress, 2004
An opinionated look at design patterns. If you are using a language not known for rapid development then you want to choose the right patterns in advance so you won’t be refactoring too much. This book discusses which patterns are most useful, with examples in Java. Not recently written, but worth reading.
Programming interviews exposed : secrets to landing your next job / John Mongan, Noah Suojanen, Eric Giguère. Wiley Pub., 2007
If you work in technology, whether programming or similar, you probably need to look for new work now and then. This book is the best I have seen for advice on how to interview, negotiate pay, and prepare your resume. Useful to hiring managers too.
There is another way to approach this book. More than half of the book is programming algorithms that you would learn in undergrad CS, and you can read it to refresh your knowledge.
Linux firewalls : attack detection and response with iptables, psad, and fwsnort / by Michael Rash, No Starch Press, 2007
Here is a good introduction to iptables and related tools, with script examples. Make good use of this book, and there is a good chance you and your company will never get hacked.
The new school of information security / Adam Shostack, Addison-Wesley, 2008, hard cover
The economics of security. This is not a large book, but it is very readable and full of insight, suggesting a new approach to security. One of the best books I have read this year.
Linux debugging and performance tuning : tips and techniques / Steve Best, Prentice Hall, 2006
This book is for programmers developing Linux applications, particularly if you have multiple processes or threads. It has been useful in my current work. In the open source world there is a profusion of tools available, to the point that it is hard to know which ones to use. This book reduces your search to the top runners.
Designing Web navigation / James Kalbach. O’Reilly, 2007.
A book about design for web sites. Finishing with a section on navigation for web applications. Years ago, before the web, we would have called this GUI design. We have come a long way!
Programming collective intelligence : building smart Web 2.0 applications / Toby Segaran, O’Reilly, c2007.
Most programmers will find this book fascinating. What algorithm does Amazon use to predict what books are likely to interest you? Netflix with DVD’s? Google with search results? Example algorithms are in Python. With a foreword from Tim O’Reilly and a recommendation from Dan Russell, Google’s ‘Uber Tech Lead’.
Thinking inside the box : the 12 timeless rules for managing a successful business / Kirk Cheyfitz. Free Press, 2003
This timeless book should be read by everyone wanting to run a business profitably. Or choose a business to invest in, or work for. It is quite readable, and the 12 chapters are independent so you can put it down at the end of a chapter without losing context.