I’ve been observing an unusual programmer friend of mine for some time now. (Yeah… a “friend”, that’s it….) He has such a strange combination of potential and incompetence that its hard to tell if he is just lazy or if he has a “light” form of autism or some other disorder. I try to avoid “easy” pop-psychology terms when discussing him, but try to be as specific as possible when listing his qualities:
* Inability to absorb too many details verbally. Extreme learn-by-doing and learn-by-example learning style. If in a class situation, tends to need to engage somehow by asking questions and relating material back to other experiences– seen as disruptive by “normal” people. If asked to work on something concurrently with the lecture, will focus so much on the task at hand that he won’t catch additional instructions that were not presented in the main– and he’ll often ask the exact question that the teacher just answered.
* Inability to multi-task. If you tell him to do three things, he’ll do one really well, misinterpret what you meant by the second, and completely forget about the third. If you need a quick favor, your best bet is to tell him you really need it and then stand right there until it’s done for the three minutes or so that it takes. (Think Butterbur from Lord of the Rings: “One thing drives out another!”) Tends to have a “tell me what to do, but don’t tell me how” attitude. His theme song is “I Did it My Way.” He hates phones and prefers emails.
* Inability to manage or even to “see” certain classes of “mundane” details. (Knowing what to eat from the fridge and when; strong aversion to balancing a checkbook or going through a stack of bills. When cleaning the kitchen, only certain zones get attention; practically unable to get every last dirty dish to the sink– sorta need someone to help by putting the dirty dishes in the sink so they’re all identified.)
* Inability to organize. (Cleaning method: put everything that doesn’t have an obvious place into one or more miscellaneous boxes. Once a year throw out most of the boxes when the contents are “stale” enough. Paperwork management technique: accrue random papers. Act on the most urgent and throw them away. Periodically clean off desk by boxing up the remaining papers and throwing them all away when they get sufficiently “stale”.)
* Capable of working through entire books of information; does especially well with brief descriptions/examples followed by exercises. Capable of working for extended periods of time. Capable of relating the information to other experiences/activities in creative ways. A strong “visionary” streak. Good in brainstorming sessions. A strong focus on the implications of new ideas/frameworks/strategies. Can do a great deal on his own, but will often miss key techniques due to his “detail blindness” and lack of thoroughness– he relies on common sense, inspiration, and brute force in order to keep up with “normal people.”
* Capable of coming up with pretty good project ideas on his own, but does not take on projects for the purposes of finishing them– he’s mainly interested in projects as a means of mastering a skill or proving a point. Worried about “being ready” for a time when the skill/idea will be needed in a “real” situation. Very lazy in the mathematical/programmer sense– will spend incredible amounts of time to get something “right” so that “work will be saved later”. There’s generally not a net gain in time saved, but if a set of details is dealt with well enough, they no longer have to be bothered with– freeing up a great deal of mental capacity for this person!
* While he can’t absorb details verbally, he has an unusual degree of empathy. He can view things from other peoples perspectives somehow unlike the usual “arrogant programmer geek.” He also has a sense of timing, flow, balance… some sort of artistic flair that shows up occasionally. Stereotypical “top notch” analytical problem solvers tend to lack these qualities.
* Faults tend not to show up terribly badly unless he’s put in a situation where his weaknesses are key to the task at hand. In order to excel in one sphere, he will often sacrifice another– it’s as if there’s only so much “detail” stress/worry his brain can handle and it just shuts down after a certain point. Faults become obvious when there ceases to be a reserve he can “steal” from in order to fuel his efforts in other areas. The structure of school covered up his problems for many years– his worst failures were viewed as “slacker” laziness. The fact that most classes were over in a few months meant he could just move on before things could come to a serious crisis. It’s only in long term situations where his personality really starts to have obvious detrimental effects on things.
* If he can team up with a solid detail oriented checklist/calendar type person, he can be an awesome supplement to a team or company. This doesn’t always pan out due to personalities and politics, but when “the stars are aligned” things can really hum.
Is this guy sick? Looking at it myself, I tend to think “irresponsible.” At the same time, it seems to take him enormous amounts of willpower to do ordinary things. Should he content himself to finding a niche where his problems aren’t as relevant, or should he try to fix this? Are there drugs to fix this, or is he just naturally a square peg in a round hole that walks to the beat of a different drummer, etc etc? Will fixing this sacrifice his creativity? Do you know of any other programmers like this and what they did to cope with their weirdness?