Required Reading -- CS Systems
Last Update: April 18, 2009
This is just a start at present...there are many other great works I should
consider adding and no doubt many which I have yet to encounter myself. -- amd
- Butler Lampson, "Hints for Computer System Design",
IEEE Software, January 1984 (earlier version 9th SOSP, Oct. 83)
- Donald Knuth. "Empirical Studies of FORTRAN Programs",
Software Practice and Experience, v1n1p105-133, 1971.
- Henry Petroski
- "History and Failure", American Scientist v80n6p523, Nov/Dec. 1992.
(this is a short/easy starter, but you want to read the full story in To Engineer...)
- To Engineer is Human: The Role of Failure in Successful Engineering Design
- probably others, I'm still reading...
- Fred Brooks, Mythical Man Month
- Richard P. Gabriel, "Lisp: Good News, Bad News, How to Win Big",
(colloquially known as "Worse is Better" due to the key section by that
also "Worse is Better Is Worse" and other follow ons [Gabriel's page with
the history and links to the series]
- Eric S. Raymond. "The Cathedral and the Bazaar"
- Eliyahu Goldratt
- The Goal
- It's Not Luck
- for a more practical guide: H. William Dettmer,
Goldratt's Theory of Constraints.
- Critical Chain
- Santiago Ramón Cajal. Advice for a Young Investigator,
first printing 1897, current english translation MIT Press 1999.
- J. Salzer, D. Reed, and D. Clark.
"End-To-End Arguments in System Design",
ACM Transactions on Computer Systems, v2n4p277-288, Nov. 1984.
- Charles Perrow.
The Next Catastrophe: Reducing our Vulnerabilities to Natural,
Industrial, and Terrorist Disasters,
Princeton University Press, 2007.
- Karl T. Ulrich and Steven D. Eppinger.
Product Design and Development,
McGraw-Hill, Inc., 1995
- I'm not sure this is the definitive book on this subject, but I
do think every good computer engineer (hardware or software) should
be exposed to these ideas.
- Alan Cooper. The Inmates Are Running the Asylum: Why High Tech
Products Drive Us Crazy and How to Restore the Sanity, Sams -- Pearson