Coders at Work: Reflections on the Craft of Programming is a 2009 book by Peter Seibel comprising interviews with 15 highly accomplished programmers. The primary topics in these interviews include how the interviewees learned programming, how they debug code, their favorite languages and tools, their opinions on literate programming, proofs, code reading and so on.
*Mentions David Turner's paper on S-K combinators. The S-K combinators are a way of translating and then executing the lambda calculus. Turner showed in his paper how to translate lambda calculus into the three combinators S, K and I which are all just closed lambda terms and I = SKK. So in effect you take a lambda term and compile to just Ss and Ks.
*Mentions a data structure called "zipper" that is a very useful functional data structure. Peyton Jones also mentions the 4-5 line program that Hughes wrote to calculate an arbitrary number of digits of e lazily.
*Mentions that the sequential implementation of a double-ended queue is a first year undergraduate programming problem. For a concurrent implementation with a lock per node, it's a research paper problem. With transactional memory, it's an undergraduate problem again.
*Favorite books/authors: Programming Pearls by Jon Bentley, a chapter titled "Writing Programs for 'The Book'" by Brian Hayes from the book Beautiful Code where he explores the problem of determining which side of the line a given point is, Art of Computer Programming by Don Knuth, Purely Functional Data Structures by Chris Okasaki exploring how to build data structures like queues and heaps without side effects and reasonable complexity bounds, Structure and Interpretation of Computer Programs by Abelson and Sussman, Compiling with Continuations by Andrew Appel, A Discipline of Programming by Dijkstra, Per Brinch Hansen's book about writing concurrent operating systems.
*Peyton Jones mentions Fred Brook's paper that he reread and liked "The Computer Scientist as Toolsmith".
*In 1972/73 when Norvig was still in high school, he found the Knuth algorithm for shuffling cards.
*The first interesting program that Norvig wrote was Game of Life.
*Wrote an essay called "Teach Yourself Programming in Ten Years".
*On practical applications of academic concepts, he mentions that part of the problem is that academics do not see the whole problem and another part is education. If you have a bunch of programmers who don't understand what a monad is and haven't taken courses in category theory, there's a gap.
*Books/Authors he recommends include Knuth; Cormen, Leiserson and Rivest; Sally Goldman, Abelson and Sussman, Code Complete.
*Knuth has written an essay about developing TeX where he talks about flipping over to his pure, destructive QA personality and doing his darnedest to break his own code.
*Talks about the job interview process at Google and says that the best signal is if somebody has worked with one of their employees and they can vouch for the candidate. He also talks about "resume predictor" that takes resume attributes such as experience, winning a programming contest, working on open source project etc. and predicts fit. He also mentions assigning of scores 1 to 4 by interviewers and generally turning down candidates who get a 1 by any of the interviewers unless someone at Google fights for hiring them.
*On getting degree in Computer Science, Guy mentions that he had set out to be a pure math major but he realized that he had no intuition whatsoever for infinite dimensional Banach spaces and that's what did it for him to switch to applied math major.
*Favorite authors and books: Knuth; Aho, Hopcroft and Ullman, Gerald Weinberg on the Psychology of Computer Programming, Fred Brook's Mythical Man-Month
*Suggests that you want to design the specification of what's in the middle in such a way that it naturally is also correct on the boundaries rather than treating boundaries as special cases.
*A parallel garbage collector algorithm developed by Dijkstra which fit on half a page. David Gries wrote a paper for CACM using techniques developed by his student Susan Owicki to prove correctness of this algorithm.