The Timeless Way of Building by Christopher Alexander (1979)
This book introduces the concept of a pattern language. The book is about constructing buildings and communities, not designing software. Some software movements have nonetheless applied its concepts to software development. The Timeless Way of Building
A Pattern Language by Christopher Alexander, et al (1977) A Pattern Language fleshes out the concepts introduced in The Timeless Way of Building by providing a complete set of patterns from which a community could be created. The first few patterns may seem hopelessly utopian to some readers, but most of the remaining patterns are practical and widely applicable. Like The Timeless Way of Building, this book is specific to the creation of physical buildings and communities, rather than to software. Its value lies in providing concrete examples of patterns and a complete pattern language. It is up to the reader to make the analogy to software systems and their development. A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure Series)
The Visual Display of Quantitative Information by Edward R. Tufte (2001)
Though this book is mostly concerned with display of data, the concepts it covers are applicable to documentation of hardware and software designs. The Visual Display of Quantitative Information
High-Speed Digital Design: A Handbook of Black Magic by Howard Johnson (1993)
What every digital designer should know but never learned in school. Howard Johnson is a popular authority on high-speed digital design issues and an excellent communicator. In this book he satisfies the engineer's need for both theory and intuitive tools. High-Speed Digital Design: A Handbook of Black Magic
The C++ Programming Language by Bjarne Stroustrup (various editions)
The authoritative reference on C++. This book may be a bit terse for some beginners, though more experienced programmers may appreciate this same quality. Later editions of the book include a detailed chapter on the C++ Standard Library. The C++ Programming Language (Special 3rd Edition)
The Pragmatic Programmer by Andrew Hunt and David Thomas (2006)
As its title suggests, this book provides practical tips for creating quality software. The conscientious experienced programmer will already believe much of what this book advises, but the book can provide the stimulation necessary to act on what the programmer already believes. The book is an entertaining read, no matter how experienced the reader. The Pragmatic Programmer: From Journeyman to Master
Product links are provided In association with Amazon.