Timeless Classics of Software Engineering

A

A.G.McDowell

Steve said:
I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering. I read a lot on the
topic - at least a book a month for many years. There are many good
authors, however, the only book on making software that is truly
timeless, in my opinion, is "Mythical Man Month" by Brooks. It never
ceases to amaze me that something written over 20 years ago would be
so relevant.
Software Fundamentals: Collected papers by David L. Parnas
(Note that this was edited by David M. Weiss and Daniel M. Hoffman, so
if you are searching for it you might have to put them down as authors).

Classic papers on the rationale for splitting software into modules -
and therefore what splits make sense and what don't. Also a miscellany
of articles about specification, concurrency, real time systems, and so
on.

I wish I could point to the great impact that this has had on the
practice of designing software, but I am afraid that it has not yet had
the impact it deserves, and that we are the worse for that.
 
S

Scott Moore

Steve said:
I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering. I read a lot on the
topic - at least a book a month for many years. There are many good
authors, however, the only book on making software that is truly
timeless, in my opinion, is "Mythical Man Month" by Brooks. It never
ceases to amaze me that something written over 20 years ago would be
so relevant.

My list would be:

MMM (as above)

Compiler construction for digital computers, David Gries. One of the
earliest compilations of material on compiler design, this was an
early book containing practical algorithims for designing large programs
of all types. Often referenced by other books, but largely forgotten
today.

The C Programming Language, K&R. Introduced both C and Unix, and
really gave you an idea how you might write an OS in a high level
language at a time when it was assumed that all OSes were assembly
language.

Pascal Users Manual and Report, Jensen and Wirth. The forever unfufilled
dream that programs could be clean and easy to understand.

The Art of Computer Programming - Knuth. Perhaps the ultimate encyclopedia
of programming, the only knock against it I ever heard was that Knuth
clearly thought it to be the ultimate programming encyclopedia, too.

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",
first generally available book of advanced compiler design. Somewhat
"classic because its classic", it even appeared in a movie about
hackers, even though it has virtually nothing to do with hacking.

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. Was printed and placed
in common bookshelves long before anyone outside a university could
get their hands on a Unix implementation. I designed two operating
systems based on the concepts in it before even seeing my first
Unix implementation, on a 68000 (Unisoft).

Writing Interactive Compilers and Interpreters, P. J. Brown. Admittedly
not a popular book, one of the most amazingly practical books on the
subject of compiler and interpreter designs that has ever appeared.

--
Samiam is Scott A. Moore

Personal web site: http:/www.moorecad.com/scott
My electronics engineering consulting site: http://www.moorecad.com
ISO 7185 Standard Pascal web site: http://www.moorecad.com/standardpascal
Classic Basic Games web site: http://www.moorecad.com/classicbasic
The IP Pascal web site, a high performance, highly portable ISO 7185 Pascal
compiler system: http://www.moorecad.com/ippas

Being right is more powerfull than large corporations or governments.
The right argument may not be pervasive, but the facts eventually are.
 
R

Roy Omond

Steve said:
I'd be grateful for your suggestions. There must be at least a couple
out there.

Only tangentially related, but how about:

o "The Psychology of Computer Programming" by Gerald Weinberg
o "The Psychology of Everyday Things" by Don Norman

Agreed 100% about MMM. It was compulsory reading for undergraduates
when I was studying mid 1970's. Should still be today.

Roy Omond
Blue Bubble Ltd.
 
T

Toby Thain

JXStern said:
...
Kernigan and Plauger, "Elements of Programming Style"...

Can't recommend it enough; that book did more to improve my code than
any other book I can think of. It's the sort of book that one should
re-read every 5 years or so, and I am overdue to read it again...

Toby
 
A

Andi Kleen

I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering. I read a lot on the
topic - at least a book a month for many years. There are many good
authors, however, the only book on making software that is truly
timeless, in my opinion, is "Mythical Man Month" by Brooks. It never
ceases to amaze me that something written over 20 years ago would be
so relevant.

I always liked "Debugging C" from Robert Ward.

It is the only in-deep practical text I know about one of the most
time consuming things in programming: debugging. A lot of the details
in there are outdated (it mentions CP/M and MS-DOS), but the basic
description of debugging methology in there still applies well to
today's system.

Most of the other programming books seem to assume that all your
programs work on the first try.

It's long out of print unfortunately, but will be imho a timeless
classic as long as C exists.

-Andi
 
M

Marcelo Pinto

Are there any other books like MMM that you can think of where every
page is packed with insight where it seems not a single word is in
vain?
I'd be grateful for your suggestions. There must be at least a couple
out there.

Thanks!

- Steve

I haven't read MMM yet. But my personal list is:

- 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

Good luck,

Marcelo Pinto
 
V

Victor B. Putz

