Tuesday 2010-09-28

Coders At Work by Peter Seibel

Seibel interviews a bunch of famous programmers. This book should probably accompany a freshman introduction to computer science.

Overengineering seems to be a pet peeve of yours.
-- Seibel commenting to Jamie Zawinski
There was another book -- what was it called? -- about debugging, written by someone from Microsoft. It was about how to use asserts effectively. I remember thinking that was a really good book, not because I learned anything from it, but because it was the book you wish your idiot coworker had read.
-- Jamie Zawinski
I guess I'm mostly dissatisfied with the state of my desktop. It seems like there is a lot of good interesting stuff going on in the back end. But as I'm using my computer I'm more and more frustrated with it. It seems like my mac shouldn't have a beach ball spinning all the time.
-- Brad Fitzpatrick
In my experience, the worst bugs are the real-time bugs, which have to do with interactionas with multiple threads. My approach to those bugs is to avoid making them. So I don't like threads. I think threads are an atrocious programming model. They're an occasionally necessarily (sic) evil, but they're not necessary for most of the things we use threads for.
-- Douglas Crockford
Practical things matter; particulars matter. The famous School of Athens painting with Arisotle pointing down and Plato pointing up -- I'm more on the pointing-down side now. As I get older I get more and more skeptical and more and more interested in what works.
-- Brendan Eich
I heard about a computer science department where in the tutor's office they had a stuffed animal and the rule was you had to explain your problem to the stuffed animal before you could bother the tutor. "OK, Mr. Bear, here's the thing I'm working on and here's my approach -- aha! There it is!"
-- Seibel talking to Joe Armstrong
Things you don't do are difficult and things you've done are easy.
-- Joe Armstrong
Writing is. There's some computer scientist that said, "Oh, if you're no good at English you'll never be a very good programmer."
-- Joe Armstrong, when asked what other skill is valuable to have
So I guess it's two parts. One is to recognize that maybe there is a known solution to this...
And then you have to figure out, how do I find it?
-- Peter Norvig, when asked how do you know what you don't know, arguing for being generally well-read
And if you look at the fairy tales, people want to be able to just think in their minds what they want, wave their hands, and it happens. And of course the fairy tales are fully of cautionary tales where you forgot to cover the edge case and then something bad happens.
-- Guy Steele
I don't think software is fractal. It might be nice if it were but I don't think it is because I don't think we have very good gools for dealing with the things that happen as systems get large. I think the things that happen when systems get large are qualitatively different from the things that happen as systems go from being small to medium size.
-- L Peter Deutsch
Am I just a mean guy? I don't know. But if I'm trying to prove something -- a theorem in mathematics -- instead of proving that it's correct, it's easier for me, usually, to say, "Well, find a counterexample." I can get psyched up to find a hole in this or explain why it doesn't work. And then when I can't find any holes, then I see the proof.
-- Donald Knuth
But now that I know some more, I'm trying to write harder stuff. So I make mistakes bcause I'm always operating at my limit. If I only stay in comfortable territory all the time, that's not so much fun.
-- Donald Knuth
Oh my God, yes. I've got this need to program. I wake up in the morning with sentences of a literate program. Before breakfast -- I'm sure poets must feel this -- I have to go to the computer and write this paragraph and then I can eat and I'm happy. It's a compulsion; that I have to admit.
Donald Knuth