I'd like to hear thoughts on what books, in your opinion, are true
I tried to summarize the suggestions, but it turns out that while you
specifically asked for:
Note that I'm specifically looking for books on making software, on
Software Engineering as a craft as opposed for classic books on
computer science (e.g. Knuth) which is a completely different category
in my mind.
....there's a lot of more tehcnical books suggested, including Knuth.
Here are my summary, if somebody will take on the job of separating
the software engineering ones from the technical ones, be my guest.
(I added the popularity count when a book was suggested by more than
one person, or supported in following posts)
---8<---[snip]---8<---
Marshall Spight:
I can't vouch for it myself, but I hear a lot of people mention
"Code Complete" by Steve McConnell.
+6
Sergio Navega (alternative
Maguire, Steve (1993) Writing Solid Code. Microsoft Press.
+2
Socks (puppet_sock):
The "effective C++" [by scott myers] books are excellent also, and available
as a package for cheap on CD.
Another book I quite enjoyed was: _Death March_ by Yourdon.
xpyttl:
Steve's "Debugging the Development process" ain't too shabby, either, and
it's a lot shorter.
DeMarco has quite a number of good books on the topic, but his "The
Deadline" is by far the most entertaining, most fun, and most on-target book
I've read on the subject of what makes a project tick.
Rob Warnock:
My favorite Tom DeMarco book is "Controlling Software
Projects: Management, Measurement, and Estimatation".
The first chapter starts out with the classic reminder:
"You can't control what you can't measure."
stephen fuld:
I would suggest Programming Pearls by Jon Bentley. It is one of those books
that is actually fun to read as it is so packed with insights that you
frequently find yourself having that Aha! experience.
+1
JXStern:
The only book that *concise* I can think of is Kernigan and Ritchie,
"The C Programming Language", but maybe it's too techie for your
category.
+2
Kernighan and Plauger, "Elements of Programming Style", never quite did
it for me, but others might name it.
+1
Booch's old "Object Oriented Design" had some status for a while.
+1
I like Gerald Weinberg's stuff, esp the "Quality Software Management"
series, but it's not as tight as Brooks.
Shailesh Humbad:
The textbook at my Univ of Michigan software engineering class was,
"Software Engineering: A Practitioner's Approach", by Roger
S. Pressman
Finally, there's a classic book in urban design called "A Pattern
Language : Towns, Buildings, Construction" by Christopher
W. Alexander.
Donald F. McLean:
Design Patterns - Gamma et al.
+1
Refactoring - Fowler
How to Write a Useable User Manual - Weiss
Ron Ruble:
"Leadership And Self-Deception", by the Arbinger Institute.
Dave Townsend:
Take a look at Glenford Myers, the Art of software Testing....
Gavin Scott:
"Software Pioneers", a book that presents 16 of the classic papers by
pioneers in the software field. The book grew out of a conference
Alan Gauld:
- MMM by Brooks - undoubtedly deserves top place
- Peopleware by Lister - would be close too.
- Structure & Interpretation of Computer Programs by Sussman et al
+1
More debatably:
- Knuth's 3 volumes on algorithms - but more people talk
about them than have read them I suspect!
+1
- UML distilled by Fowler might make it into the
classics category if UML really does become the
standard notation.
Chris Schumacher
In my personal experience Kernighan&Plaugher's "Software Tools" is a
good book
H. E. Taylor:
Add _The Pragmatic Programmer_ by Hunt & Thomas to your list.
-1?
Andrew Reilly
I like Bertrand Meyer's "Object Oriented Software Construction" 2nd
rev. Certainly a lot of detail to think about.
At Uni, long ago, I was taught from "Software Engineering" by
I. Sommerville.
More programming-specific and more beginner-level than you're after,
but very beautiful is "Data Structures, with Abstract Data Types and
Pascal", by Stubbs and Webre.
David Lightstone:
Programmers and Managers - The Routinization of Computer Programming in the
United States by Philip Kraft (cerca 1977).
Testing in Software Development by Martyn Ould and Charles Unwin
Managing Software Quality and Business Risk by Martyn Ould
Scott Moore:
Compiler construction for digital computers, David Gries.
Pascal Users Manual and Report, Jensen and Wirth. The forever unfufilled
dream that programs could be clean and easy to understand.
Basic Basic, Coan. Don't laugh, most early homebrew computer users
read this book. It taught a generation of microcomputer programmers to
program.
Principles of Compiler Design, Aho and Ullman. Aka the "dragon book",
Programming languages: history and fundamentals, Sammet. First (and last)
real look at where programming languages came from, and are going to.
Unix Programmers Manual, Vol 1 and 2, Bell labs.
Writing Interactive Compilers and Interpreters, P. J. Brown.
Roy Omond:
"The Psychology of Computer Programming" by Gerald Weinberg
"The Psychology of Everyday Things" by Don Norman
Andi Kleen:
I always liked "Debugging C" from Robert Ward.
The first chapter of the Dragon Book is not that bad as an introduction.
But if you look for a true classic on compiler writing check Wirth's
Compilerbau
Gray/Reuter - Transaction processing: concepts and techniques
Marcelo Pinto:
Refactoring: Improving the Design of Existing Code by Fowler
Agile Software Development, Principles, Patterns, and Practices by Martin
Software Craftsmanship: The New Imperative by McBreen
Victor Putz:
I also HIGHLY recommend McConnell's "Software Project Survival Guide",
Larry Crimson:
Managing the Software Process, by Watts Humphrey.
Andy Glew:
* The "Gang of 4" book on patterns.
* I'd also put Martin Fowler's book on Refactoring into this class.
I recommend Lakos' "Large-Scale C++ Programming" to everyone now.
CELKO:
"Classics in Software Engineering" and "Writings of the Revolution" by
Edward Yourdon, both now Out of Print
Jerry Coffin:
_Programming Proverbs_ by Henry Ledgard.
-k