“Absolutely amazing! A page turner, just like Harry Potter for the technically minded.” —Tobias Svensson from review at return 42;

“This book is so interesting I did 60 minutes on the treadmill yesterday instead of the usual 30 because I couldn’t stop reading.” —Joel Spolsky on Joel on Software

“Coders at Work should inspire readers to learn about the wider context of their craft and stop the reinvention of the proverbial wheel” —Vladimir Sedach from review at Slashdot

“Peter Seibel asks the sort of questions only a fellow programmer would ask. Reading this book may be the next best thing to chatting with these illustrious programmers in person.” —Ehud Lamm, Founder of Lambda the Ultimate - the programming languages weblog

“I highly recommend it.” —Andy Mulholland, CTO, Capgemini

“I have long known the names and of the work of about half of the programmers in Peter Seibel’s wonderful book, Coders at Work; and it is fascinating to read their ideas about their lives and their ideas about programming. Better yet, I have now learned about the lives and philosophies of the other half of the programmers in the book, whose systems were known to me but the programmers themselves were not. Anyone interested in computer programming and what makes a great computer programmer will enjoy this book.” —Dave Walden, original member of the BBN ARPANET team

“These are wonderful interviews and this looks to be a bible for any programmer who aspires to be better.” —Peter Christensen, Founder of GeekStack.com

“This book is dead sexy. When it comes out, you should definitely get a copy.” —Joseph F. Miklojcik III from review at jfm3> _

“Superb book!” —Prakash Swaminathan from review at CloudKnow

“Read it, because then you will know the greatest coding brains.” —Amit Shaw from review at Teleported Bits

“One of the other core questions Peter asks is, what books would you recommend to help a developer learn programming? For me, this book joins my short list—it takes you away from the limitations of learning within a single company or community, and shows you the breadth of experiences that can make someone a great developer.” —Marc Hedlund from review at O’Reilly Radar

“The range of topics covered is just astounding.” —Chris Hartjes from review at @TheKeyboard

Errata

p. x "the the kid" should be "the kid" (1st, 2nd, 3rd printings)

p. xi Missing space before paragraph starting 'This book takes' (1st, 2nd, 3rd printings)

p. xiii Missing space before paragraph starting 'These conversations' (1st, 2nd, 3rd printings)

p. 3 Jamie Zawinski misspoke, saying "Skef Wholey" when he was actually talking about "Rob MacLachlan". (1st, 2nd, 3rd printings)

p. 3 "there at CMU." should be "there at CMU?" (1st, 2nd, 3rd printings)

p. 5 grad in 'grad school' should be set italic (1st, 2nd, 3rd printings)

p. 16 First 'Zawinski' paragraph should have his name in bold. (1st, 2nd, 3rd printings)

p. 17 "you were most proud of." should be "you were most proud of?" (1st, 2nd, 3rd printings)

p. 20 "I have to used templates" should be "I have to use templates" (1st, 2nd, 3rd printings)

p. 21 "just before vesting day mozilla.org stared" should be "just before vesting day mozilla.org started" (1st, 2nd, 3rd printings)

p. 21 Smaller than normal space before paragraph starting 'And it didn't work' (1st, 2nd, 3rd printings)

p. 23 "everything get rewritten all the time" should be "everything gets rewritten all the time" (1st, 2nd, 3rd printings)

p. 25 'industry' should be set italic' (1st, 2nd, 3rd printings)

p. 28 "Either way. or both" should be "Either way. Or both" (1st, 2nd, 3rd printings)

p. 30 "So anytime time it printed" should be "So anytime it printed" (1st, 2nd, 3rd printings)

p. 40 I refer back to "Skef" which should be "Rob MacLachlan" (see p. 3 erratum) (1st, 2nd, 3rd printings)

p. 41 "And I'd then I'd pick up" should be "And then I'd pick up" (1st, 2nd, 3rd printings)

p. 41 "and making Leyden jars" should be "and how to make Leyden jars" (1st, 2nd, 3rd printings)

p. 48 "just to making a computer do something neat" should be "just to make a computer do something neat" (1st, 2nd, 3rd printings)

p. 50 'Clifford the Big Red Dog' should be not italic. (1st, 2nd, 3rd printings)

p. 54 "like 25, 27 grand per month" should be "like $25, $27 grand per month" (1st, 2nd, 3rd printings)

