4 ms·
I'm surprised that Paul Graham likes debugging. I tend to stereotype programmers into two camps: one that likes debugging, one that doesn't. I thought he was
by chubot 12y ago
I'm surprised that Paul Graham likes debugging. I tend to stereotype programmers into two camps: one that likes debugging, one that doesn't. I thought he was part of the latter group.
Some programmers are engineers: they deal with the world as it is -- messy, inconsistent, evolved. They are good at debugging, because they are in tune with how things actually work (not how people SAY they work.) They like trying things before reading about them.
Some programmers are philosophers and mathematicians: they like to consider things from first principles, read a lot, and build up systems in their head. They make huge breakthroughs because they question fundamental assumptions. But sometimes they over-model things and ignore how the world actually works, in favor of "elegant" ideas. They may not like debugging because it is often dealing with other people's broken assumptions (i.e. legacy code), and not any real fundamental idea.
So PG clearly seems to have the philosophical bent and has made breakthroughs. But if he really likes debugging, then that means he comes at programming from BOTH the engineering and philosophical traditions, which probably explains why he's a great programmer. (I just stumbled across a copy of ANSI Common Lisp at work -- looking forward to seeing his style more closely.)
I think to be really good at something, you have to understand it in two different ways. Same goes for being able to write code from scratch (maker perspective) and being able to hack into it (breaker perspective).
Although, I have to say, there is a big difference between debugging your OWN code and other people's code. Not sure if anyone likes debugging typical enterprise code. :)
- Retra 12y agoPerhaps your two camps are just not a very good representation of how programmers actually think?
- staunch 12y agoSome Joe Kraus wisdom i picked up is to always be suspicious of anyone who divides the world into two groups.
- chubot 12y agoThat's why I used the word "stereotyped" at the beginning. And why I said it's possible to have both ways (and multiple ways) of looking at things -- and indeed the best programmers do have both. I do think that most people have an natural disposition toward one way of thinking, and trying the "opposite" way of thinking is a great way to improve.
- Retra 12y agoYou could console yourself in the knowledge that, if one is to divide the world at all, one must first divide it in two. The really trick is to keep dividing, and not get stuck at the first thought you have.
- chubot 12y agoI think it would be more helpful if you actually said what you think, rather than making vague objections to something I didn't say. It would make for a much better conversation.
- Retra 12y agoI'm not objecting to anything you've said. I'm just reflecting on it. I don't think I'm being vague either, just a bit abstract.
- zzzcpan 12y agoIndeed. It does seem strange to have good debugging skills without being that good at building up systems in the head.
- noblethrasher 12y agoYep: http://www.paulgraham.com/hp.html http://www.paulgraham.com/hp.html
- hasenj 12y agoIs this based on MBTI/Jungian personality types? Because it corresponds almost exactly to INTJ vs INTP.
- chubot 12y agoWell, it's just based on my own observations. There's a relationship to Meyers-Brigg, but I don't think it corresponds exactly. I'd bet PG is neither INTP or INTJ; he seems like ENTP. An introvert isn't going to start something like YC where you talk to hundreds of people, and manage hundreds of companies. P vs J or perception vs. judgement doesn't quite characterize it either. I'm specifically talking about a way of approaching the work of programming. A big difference is that MBTI is supposed to apply to the entire population, where I'm just talking about programmers -- less than 1% of people. I think it's possible to describe/categorize the smaller group more accurately.
- hasenj 12y agoYou're talking about NTs :) I'm not talking about P vs J, more like Ti vs Ni Ti-Ne - Approach problems from philosophical first principles Ni-Te - See reality for what it is and bend it to your purposes