Table of Contents
Event timelines of the Unix Industry and of GNU/Linux and Unix are available on the Web. A timeline tree of Unix releases is also available.
[Bentley] Programming Pearls. 2nd Edition. 2000. Addison-Wesley. ISBN 0-201-65788-0.
The third essay in this book, “Data Structures Programs”, argues a case similar to that of Chapter 9 with Bentley's characteristic eloquence. Some of the book is available on the Web.
[BlaauwBrooks] Computer Architecture: Concepts and Evolution. 1997. ISBN 0-201-10557-8. Addison-Wesley.
[Bolinger-Bronson] Applying RCS and SCCS. O'Reilly & Associates. 1995. ISBN 1-56592-117-8.
Not just a cookbook, this also surveys the design issues in version-control systems.
[Brooks] The Mythical Man-Month. 20th Anniversary Edition. Addison-Wesley. 1995. ISBN 0-201-83595-9.
[Boehm] Advantages and Disadvantages of Conservative Garbage Collection.
Thorough discussion of tradeoffs between garbage-collected and non-garbage-collected environments. Available on the Web.
[Cannon] Recommended C Style and Coding Standards. 1990.
An updated version of the Indian Hill C Style and Coding Standards paper, with modifications by the last three authors. It describes a recommended coding standard for C programs. Available on the Web.
[Christensen] The Innovator's Dilemma. HarperBusiness. 2000. ISBN 0-066-62069-4.
The book that introduced the term “disruptive technology”. A fascinating and lucid examination of how and why technology companies doing everything right get mugged by upstarts. A business book technical people should read.
[Cooper] The Inmates Are Running the Asylum. Sams. 1999. ISBN 0-672-31649-8.
Despite some occasional quirks and crotchets, this book is a trenchant and brilliant analysis of what's wrong with software interface designs, and how to put it right.
[FlanaganJavaScript] JavaScript: The Definitive Guide. 4th Edition. O'Reilly & Associates. 2002. ISBN 1-596-00048-0.
[Friedl] Mastering Regular Expressions. 2nd Edition. 2002. ISBN 0-596-00289-0. O'Reilly & Associates. 484pp..
[GangOfFour] Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. 1997. ISBN 0-201-63361-2.
[Gentner-Nielsen] Communications of the ACM. Association for Computing Machinery. August 1996. “The Anti-Mac Interface”.
[Hatton97] IEEE Software. March/April 1997. “Re-examining the Defect-Density versus Component Size Distribution”.
[Heller] C++: A Dialog. Programming with the C++ Standard Library. Prentice-Hall. 2003. ISBN 0-13-009402-1.
[Hunt-Thomas] The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley. 2000. ISBN 0-201-61622-X.
[Kernighan95] Experience with Tcl/Tk for Scientific and Engineering Visualization. USENIX Association Tcl/Tk Workshop Proceedings. 1995.
[Kernighan-Pike99] The Practice of Programming. 1999. ISBN 0-201-61586-X. Addison-Wesley.
An excellent treatise on writing high-quality programs, surely destined to become a classic of the field.
[Kernighan-Ritchie] The C Programming Language. 2nd Edition. Prentice-Hall Software Series. 1988. ISBN 0-13-110362-8.
[Lampson] ACM Operating Systems Review. Association for Computing Machinery. October 1983. “Hints for Computer System Design”.
[Lewine] POSIX Programmer's Guide: Writing Portable Unix Programs. 1992. O'Reilly & Associates. ISBN 0-937175-73-0. 607pp..
[Libes-Ressler] Life with Unix. 1989. ISBN 0-13-536657-7. Prentice-Hall.
This book gives a more detailed version of Unix's early history. It's particularly strong for the period 1979–1986.
[Lions] Lions's Commentary on Unix 6th Edition. 1996. 1-57398-013-7. Peer-To-Peer Communications.
PostScript rendering of Lions's original floats around the Web. This URL may be unstable.
[McIlroy78] The Bell System Technical Journal. Bell Laboratories. 1978. 57 (6, part 2). p. 1902. “Unix Time-Sharing System Forward”.
[Miller] The Psychological Review. Some limits on our capacity for processing information. 1956. 63. pp. 81-97. “The Magical Number Seven, Plus or Minus Two”.
[OpenSources] Open Sources: Voices from the Open Source Revolution. O'Reilly & Associates. 1999. ISBN 1-56592-582-3. 280pp..
[Ousterhout96] Why Threads Are a Bad Idea (for most purposes). 1996.
An invited talk at USENIX 1996. There is no written paper that corresponds to it, but the slide presentation is available on the Web.
[Parnas] Communications of the ACM. Available on the Web at the
ACM Classics
page.
[Pike] Notes on Programming in C.
This document is popular on the Web; a title search is sure to find several copies. Here is one.
[Prechelt] An Empirical Comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a Search/String-Processing Program.
[Raskin] The Humane Interface. Addison-Wesley. 2000. ISBN 0-201-37937-6.
A summary is available on the Web.
[Raymond96] Eric S. Raymond. The New Hacker's Dictionary. 3rd Edition. 1996. ISBN 0-262-68092-0. MIT Press. 547pp..
Available on the Web at Jargon File Resource Page.
[Raymond01] The Cathedral and the Bazaar. 2nd Edition. 1999. ISBN 0-596-00131-2. O'Reilly & Associates. 240pp..
[Reps-Senzaki] Zen Flesh, Zen Bones. 1994. Shambhala Publications. ISBN 1-570-62063-6. 285pp..
A superb anthology of Zen primary sources, presented just as they are.
[Saltzer] ACM Transactions on Computer Systems. Association for Computing Machinery. November 1984. “End-to-End Arguments in System Design”.
[Salus] A Quarter-Century of Unix. Addison-Wesley. 1994. ISBN 0-201-54777-5.
An excellent overview of Unix history, explaining many of the design decisions in the words of the people who made them.
[Schaffer-Wolf] The Unix Shell as a Fourth-Generation Language. 1991.
Available on the Web. An open-source implementation, NoSQL, is available and readily turned up by a Web search.
[Schwartz-Christiansen] Learning Perl. 3rd Edition. O'Reilly & Associates. 2001. ISBN 0-596-00132-0.
[Spinellis] Journal of Systems and Software. (1). February 2001. p. 91-99. “Notable Design Patterns for Domain-Specific Languages”.
[Stephenson] In the Beginning Was the Command Line. 1999.
Available on the Web, and also as a trade paperback from Avon Books.
[Stevens90] Unix Network Programming. Prentice-Hall. 1990. ISBN 0-13-949876-1.
The classic on this topic. Note: Some later editions of this book omit coverage of the Version 6 networking facilities like mx().
[Stevens92] Advanced Programming in the Unix Environment. 1992. ISBN 0-201-56317-7. Addison-Wesley.
Stevens's comprehensive guide to the Unix API. A feast for the experienced programmer or the bright novice, and a worthy companion to Unix Network Programming.
[Tanenbaum-VanRenesse] A Critique of the Remote Procedure Call Paradigm. EUTECO'88 Proceedings, Participants Edition. 1988. pp. 775-783.
[Torvalds] Just for Fun. The Story of an Accidental Revolutionary. HarperBusiness. 2001. ISBN 0-06-662072-4.
[Vaughan] GNU Autoconf, Automake, and Libtool. New Riders Publishing. 2000. 390 p.. ISBN 1-578-70190-2.
A user's guide to the GNU autoconfiguration tools. Available on the Web.
[Vo] Software Practice & Experience. 2000. p. 107-128. “The Discipline and Method Architecture for Reusable Libraries”.