If you’ve ever wanted to know what the letters FWB, CE, or STF (as in FWB, Inc, CE Software, STF Technologies) stand for, or what "project" was code named Road Runner, or perhaps what year the Mac Classic was introduced, then this is the book for you. It is pretty light weight, but definitely an enjoyable read.
Quite simply, this is the best programming book I've read. Reading and following the advice in this book has noticeably improved my coding practices and lead to generating code that I have much more confidence in. Although the title says "C Programs", the book consists of general advice that applies regardless of programming language - in fact much of it is simply motivating you to think about writing bug free programs and to use the techniques that are available.
The book encourages you to believe that it is possible to write bug free (or mostly bug free) code, and to aim for that goal rather than accepting that programs will have bugs and hoping the beta testers/QA team will find them. It invites you to look at every bug and ask:
and so forth.
While I personally got a lot more out of Writing Solid Code, Code Complete is considered by many to be the definitive reference for writing good code. It is highly likely that you will win back the time and money invested in reading this quite long book many times over in the improved code that results.
Algorithms is the book I turn to whenever I want to remember how to efficiently do something. For the most part, brute force, simple solutions are the best, since smaller code is generally better than faster code. But in some few time-critical locations in your program you need to quickly sort, search, or process a set of data. With this book as a reference, you can quickly find and implement the most effective algorithm for the job.
Personally, I consider C++ to be one of the greatest causes of bugs ever created. On every page of this book, Scott explains another way that C++ can easily introduce a bug that will take you hours or weeks to detect and correct (assuming you ever get past the "it is crashing randomly" stage!). Still, forewarned is forearmed, and having read Scott's book you stand a much better chance of knowing what to avoid and recognizing the many dangers that lurk in this most hideous of languages.
Brooks was in charge of the OS/360 project at IBM in the 1960s, which pioneered the "human wave" approach to programming: if a problem couldn't be fixed, just throw more programmers at it. Of course this was a disaster, and the project went over time and over budget, and initial versions of the OS were resource-hungry, slow, and full of bugs like you wouldn't believe.
This book is full of lessons learned from that and other large programming projects. The Anniversary Edition, published in 1995, looks back at developments since the original 1975 edition, including an evaluation of techniques which were being promoted from the 1980s (including object orientation), that were claimed to offer new gains in programmer productivity, code quality etc. The verdict was (at least as of the time of publication) that none of them actually worked, or at least we were still waiting for the benefits to appear.
Internetworking with TCP/IP is a series of three volumes:
which covers many aspects of low level programming for TCP/IP. They are not as useful for high level programming, but provide solid understandings of the lower levels.
This is a standard text for learning about operating systems. I enjoyed reading this text while I was at uni.
Although this book is no longer available or particularly useful, it was endlessly useful to me growing up with a variety of Z80 based computers including the TRS-80 and Amstrad 6128. I cut my assembly language programming teeth with this book, and I'm happy to still own a copy. Thanks Rodnay!
This is a fun book for anyone interested in Mathematics. It's not really useful as a reference, it occupies that grey area between fiction and non-fiction - it's not-fiction, but it's purpose is to entertain as much as to inform.
I have not yet filled this section out, but these are my favorite authors.