p. 54 "like 11 grand" should be "like $11 grand" (1st, 2nd, 3rd printings)

p. 55 Extra space at beginning of paragraph. (1st, 2nd, 3rd printings)

p. 56 "Hey, how do you that" should be "Hey, how do you do that" (1st, 2nd, 3rd printings)

p. 56 Looks like an en dash rather than a regular hyphen. (1st, 2nd, 3rd printings)

p. 56 "east coast" should be "East coast" (1st, 2nd, 3rd printings)

p. 56 "west coast" should be "West coast" (1st, 2nd, 3rd printings)

p. 60 "configuration will change over time as we add a more storage nodes." should be "configuration will change over time as we add more storage nodes." (1st, 2nd, 3rd, 4th, 5th printings)

p. 62 "when I want to a runtime" should be "when I want to at runtime" (1st, 2nd, 3rd printings)

p. 63 "Oh, we'll, SWIG-wrap it" should be "Oh, we'll SWIG-wrap it" (1st, 2nd, 3rd printings)

p. 72 "but the programmer just respect" should be "but the programmers just respect" (1st, 2nd, 3rd printings)

p. 73 "just in case some quits" should be "just in case someone quits" (1st, 2nd, 3rd printings)

p. 74 "When I came back from my second class, and he's like" should be "When I came back from my second class, he's like" (1st, 2nd, 3rd printings)

p. 75 Extra space at beginning of paragraph. (1st, 2nd, 3rd printings)

p. 77 "as a strings of arbitrary" should be "as strings of arbitrary" (1st, 2nd, 3rd printings)

p. 78 "A lot times" should be "A lot of times" (1st, 2nd, 3rd printings)

p. 80 "My basic rules is" should be "My basic rule is" (1st, 2nd, 3rd printings)

p. 81 Extra period at end of sentence' (1st, 2nd, 3rd printings)

p. 85 "Steve Yegge is working on project to" should be "Steve Yegge is working on a project to" (1st, 2nd, 3rd printings)

p. 85 "only after I'm supercomfortable" should be "only after I'm super comfortable" (1st, 2nd, 3rd printings)

p. 88 Extra space at beginning of paragraph. (1st, 2nd, 3rd printings)

p. 88 "Like don't tell me how" should be "Don't tell me how" (1st, 2nd, 3rd printings)

p. 92 "economists or psychologist or geographers" should be "economists or psychologists or geographers" (1st, 2nd, 3rd, 4th, 5th printings)

p. 93 "I seem to be good at this."?" should be "I seem to be good at this"?" (1st, 2nd, 3rd printings)

p. 93 "the path that you took learning the program" should be "the path that you took learning to program" (1st, 2nd, 3rd printings)

p. 95 "x25" should be "X.25" (1st, 2nd, 3rd printings)

p. 95 "he got so much right, It was amazing" should be "he got so much right, it was amazing" (1st, 2nd, 3rd printings)

p. 99 "you can take something from Yahoo and" should be "you can take something from Yahoo! and" (1st, 2nd, 3rd printings)

p. 101 "I hadn't heard of that happening to anybody, so so far they" should be "I hadn't heard of that happening to anybody, so, so far they" (1st, 2nd, 3rd printings)

p. 101 "Where we do have a problem there is that there are" should be "Where we do have a problem is that there are" (1st, 2nd, 3rd printings)

p. 104 "one-character variable names."?" should be "one-character variable names"?" (1st, 2nd, 3rd printings)

p. 106 "piece of code that I could not improved" should be "piece of code that I could not improve" (1st, 2nd, 3rd printings)

p. 113 "you think should everybody learn to program" should be "you think everybody should learn to program" (1st, 2nd, 3rd, 4th, 5th printings)

p. 116 "very quickly.I tried" should be "very quickly. I tried" (1st, 2nd, 3rd printings)

p. 117 "is necessarily to be a programmer" should be "is necessary to be a programmer" (1st, 2nd, 3rd printings)

p. 119 "One of the first things I did the in the language" should be "One of the first things I did in the language" (1st, 2nd, 3rd printings)

p. 129 Two blank lines at top of page. (1st, 2nd, 3rd printings)

p. 131 "part of that solution of that problem" should be "part of the solution to that problem" (1st, 2nd, 3rd printings)

p. 133 "JIT'ing" should be "JITing" (1st, 2nd, 3rd printings)

