| help | account  

Books Co-Authored by Guy Steele:
C: A Reference Manual, 5th Edition
By Samuel P. III Harbison
$32.50 (36% Off!)


The Java Language Specification, 3rd Edition
By James Gosling
$38.95 (22% Off!)


Want to see more?
View favorite books from other authors.
We asked some of our (and your!) favorite authors to share with us their favorite 10 computer books from the past 10 years. Here's what we got back.

Guy Steele is a Sun Fellow at Sun Microsystems, Inc. Previously he was a Senior Scientist at Thinking Machines Corporation and an assistant professor at Carnegie-Mellon University. He is the author or co-author of C: A Reference Manual, Common Lisp: The Language, The High Performance Fortran Handbook, The Java Language Specification and The Hacker's Dictionary. He has served on standards committees for the programming languages C, Common Lisp, Fortran, Scheme, and ECMAScript (also known as JavaScript). He has S.M. and Ph.D. degrees from MIT and an A.B. from Harvard. Currently he is Principal Investigator of the Sun Laboratories Programming Languages Research Group, which is working on next-generation programming languages for scientific computing.


Guy's favorite books:
Computers & Typesetting, Volumes A-E Boxed Set by Donald E. Knuth -- I'll read anything that Don Knuth writes, and he has written quite a bit, includingSurreal Numbers and 3:16 Bible Texts Illuminated as well as the famous Art of Computer Programming series. But this five-volume set is my favorite. The two volumes titled (and sold separately) as The TeXbook and The METAFONT book are well-known, but what I really recommend to you are TeX: The Program and METAFONT: The Program, because these are simply the best-written, best-documented, best-debugged programs of their size ever published. They reward careful study.


Hacker's Delight by Henry S. Warren -- Hank Warren has done a fabulous job of collecting the little bit-twiddly programming tricks that you don't necessarily want to use often — but when you do need them, they can speed up an inner loop enormously. Full disclosure: I was fortunate enough to be asked to write the foreword. If you write optimizing compilers or need to hand-tune code for performance, this book is for you.


Find the Bug: A Book of Incorrect Programs by Adam Barr -- This is one of those it's-like-eating-peanuts books, where you dip in to try one, then another, and another — and before you know it, you've consumed the entire lot. It's a book of programming puzzles, not too hard, not too easy. While looking for the bugs, you learn a lot about programming techniques and a number of programming languages. Barr feeds you just enough of what you need to know about each programming language before you tackle the relevant puzzles.


The Annotated Alice: The Definitive Edition by Lewis Carroll, annotations by Martin Gardner, illustrations by John Tenniel -- As the late Alan Perlis (professor of computer science at Carnegie-Mellon University and later at Yale) once remarked (epigram 48), "The best book on programming for the layman is Alice in Wonderland; but that's because it's the best book on anything for the layman." It's not just a kid's book. Lewis Carroll (Charles Lutwidge Dodgson) was a professional logician, and the paradoxes of logic and language inform many of the jokes. If you've ever gotten confused about the differences among "int *" and "int **" and "int []" and "int [][]" in the C programming language, you'll see what Carroll meant when he wrote " `The name of the song is called "Haddock's Eyes".' `Oh, that's the name of the song, is it?' `No, you don't understand. That's what the name is called. The name really is "The Aged Aged Man".


Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman -- This is the textbook for MIT's introductory computer science course. It happens to use the Scheme programming language, which Gerald Jay Sussman and I created in 1975 and which has become a mainstay of programming language research — but it's not really a book about Scheme. It's about Abelson and Sussman's vision of good software engineering and how to think about programs and their construction, regardless of language. I had nothing to do with the writing of this book, but I got a lot out of reading it.


Unicode Demystified: A Practical Programmer's Guide to the Encoding Standard by Richard Gillam -- As a writer as well as a programmer and programming language designer, I love Unicode for finally breaking us out of the ASCII straitjacket and making the world's writing systems more or less universally available, in browsers as well as text editors. (When I get spam from Russia or China, I actually see Russian or Chinese characters now rather than ASCII line noise; I'm even learning to read these languages a bit.) The Unicode Standard, Version 4.0 by the Unicode Consortium is a fascinating read and an important reference work, but sometimes makes me feel like the treasurer of Ethiopia reading the book of Isaiah: "Do you understand what you are reading?" "How can I, unless someone explains it me?" I have found Gillam's book a very readable explanation of the why behind the what of Unicode.


The Chicago Manual of Style, 15th edition by University of Chicago Press -- If you're going to communicate successfully, you have to be a writer, not just a programmer. The standard tools are a dictionary, a thesaurus, and a style manual. If you're a novice just beginning to learn about writing, then The Elements of Style by Strunk and White is a superb tutorial; but Chicago is the serious reference work to which I resort daily when I'm writing and editing. The new 15th edition has a great deal of material that addresses the changes brought about by computers, including the revolution in mathematical typesetting wrought by TeX. I sometimes sit down and read entire chapters of the Chicago Manual at a time, but that's because I'm nuts about my craft. Even if you're not nuts, this is a valuable reference book to have on your shelf.


Winning Ways for Your Mathematical Plays, Volumes 1-4 by Elwyn R. Berlekamp, John Horton Conway and Richard K. Guy -- This is one of the most delightful mathematical works ever written. I loved Martin Gardner's Mathematical Games columns in Scientific American (which have themselves been collected into books), and from them I learned a great deal about combinatorics and geometry that materially inspired some techniques for computer network design for which I have been awarded multiple patents. (Read! Learn! You never can tell what will come in handy.) Gardner in turn got a lot of material from these guys; Conway, for example, invented the cellular-automaton game known as "Life" as well as a radical synthesis of number theory and game theory, detailed in his book On Numbers and Games and summarized in a novella (!) by Donald Knuth (!!),Surreal Numbers. Winning Ways introduces hundreds of delightful little games, many of them suitable for pencil-and-paper play (and perhaps winning the odd bar bet), and proceeds to analyze them rigorously using Conway's novel game theory. I read the earlier two-volume edition cover-to-cover-to-cover-to-cover; parts were tough going, but for the most part it was lively, funny, cartoony, and colorful. A new, expanded four-volume edition has recently become available.


The Art of the Incredibles by Mark Cotta Vaz -- The movie The Incredibles just blew me away. The story was a blast, the characters and their relationships were engaging and believable, the 3-D animation was stunning — but what impressed me most was the extraordinary attention to detail. Brad Bird is passionate about storytelling the way I am passionate about precision in technical writing: it's worth spending years of your life, revising and rewriting and obsessing over every last jot and tittle and nuance, to get it right — not just the parts that everyone pays attention to, but the backgrounds, the framework, the context, the internal connections and foreshadowing and matters of consistency that hardly anyone notices unless you screw it up. This book tells the behind-the-scenes story of the artistic conceptualization, design, and construction of a first-rate movie that just happens to be computer-animated. See the movie, then read the book. One lesson is that while computers are powerful tools, it takes art, passion, and deliberation to communicate a good story clearly.


Writers' Workshops & the Work of Making Things: Patterns, Poetry... by Richard P.Gabriel -- Richard Gabriel, like Gerald Weinberg (The Psychology of Computer Programming) and Fred Brooks (The Mythical Man-Month), is interested not just in programs but in programming as a human activity; for example, his forthcoming book with Ron Goldman, Innovation Happens Elsewhere, discusses the organizational as well as the technical ramifications of open source projects. Writers' Workshops explains a peer review process that has worked well for poets and authors of fiction, and discusses Gabriel's experience in using an analogous process for the construction of software design patterns (as in the so-called "Gang-of-Four book" of object-oriented programming, Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides).