I came across this post a few months ago at the Learning Lisp blog. While it’s not a perfect description of me, there were enough points in which I saw myself, that I felt it was worth keeping the link around, and finally felt worth re-posting (giving credit where it is due of course).
[Originally posted at: How to Get the Most Out of Your Eccentric Programmer/”Genius”]
I recently posted about a set of programmer personality traits that I’d noticed. At first I thought they were relatively rare, but it seems to me much more prevalent than I’d thought– even the widely read Ruby blogger “raganwald” seemed to admit that he had many of the qualities I was describing. For now we’re going to assume that people like this are not sick even though a subset of the traits may sound superficially like some cases of autism or even schizophrenia. We are also going to completely leave out the question of drugs and ADD/ADHD diagnoses and instead focus on how the environment can be adapted to the programmer– and how people close to the programmer can best take advantage of his inherent nature. A lot of these comments are going to be hit or miss depending on the person, but some of these may be helpful to the extent that the same mental frame of being is at work.
People with this type of personality might not do well in school, but are extremely good at picking out books and managing their own personal training program. They will pick up a rare set of skills on their own just for the fun of it– skills that aren’t or can’t be taught in schools. They aren’t attracted to the field of computing because of the money (though that doesn’t hurt) but are terrified of getting stuck in a job where there’s nothing left to learn. People in other careers speak of a “seven year itch” phenomenon, but these guys have a “two year itch.” These guys will change jobs not so much to get a raise… but to keep from getting bored.
As far as dating and relationships go, women should be careful with this guy. When you first meet, you will become his “pet project” for a time. When he’s finally solved all of the problems (as it were) he’ll be ready to move on to another project– probably something really abstract that you don’t care about and can’t relate to. He’ll be shocked when you have no desire to support his new project and won’t understand why you’re so hurt. More than anything else, he’ll need to feel that you accept him in spite of this change. If you can’t deal with this transition and don’t want to support him in his constantly changing obsessions, then the relationship can’t work. If you are dating someone like this, make sure you extend the “courtship” phase to double what would make sense for any other couple. Make sure you can deal with the changing dynamic of the relationship before you make things permanent by “tying the knot”.
The thing is, most people really never think. At least, the concept of what thinking is to this programmer is radically different from that of “regular” people. Most people just go to work, do the same old thing, and go home. When they leave work, they leave work at work and go do something totally different. Our programmer guy can’t seem to *stop* thinking. If he’s trying to solve something difficult, he will not stop as long as he’s inspired. He can go on a date and hardly hear a thing his girlfriend wants to talk about. If there’s a lull in the conversation, his brain will drift back into his project. His obsession is like a force of gravity. He can’t just turn it on and off. He’s afraid that he’ll never get his train of thought back– if he changes gears he may never get back to it and all his effort will be lost. Alternately, the effort of getting back in gear so many times in a week or two will gradually wear him down until he’s exhausted, depressed, or worse.
People recognize this dynamic with introverts and extroverts. It’s not about someone being shy or not being talkative– it’s about whether being in a group of people in a “social” situation is energizing or energy sapping. For this guy, changing mental contexts is really draining– even more draining than having to be around people. People don’t tend to hold this sort of thing against introverts. Our programmer friend probably doesn’t even know the difference, though. He looks at those social situations and doesn’t see how they connect to his current stable of pet projects. If he’s unable to see a means of connecting the social situation to one of his obsessions, he’ll get antsy and nervous. He might even get a bizarre pit of dread welling up in his stomach at the very thought of attending such a party.
His thinking style is really more akin to the Sanford Meisner method acting school than it is to anything else. He gets into a problem space the way they “get into character.” And he truly *inhabits* the problem space. He literally organizes his brain into a model of the problem. He spends enormous amounts of effort to adapt his tools to his personal approach of thinking. He can’t discuss data or requirements verbally– he has to put it into something like Microsoft Access and sit there with a couple of key people looking over his shoulder. (Access is highly visual… and he can “feel his way” around complicated sets of data with it without explicitly thinking about what he’s doing.) Similarly, a Unix type prompt gives him god-like powers: he is everywhere in the system at once and can operate on just about any file without having to dig through an overwhelming number of screens and applications. Yes he’s highly visual in his learning style, but he’ll do everything he can from within something like Emacs if he can get away with it because changing context between a dozen mediocre visual IDE’s based on different idioms will sap his will to live– particularly if any of them are poorly designed.
This guy operates on raw intuition, but this doesn’t mean he’s illogical. In fact, this if this guy hears anything when listening to something, it’s the chain of reason. He has a hard time with religious and political groups because he winces at the slightest mismatch in logic in what’s said at the podium or in the pulpit. And he never stops thinking about the big picture and how it relates back to the official rhetoric. He might be attracted to the tidy consistency of ideologies such as Calvinism or Libertarianism, but he can end up in virtually anywhere depending on the makeup of his mental furniture and values. Wherever he is, he’s liable to be extremely hard on the leadership. This guy reads between the lines of every single pronouncement: subtle nuances of timing, the juxtaposition of topics, and even of what gets left out speak volumes to him. After any meeting he’s liable to be hashing out the implications of it with someone and fretting over some perceived crisis.
Groups need to be very wary of this individual. He can be their most zealous defender and just as quickly go to being their most ardent nemesis. To forestall this, all you have to do is clean up your rhetoric a little. To most people, “it’s just words”… but this guy spends so much time in his own head, he doesn’t really differentiate between ideas and reality. Ideas *are* reality to this guy! You don’t have to give away the farm or anything– you just have to acknowledge that the guy has a point. He *needs* quiet talks to reassure him that he’s not crazy. He understands the need for compromise or specialization… but you need to be up front and clear about what you’re sacrificing or you’re nothing but a used car salesman to him.
This guy is full of mystifying contradictions. He’s an introvert, but you might see him talking and engaging all sorts of people. He swings from being incredibly intimate to being incredibly distant. He ignores entire swaths of details as being someone elses problem, but will go out and solve the most random things that no one has even asked him to work on. What’s going on with this? At work, he might not even talk to a certain strata of people. But after doing some small task for them he might start dropping in to check on them and make sure they’re still happy. Over time, he’ll end up “walking a beat” and touching base with all sorts of people he’s worked with. (In college, he probably had friends from several contradictory “cliques.”) If people start causing disruptions near his desk, he’s liable to get up and make a round in spite of whatever he’s supposed to be working on. Random people will confide in this guy… and he’ll often take back his impressions from these talks and apply them to his secret projects.
But he loves doing favors for people. People just have to be able to communicate a little, have a finite self-contained need, and not send him on too many wild goose chases in the process. The tasks can be anything– he just needs a chance to show off his “super powers” and look smart. And he genuinely does care about people. Due to his agonizing experiences in school and his hatred of bad interfaces, he really is serious about doing what he can to make people’s job’s better. With a few of these sorts of favors under his belt, he can relate to just about anyone. But without these experiences to ground him and set the tone, he’s often at a loss what to do or say. He’s just lost. (This is part of why he has no understanding of “regular” social activities.) Traditional “ice breaker” exercises mean nothing to this person. The way to get him to “bond” with people is to make his skills relevant somehow to a single individual: it has to be ‘real’, there’s almost no other way around this. Remember, this guy’s mental furniture is completely given over to one of a half dozen secret schemes. The only way to make a person “real” to him is to get them lounging around in that furniture occasionally.
Finally, this guy often doesn’t know what he’s thinking or feeling about things. His girlfriend will often know *hours* before he does. He’s capable of writing incredibly detailed blog posts about a topic and then look at it when he’s done and then be shocked that such ideas were even brewing in the back of his head. This is a big part of what causes his procrastination. He’s always thinking about every single angle of a problem, but he’s not fully conscious of such thoughts until he’s engaged in a specific task. His subconscious mind will often drag him down if it thinks that the task at hand isn’t “real”, won’t truly be appreciated or recognized, or if the people that are asking for it aren’t serious or don’t truly know what they want. If he’s got an idea about something, he’s often better off to strike while the iron is hot. And if he seems to want to work on something else, he’ll often pick up the random unverbalized things he needed in order to “unstuck” himself on some of his other tasks that he was hung up on. Yes, he often finds out what he’s thinking by doing something totally different than what’s required! This is why handing over to some other micromanager the authority of order his to-do list is dangerous: there are a lot more dependencies and variables than what anyone else will see or care about, but that are critically important to our programmer/”genius”. This is also why he doesn’t tend to take initiative to deal with things when he starts to slide off track– he’s almost unable to pin down what’s really bothering him at any given time.
In an ideal world, he’d have “Joan June Cleaver” at home taking care of all the annoying details of life. He’d have someone to check him each morning to make sure he has dressed himself properly and hasn’t forgotten his lunch. Socially, he’d be expected to do no more than “show up” to certain key events. He’d have an accountant take care of his personal finances, and a secretary to make sure he didn’t blow off key tasks and meetings. In education, he’d be mentored, not schooled. At work, he’d be steered, not “managed”. At least once a year, he’d have the chance to work on a two-month project that he prototypes and architects him self– a project where he gets to learn a new language or technique while filling a specific unmet niche. He’d have confidants and cheerleaders… and informal “rap session” type meetings where he has the chance to think out loud and be appreciated as the “genius” that he is and the chance to do brief “show and tell” demos of his bizarre accomplishments. In a perfect world, he’d be accepted as he was and not expected to dope himself up or suppress his personality in order to fit in to whatever lame routine or tradition that’s evolved for everyone else.