There’s an interesting list of 10 questions for programmers that a guy named Stiff sent out to some famous programmers. You can read their answers on his blog. You can read my answers here (not that I was asked to provide them).

How did you learn programming? Were any schools of any use? Or maybe you didn’t even bother with ending any schools 🙂 ?

I started learning programming when I was probably 11 years old, on a Commodore 64. I’ve continued to learn more about it off and on since then. I was a Management Information Systems major in college, but I didn’t learn much programming there. Pretty much everything I know is self taught.

What do you think is the most important skill every programmer should posses?

Critical thinking skills. When you’re asked to create something, there are so many more important questions than simply how to implement it most efficiently. Being able to discern whether it’s really needed, why it’s needed, and what kinds of problems implementing it will introduce are keys to staying sane.

Do you think mathematics and/or physics are an important skill for a programmer? Why?

I am by no means a math expert and I get by, so math training is not a necessity. However, some of the greatest and most brilliant programmers I’ve known studied math rather than computer science. I don’t think it’s a coincidence.

What do you think will be the next big thing in computer programming? X-oriented programming, y language, quantum computers, what?

I find myself being more interested in recurring patterns than future development. For example, due to the increasing availability of resources, we saw computer games go from tiny (think Atari 2600 and Apple II) to massive (think projects like World of Warcraft that must have dozens of developers). Over the past few years thanks to the introduction of more powerful mobile phones we’ve seen a market for tiny games emerge again. There are plenty of patterns like this that I find interesting to observe.

If you had three months to learn one relativly new technology, which one would You choose?

It’s not really new, but I would spend it learning JavaScript in order to really grok the AJAX libraries that are proliferating these days.

What do you think makes some programmers 10 or 100 times more productive than others?

They instinctively know the answer to questions that take others hours or days to figure out. I don’t know how someone develops and hones this instinct. Some people are almost certainly born with it.

What are your favourite tools (operating system, programming/scripting language, text editor, version control system, shell, database engine, other tools you can’t live without) and why do you like them more than others?

i do most of my work these days on OS X using Ruby, TextMate, Subversion, bash, and MySQL. I get very passionate about my tools, but not very attached to them. If someone showed me a better tool in any of these categories tomorrow, I’d pick it up with little hesitation.

What is your favourite book related to computer programming?

I’ve read bunches of books on programming. Is it bad that none really stand out in the crowd? I’ve had my programming philosophy changed a lot more by people I read online than by any book I’ve read. A short story that captures everything good about programming is The Story of Mel, a Real Programmer.

What is Your favourite book NOT related to computer programming?

My favorite this year is Bill Bryson’s A Short History of Nearly Everything, which I plan on reviewing in detail at some point.

What are your favourite music bands/performers/compositors?

My tastes are eclectic. See my last.fm profile for some idea.