p. 134 "Eich: I was doing physics" should be "I was doing physics" (1st, 2nd, 3rd printings)

p. 150 "should go get a PhD. in computer science" should be "should go get a PhD in computer science" (1st, 2nd, 3rd printings)

p. 155 "I did this with JavaScript, In a great big hurry" should be "I did this with JavaScript. In a great big hurry" (1st, 2nd, 3rd printings)

p. 156 Extra space at beginning of paragraph starting "We were lucky" (1st, 2nd, 3rd printings)

p. 160 "which is good.Some of them" should be "which is good. Some of them" (1st, 2nd, 3rd printings)

p. 171 "libraries [have] appealed" should be "libraries have appealed" (1st, 2nd, 3rd printings)

p. 173 "Booleans" should be lower case and in code style. (1st, 2nd, 3rd printings)

p. 175 Extra space at beginning of paragraph starting "As you get older" (1st, 2nd, 3rd printings)

p. 194 "what it's going to do the conceptual surface area" should be "what it's going to do to the conceptual surface area" (1st, 2nd, 3rd, 4th, 5th printings)

p. 195 "C Puzzlers" should be "C++ Puzzlers" (1st, 2nd, 3rd printings)

p. 197 "I think there a bunch of neat ideas" should be "I think there are a bunch of neat ideas" (1st, 2nd, 3rd printings)

p. 206 "the famous Lighthill," should be "the famous Lighthill report," (1st, 2nd, 3rd printings)

p. 208 "like a10MB disk" should be "like a 10MB disk" (1st, 2nd, 3rd printings)

p. 210 "operating systemsand" should be "NIL" (1st, 2nd, 3rd printings)

p. 229 "go on very well.He" should be "go on very well. He" (1st, 2nd, 3rd printings)

p. 235 "do it in a linear form.The" should be "NIL" (1st, 2nd, 3rd printings)

p. 236 "of the code to the BASIC that he written" should be "of the code to the BASIC that he had written" (1st, 2nd, 3rd printings)

p. 242 "to simply to fit" should be "simply to fit" (1st, 2nd, 3rd printings)

p. 247 "nobody every taught me" should be "nobody ever taught me" (1st, 2nd, 3rd printings)

p. 249 "like that every since" should be "like that ever since" (1st, 2nd, 3rd printings)

p. 264 "program.And" should be "program. And" (1st, 2nd, 3rd printings)

p. 267 "Do you tend program Haskell interactively" should be "Do you tend to program Haskell interactively" (1st, 2nd, 3rd, 4th, 5th printings)

p. 291 "they had air force connections" should be "they had Air Force connections" (1st, 2nd, 3rd printings)

p. 300 "then there's this other guy, whose name I've forgotten" should be "then there's this other guy," whose name I've forgotten" (1st, 2nd, 3rd printings)

p. 302 "How much do you think you can you sit down" should be "How much do you think you can sit down" (1st, 2nd, 3rd printings)

p. 303 "which type of those types of problems" should be "which of those types of problems" (1st, 2nd, 3rd printings)

p. 309 "A of companies say" should be "A lot of companies say" (1st, 2nd, 3rd printings)

p. 309 "into the p4 depot" should be "into the Perforce depot" (1st, 2nd, 3rd printings)

p. 314 "this one original one faulted" should be "this original one faulted" (1st, 2nd, 3rd printings)

p. 326 First couple of paragraphs of interview set in italic. (1st, 2nd, 3rd printings)

p. 332 Missing space. (1st, 2nd, 3rd printings)

p. 344 "hit the double almode" should be "hit the double altmode" (1st, 2nd, 3rd, 4th, 5th printings)

p. 346 "Then I then sat down" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 349 Missing space. (1st, 2nd, 3rd printings)

p. 357 "leave it to the programmers do be smart" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 363 "card data will be read has all over the low order bits cleared" should be "card data will be read has all of the low order bits cleared" (1st, 2nd, 3rd, 4th, 5th printings)

p. 368 "a much more tractable problem that verifying the" should be "a much more tractable problem than verifying the" (1st, 2nd, 3rd, 4th, 5th printings)

p. 386 "written in assembler" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 416 "but it also it has" should be "but it also has" (1st, 2nd, 3rd, 4th, 5th printings)

p. 420 "into a bunch of files sort of by functionally" should be "into a bunch of files sort of by functionality" (1st, 2nd, 3rd printings)