MMM is of course fantastic. And I would also put Code Complete on the
short list (and there's a new edition coming soon). MMM is more of a
high-level thing, while Code Complete starts at a lower level but is
so packed with good advice that I always get something out of it when
rereading.

I also HIGHLY recommend McConnell's "Software Project Survival Guide",
which is a great companion volume to "Code Complete". His "Rapid
Development" is another great collection of software construction
knowledge. I would place McConnell at the top of my short list of
"authors I will read whenever I see them put out something new".

In fact, McConnell's approach in Code Complete (and his later efforts
as editor of IEEE Computer magazine) inspired me to be extremely lazy
when making a reading list--and just took his. Steve's company,
Construx software, has an established reading list that's available on
the web... or was; their 1.0 version of their reading ladder is now
only available to "website members" (free registration but still a
little annoying). You can get some idea from their current program
(the one for a sample developer is at

http://www.construx.com/professionaldev/individual/pdlsampleplans/sampledev.php

....but I liked the "annotated bibliography" aspect of the v1
ladder--aside from having better presentations of each of the
materials, it also included a list of seminal articles from software
history and was just a great list of resources. HIGHLY recommended,
and probably worth registering on the site just to have. I read
pretty much everything on there (or at least one of the options
whenever it said "this book or this book").

-->VPutz
 
L

Larry Crimson

I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering.

What about:

The Inmates are Running the Asylum

Opps, my mistake. I thought you said pointless drivel.

Seriously, I would add:

Managing the Software Process, by Watts Humphrey.

Larry
 
D

Default User

JXStern said:
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.

Kernigan and Plauger, "Elements of Programming Style", never quite did
it for me, but others might name it.


Just to note, it's spelled "Kernighan". That can be important when
searching for books.




Brian Rodenborn
 
P

puppet_sock

Sergio Navega said:
I also vote for "Code Complete". It is a remarkable (although excessively
lenghy) work. If you don't want to face its 850+ pages, there's a smaller
alternative:

Maguire, Steve (1993) Writing Solid Code. Microsoft Press.

These two books are classics by any definition (and both were written
by "Steves" and published by Microsoft Press).

_Writing Solid Code_ should be considered only an appetizer.
It's got the attitude, but really only a few good examples.
It's also strongly oriented towards writing C code.
The notion it plugs is "keep trying to improve" and that is
good. It was one of the first books I read that had that
particular message. Go ahead and read it, but *DON'T* stop
after that. Get _Code Complete_ as soon as you can afford
the money and time.

The "effective C++" books are excellent also, and available
as a package for cheap on CD.
Socks
 
P

puppet_sock

Another book I quite enjoyed was: _Death March_ by Yourdon.
He gives excellent advice on how to cope with the project
from hell, with far too large a requirement set in far too
little time.
Socks
 
G

Gavin Scott

In comp.arch Marshall Spight said:
I can't vouch for it myself, but I hear a lot of people mention
"Code Complete" by Steve McConnell.

I see there's a brand new 2nd edition just out too.

G.
 
M

Mikito Harakiri

Steve Johnson said:
I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering. I read a lot on the
topic - at least a book a month for many years. There are many good
authors, however, the only book on making software that is truly
timeless, in my opinion, is "Mythical Man Month" by Brooks. It never
ceases to amaze me that something written over 20 years ago would be
so relevant.

No database textbooks listed so far. Is it because
1. There are no classic database books.
Or rather
2. Software engineers usually don't know anything about databases.
?
 
L

Leif Roar Moldskred

Add _The Pragmatic Programmer_ by Hunt & Thomas to your list.

I don't really think "The Pragmatic Programmer" is about software
engineering, though. Rather, it's a craft-book - i.e. it's more about
the "practical masonry" side of software building than it is about the
engineering side.
 
B

Bill Todd

Mikito Harakiri said:
No database textbooks listed so far. Is it because
1. There are no classic database books.
Or rather
2. Software engineers usually don't know anything about databases.
?

Perhaps it's because they'd be off-topic, just as the other essentially
technical references that have been listed are.

If one wants to go there, though, I'd place Gray & Reuter at the top of the
list for real nuts and bolts insights (more superficial understanding can be
found in any number of places).

- bill
 
V

Victor B. Putz

Well, I think the discussion was more on software
engineering/construction.

As for database references, while there are plenty of good books out
there, in terms of "bang-for-buck" I haven't seen something on
database design that's as concise and yet useful as William Kent's
1982 essay "A Simple Guide to Five Normal Forms in Relational Database
Theory"--and considering the databases I've seen "professionals" make
that don't even try for well-formed data, it's a shame.

http://www.bkent.net/Doc/simple5.htm

-->VPutz
 
M

Mikito Harakiri

Bill Todd said:
Perhaps it's because they'd be off-topic, just as the other essentially
technical references that have been listed are.

Right. That was a knee-jerk reaction to UML book somebody nominated.
Database people would easily trade a stack of UML books to a decent database
text.

P.S. Thank's god nobody mentioned "Learning XML in 21 minutes" by Bill
Quickbuck yet.
 
A

Andy Glew

"Steve Johnson"
I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering.


Two "how software is done" books,
as opposed to "how to manage software":
* The "Gang of 4" book on patterns.
* I'd also put Martin Fowler's book on Refactoring into this class.

I doubt that the XP (eXtreme Programming) books will
become classics, even though I enjoy them.
 
A

Andy Glew

"Steve Johnson"
I'd like to hear thoughts on what books, in your opinion, are true
classics in the field of software engineering.

Adding to my last post, I recommend Lakos'
"Large-Scale C++ Programming"
to everyone now.

But I'm not sure it will be "timeless",
in the way the GOF book may be.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top