Joseph Weizenbaum makes the point in his "Science and the Compulsive Programmer" chapter of Computer Power and Human Reason, that some programmers are more drawn to the computer than others. These hackers are the compulsive programmers, and they program like compulsive gamblers gamble. Weizenbaum generalizes the characteristics of these individuals superbly:
   Obviously Weizenbaum is describing an individual deep in the throes of technophilia. But is this necessarily a bad thing? Weizenbaum, from his tone, would seem to think so. Others, such as Ellen Ullman, would disagree. Weizenbaum, perhaps, would see the compulsive programmer as having a problem while the so-called professional does not. I, on the other hand, see both programmers as simply having varying degrees of technophilia. Instead of such a sharp binary distinction between the "compulsives" and the "professionals," the situation is more akin to a technophiliac spectrum. While both the programmers described love computers, they obviously do so to varying degrees - that is to say, they lie toward the opposite ends of the spectrum.

If there's one thing I've learned from working with computer programmers, it's that they constantly defie expectations. Just when you thing you've got them figured out they throw you a curveball. Maybe they break down and tell you about the puppy they lost when they were six, or maybe someone who hasn't seemed to obsess over computer science suddenly spends 74 hours straight in the lab, or something equally unexpected. The point is, by defying expectations they also defy being placed into Weizenbaum's neat little buckets. Still, he does come up with some good psychological explanations, although I believe they apply to all coders, not just the "compulsive" ones:
 

 
 I hope from this description that it is easier for some of you to see why programming can be so addictive. To some of you technophilia must seem like an inapropriate term. After all, coding has nothing to do with sex. Let me assure you, at least on the emotional level, it does.



  authored by mip@netspace.org