Hi, Peter. Thanks for coming to talk about your book. It looks like it could be fascinating. Were there any things that really surprised you in the process of interviewing all these star coders? Any unexpected themes reveal themselves?
In some ways the biggest surprise was how sometimes these great programmers seemed just like all the other programmers I know. For instance, Ken Thompson is in more ways than one, the prototypical Unix programmer--he's obviously a genius at programming and knows all about stuff in the domain he's done his work (systems programming, computer chess, etc) but when we got onto some other topics (Lisp, for instance) he had a lot of the same prejudices and out-of-date views as "normal" programmers. The biggest exception to this was Guy Steele who really knows and astounding amount about a huge number of topics.
And the most commonly echoed theme was the difficulty of debugging concurrent code. I asked almost everyone about the hardest to track down bug they ever faced and they almost all told me about some sort of concurrency bug, either in multithreaded code or, in a couple cases, in the code of a garbage collector, which is essentially concurrent since the collector and the mutator are interleaved.
Armando Flores Ibarra wrote:Is necessary to be a genius to be like them? Hard work and discipline could make one of us like they are? Is that really possible?
I think that with hard work you can do most of the things. What distinguish these people are the time that they spent in search and study. Normal people tend to procrastinate a lot, don't have focus and frequently waste their time with "unimportant" things.