Coders at work

Coders at work
Coders at Work: Reflections on the Craft of Programming  
Author(s) Peter Seibel
Subject(s) Software Development
Genre(s) Non-fiction
Publisher Apress
Publication date September 16, 2009
ISBN 1430219483
OCLC Number 10605060

Coders at Work: Reflections on the Craft of Programming (ISBN 1-430-21948-3) is a book by Peter Seibel about interviews with 15 highly accomplished programmers. The primary topics in these interviews include how the interviewees learned programming, how do they debug code, their favorite languages and tools, their opinions on literate programming, proofs, code reading and so on.

Interviewees

Below is the list of interviewees for this book and some highlights.

    1. Jamie Zawinski
    2. Brad Fitzpatrick
    3. Douglas Crockford
    4. Brendan Eich
    5. Joshua Bloch
    6. Joe Armstrong
    7. Simon Peyton Jones
      • Peyton Jones mentions David Turner's paper on S-K combinators (cf. SKI combinator calculus). The S-K combinators are 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.
      • Peyton Jones recalls his first instance of learning functional programming when taking a course by Arthur Norman who showed how to build doubly linked lists without any side effects at all.
      • Peyton Jones mentions the paper "Can Programming be Liberated from the von Neumann Style" by John Backus.
      • Peyton Jones wants John Hughes to write a paper for the Journal of Functional Programming on why static typing is bad. Hughes has written a popular paper titled "Why Functional Programming Matters".
      • Peyton Jones 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.
      • Peyton Jones 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".
    8. Peter Norvig
      • 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.
      • Norvig has written 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.
      • Norvig 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.
    9. Guy Steele
      • Guy collaborated with Gerald Sussman on a series of papers now known as "The Lambda Papers" which included the original definition of the Scheme programming language.
      • 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, Hopcraft and Ullman (Guy says that this book is where he learned sorting for "real"), Gerald Weinberg on the Psychology of Computer Programming, Fred Brook's Mythical Man-Month
      • JavaScript code written by George W. Hart to create VRML for complex polyhedra.
      • On designing, Guy 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.
    10. Dan Ingalls
    11. L Peter Deutsch
    12. Ken Thompson
    13. Fran Allen
    14. Bernie Cosell
    15. Donald Knuth

See also

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Douglas Crockford — at the Browser Wars: Episode II Attack of the DOMs event on 2007 02 28 Born Minnesota Alma mater San Francisco State Universi …   Wikipedia

  • Joe Armstrong — (* 27. Dezember 1950 in Bournemouth, England) ist ein Informatiker mit Arbeitsgebiet fehlertolerante, verteilte Systeme. Er ist der Erfinder der Programmiersprache Erlang.[1][2][3] Inhaltsverzeichnis …   Deutsch Wikipedia

  • Jamie Zawinski — (auch bekannt als jwz[1]; * 3. November 1968 in Pittsburgh) ist ein US amerikanischer Programmierer. Bekanntheit erlangte er durch die Entwicklung von XEmacs, XScreenSaver, als Mitarbeiter von Netscape Corp. und die Gründung des Mozilla… …   Deutsch Wikipedia

  • Peter Norvig — ist ein US amerikanischer Wissenschaftler im Bereich Künstliche Intelligenz, Autor und Programmierer. Derzeit arbeitet Norvig als Director of Research bei Google Inc.[1][2] Inhaltsverzeichnis 1 Biographie 2 Literatur …   Deutsch Wikipedia

  • Simon Peyton Jones — Simon Peyton Jones, 2007 Simon Peyton Jones (* 18. Januar 1958 in Südafrika) ist einer der Designer der Programmiersprache Haskell, Ehrenprofessor an der Glasgow University und Entwickler des Glasgow Haskell Compilers (GHC).[1] …   Deutsch Wikipedia

  • Wikipedia:Reference desk/Computing — The Wikipedia Reference Desk covering the topic of computing. Computing #eee #f5f5f5 #eee #aaa #aaa #aaa #00f #36b #000 #00f computing Wikipedia:Reference de …   Wikipedia

  • Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Android (operating system) — Android …   Wikipedia

  • Tom Lane (Open Source Software Developer) — Infobox Scientist name = Tom Lane birth date = birth date|1955|9|18 birth place = Madrid, Spain residence = U.S. nationality = field = Computer Science alma mater = Carnegie Mellon University known for = The Independent JPEG Group (IJG)… …   Wikipedia

  • Brendan Eich — (* 1961 in Pittsburgh, Pennsylvania) ist ein Programmierer und entwickelte LiveScript, einen Vorläufer von JavaScript. Eich ist seit August 2005 Chief Technical Officer der Mozilla Corporation. Biografie Brendan Eich bega …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”