Software Development Books and Media:

Software Projects and People:

The Mythical Man-Month: Essays on Software Engineering - Fredrick P. Brooks - A classic on software project management and as relavent today as it was in 1982. If only those managers would listen and learn !

The Psychology of Computer Programming - Gerald Weinberg - A one-of-a-kind, timeless, insight into the mind of the programmer, a study of computer programming as an art and as a discipline for individuals and groups. His style, wit and intellectual breadth is rare in technical writing and it's a pleasure to read any of his books.

Rethinking Systems Analysis and Design - Gerald Weinberg - This book has two major themes: Systems analysts must be well informed in fields other then software and hardware, most problems are really 'people problems' and their solutions require a multi-disciplinary approach.

Bringing Design to Software - Terry Winograd - A mix of software designers, computer scientists, graphic artists, architects, scientists, and consultants, with their conceptions and methodologies for software design, tied together by upfront, user-centered design.

Peopleware: Productive Projects and Teams - Tom DeMarco, Timothy Lister - A bible at Microsoft, the book says: give smart people physical space, intellectual responsibility and strategic direction. Easy to read and filled with humor, wisdom, and hard numbers on what works in software development teams.

Constantine on Peopleware - Larry Constantine - 30 Constantine columns cover: group development, teams and mavericks, work organization, tools and methods, process improvements, software usability, complexity & scope creep, and future software. He introduced many new things, like the importance of usability and extreme programming, in a free-wheeling writing style, with a bit of an anti Microsoft flavor.

 

Programming:

Code Complete - Steve McConnell - Steve is one of the three most influential people in the software industry along with Bill Gates and Linus Torvalds. An easy to read, but professional approach, with a huge bibliography including nearly 50 years of the best works in the field. The book describes the best practices for the real, practical stuff that programmers spend most of their time doing irrespective of language, and based on empirical research (!). Every serious developer needs to read this book. 

Concepts of Programming Languages - Robert W. Sebesta - The background, history, design issues, and implementation of many languages, with evaluation of features between the popular languages. From Zuse's Plankalkul (the first programming language) to C++. Perhaps this isn't the best book on the subject, but one should have a look at the breadth of different languages and types available.

 

Design Patterns:

Notes on Synthesis and Form * - Christopher Alexander - How form emerges from functional constraints in the context of evolving systems. The foundation for Alexander's work on design patterns. This is the must read book before spending time on his other works. The Timeless Way of Building * - Christopher Alexander - This book had a tremendous impact on Software Development when it came out. Human beings, when letting themselves be free and at peace, are able to identify at the most profound levels with stable systems in nature., A Pattern Language - Christopher Alexander - This book will overwhelm the uninitiated reader with its sheer volume of information and organization,

Design Patterns * - Erich Gamma et. al. - A book of design patterns that describe simple and elegant solutions to specific problems in object-oriented software design. Introduced Alexander's pattern language concepts to the software world.

Patterns of Software: Tales from the Software Community - Richard P. Gabriel - The first part of the book is about software patterns, with an introduction by Christopher Alexander. Then we are treated to a potpourri of subjects like: software development, computer languages, object oriented programming, running a software company, and the author's own personal history. I find the author iconoclastic, but a good writer, and enjoyed his experiences in the computer industry and computer science.

 

Database:

Building the Data Warehouse - W.H. Inmon - The standard for data warehouse theory, for the why and the what to do.

The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling * - Ralph Kimball - How to actually design and build a repository that will deliver real value to real people, with examples and case studies.

I think both are a must read for Business Intelligence professionals.

A Guide to SQL - Phillip Pratt - A concise guide and reference to basic SQL. There may be better, but I found this on the bargain shelves at Micro Center, so it was cheap, readable and useful.

 

Guide to Dave's Book Recommendations...