p. 425 "happened with my the next big cluster" should be "happened with my next big cluster" (1st, 2nd, 3rd, 4th, 5th printings)

p. 428 "did you have had a chance" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 429 "There were two people One of them" should be "There were two people. One of them" (1st, 2nd, 3rd printings)

p. 430 "one that I think it's fair to say that he and I kind of codesigned" should be "one that I think it's fair to say he and I kind of codesigned" (1st, 2nd, 3rd printings)

p. 436 "happens in the small.People" should be "happens in the small. People" (1st, 2nd, 3rd printings)

p. 441 "what the status is of Common Lisp libraries is" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 449 "Bell Lab's Plan 9" should be "Bell Labs' Plan 9" (1st, 2nd, 3rd printings)

p. 463 "(i.e. Bell Labs)" should be "(i.e., Bell Labs" (1st, 2nd, 3rd printings)

p. 470 "perfection, for it's own sake" should be "perfection, for its own sake" (1st, 2nd, 3rd printings)

p. 471 "What you're doing is your sloughing" should be "What you're doing is you're sloughing" (1st, 2nd, 3rd, 4th, 5th printings)

p. 482 "very close to the hardware at a very abstract level" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 505 "In your Turning Award lecture" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 524 "read and write memory The only way" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 531 "things-are-going to-keep-working" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 539 Whole paragraph extraneously bold. (1st, 2nd, 3rd printings)

p. 539 "it’s won’t get torn" should be "it won't get torn" (1st, 2nd, 3rd, 4th, 5th printings)

p. 547 "the one bug you, knew what to look for" should be "the one bug, you knew what to look for" (1st, 2nd, 3rd, 4th, 5th printings)

p. 548 "Usually when I said, “This looks wrong and I’m going to fix it” it got fixed." should be "Usually when I said, “This looks wrong and I’m going to fix it,” it got fixed." (1st, 2nd, 3rd, 4th, 5th printings)

p. 556 "and you had you work on some" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 557 "The government tried mandate ADA" should be "The government tried to mandate ADA" (1st, 2nd, 3rd printings)

p. 558 "put those bugs in their programmer" should be "put those bugs in their programs" (1st, 2nd, 3rd printings)

p. 560 "C was like breath of fresh air" should be "NIL" (1st, 2nd, 3rd, 4th, 5th printings)

p. 562 "how many hooks it's got, and it's what you need" should be "how many hooks it's got, and what you need" (1st, 2nd, 3rd, 4th, 5th printings)

p. 574 "many unknowns in it.So" should be "many unknowns in it. So" (1st, 2nd, 3rd printings)

p. 575 "thing trivial ,but" should be "thing trivial, but" (1st, 2nd, 3rd printings)

p. 575 "a large collections of" should be "a large collection of" (1st, 2nd, 3rd, 4th, 5th printings)

p. 577 "any other program of its size," should be "any other program of its size." (1st, 2nd, 3rd printings)

p. 578 "I must have meant "his:"" should be "I must have meant "his":" (1st, 2nd, 3rd printings)

p. 578 "Mathematical things;" should be "Mathematical things:" (1st, 2nd, 3rd printings)

p. 578 "it work's because" should be "it works because" (1st, 2nd, 3rd printings)

p. 579 "3 different versions" should be "three different versions" (1st, 2nd, 3rd printings)

p. 580 "“This is a book I want to see and learn from. Unfortunately, the tricks weren’t actually that good.”" should be "“This is a book I want to see and learn from.” Unfortunately, the tricks weren’t actually that good." (1st, 2nd, 3rd, 4th, 5th printings)

p. 589 "__LINE__" should be "#line" (1st, 2nd, 3rd printings)

p. 590 "informally correct;"" should be "informally correct";" (1st, 2nd, 3rd printings)

p. 601 "than there use to be" should be "than there used to be" (1st, 2nd, 3rd printings)

p. 603 "Donaid Knuth" should be "Donald Knuth" (1st, 2nd, 3rd printings)

p. 604 "Hacker's Delight, Hank Warren" should be "Hacker's Delight, Henry S. Warren" (1st, 2nd, 3rd printings)

p. 608 C index entries not properly coalesced (1st, 2nd, 3rd printings)

p. 608 C++ index entries not properly coalesced (1st, 2nd, 3rd printings)