The Count and his fucking LF
June 18, 2014 8:22 AM   Subscribe

Coder's High. Metafilter's own David Auerbach, who says he's now a former programmer, describes a satori-like absorption that comes only from things like debugging.
posted by grobstein (70 comments total) 21 users marked this as a favorite
 
MiFi High: the search for the perfect snark.
posted by sammyo at 8:32 AM on June 18, 2014 [4 favorites]


Slate (and Auerbach) rediscover flow?
posted by aught at 8:34 AM on June 18, 2014 [8 favorites]


...a satori-like absorption that comes only from things like debugging.

Well, that and the all the other high-focus activities people have been engaging in for thousands of years, long before coders walked the Earth.
posted by Thorzdad at 8:40 AM on June 18, 2014 [24 favorites]


The next time he looked up from the screen, he was surprised that it was still light out, since he thought he’d been working well into the evening. It was actually the next morning.

Heh. Only from programming ?

Dude, I've done that working in the garage, or playing Civilizations - to name two recent examples.
posted by Pogo_Fuzzybutt at 8:41 AM on June 18, 2014 [1 favorite]


The code trance can be heaven or hell, depending if you are creating line after line without needing to test, or unable to find a bug that threatens to prove you are a fake who was never meant to be a coder.
posted by stbalbach at 8:44 AM on June 18, 2014 [31 favorites]


Yeah - I don't think this is coding specific so much as for lack of a better term process specific
posted by JPD at 8:46 AM on June 18, 2014


Tedious frame by frame video editing does this for me. I find it to be very meditative.
posted by The Whelk at 8:46 AM on June 18, 2014 [2 favorites]


Seconding aught. Flow isn't exactly new. Anything that produces intense concentration at a task at hand, wherein you lose your sense of time (rock climbing, painting, surfing, etc.) can give you a similar result. Also Ritalin and Provigil.
posted by leotrotsky at 8:47 AM on June 18, 2014 [5 favorites]


A good explanation of the exhilarating process of intensive code work! For me, though, that kind of "high" is a major reason why I need actual meditative absorption—for balance. Because though they have certain common elements, they're also vastly different. Here's a quote from an old sermon by Soyen Shaku (my emphasis):
The practice of dhyâna is often confounded with a trance or self-hypnotism,--a grave error which I here propose to refute. The difference between the two is patent to every clear-sighted mind, for a trance is a pathological disturbance of consciousness, while dhyâna is a perfectly normal state of it. [...] And it is in this perfect mirror of consciousness that myriads of reflections, as it were, come and go without ever disturbing its serenity. In trances certain mental and physiological functions are unduly accelerated, while others are kept altogether in abeyance, the whole system of consciousness thus being thrown into disorder; and its outcome is the loss of equilibrium in the organism--which is very opposite to what is attained through the practice of dhyâna.

[...]

A man will never realize, until he is thoroughly trained in dhyâna, how confused and entangled his thoughts are, how susceptible he is and how easily his mind is unbalanced, how soon his nervous force in reserve is exhausted and his entire system is given up to an utter breakdown, how fully his senses are occupied in seeking excitement and gratification, and finally how neglectful he has been in the promotion of higher and nobler interests of life and in the cultivation of refined thoughts and purer feelings. Dhyâna, therefore, whatever its religious merits, is not devoid of its practical utilities and even for this reason alone its exercise is universally to be recommended.
Coding is usually not an experience of tranquility, serenity, equanimity, bliss, etc. It can be extremely interesting, absorbing, stimulating, etc. But for me at least, it's not "redemptive" in the way that meditation, manual labor, exercise, and so on, can be. I think that's what the final paragraph is trying to get at.

Coding bonanzas are exhausting. Coders burn out. Many coders are depressed, anxious, fried. Just today there were large threads about suicide on both Hacker News and the subreddit about programming. There are brave people in the programming community who are talking about it; Greg Baugues is doing very good things, just to name one example.
Software development is a good place for people with depression and bipolar. It accepts the socially isolated. It accommodates irregular sleep patterns and inconsistent bursts of productivity. It seeks those with the grandiosity to believe that they can solve problems others can’t, and exalts the ones crazy enough to believe that they can change the world.

If one in six of the general population suffers from depression, my guess is it’s one in four developers.
Perhaps this also applies to writers. As a programmer with a vague aspiration to be a writer, I feel like my creative endeavors, in code and prose, are linked to a mental buzz that sometimes feels almost schizoid.

The drug metaphor in the title and subtitle seems significant in a way that the text of the article conceals.
posted by mbrock at 8:48 AM on June 18, 2014 [15 favorites]


Slate (and Auerbach) rediscover flow?

Fourth paragraph:

There’s a lot of talk about these kind of trancelike “flow” states of total absorption. I’m not convinced that they’re all the same, and for me, the coder’s high is qualitatively different from anything else I’ve experienced.
posted by effbot at 8:53 AM on June 18, 2014 [1 favorite]


hnnngh. This makes me want to refactor something.
posted by boo_radley at 8:55 AM on June 18, 2014 [4 favorites]


For every beautifully elegant line of code there are a thousand awful kluged together hacks and kluges born of these fever dreams that are incomprehensible to anyone but their creator.
posted by usonian at 8:55 AM on June 18, 2014 [7 favorites]


For every beautifully elegant line of code there are a thousand awful kluged together hacks and kluges born of these fever dreams that are incomprehensible to anyone but their creator.

And not even to their creator three days later...
posted by Zed at 9:03 AM on June 18, 2014 [14 favorites]


usonian: "For every beautifully elegant line of code there are a thousand awful kluged together hacks and kluges born of these fever dreams that are incomprehensible to anyone but their creator."

these are tiny geodes of potential, waiting for the moment when a developer can apply the needed mind brain exertations to unlock the beauty within.
posted by boo_radley at 9:05 AM on June 18, 2014 [1 favorite]


or pearls, or something. What's that thing that ducks do? Probably like that.
posted by boo_radley at 9:06 AM on June 18, 2014 [1 favorite]


I personally avoid duck because I've almost broken my teeth so many times chomping down on duck-pearls.
posted by Pyry at 9:09 AM on June 18, 2014


Why are programmers tirelessly driven to expound on why they and their subject matter are just the most special little snowflakes evar?
posted by Steely-eyed Missile Man at 9:10 AM on June 18, 2014 [6 favorites]


Others do about their fields, too. You could say programmers aren't special in this regard.
posted by iotic at 9:12 AM on June 18, 2014 [6 favorites]


If I took every literary fiction novel that featured a protagonist who was an author, I could make a pretty sweet book-fort.
posted by Pyry at 9:14 AM on June 18, 2014 [19 favorites]


What is the goddamned deal with bullying people for thinking that they're "special snowflakes?" I'm just going to grab the pendulum and swing it right back. We are all special snowflakes. We all have the right to write about our lives as if they were interesting and meaningful. Because they are. Programming is work. People should write about their work and how it affects them. Because that's important.
posted by mbrock at 9:14 AM on June 18, 2014 [59 favorites]


I’m not convinced that they’re all the same, and for me, the coder’s high is qualitatively different from anything else I’ve experienced.

I'd call personal exceptionalism here. I experience high focus states when I'm absorbed in a task, including debugging. For me flow is flow, whether programming, long-distance cycling, gaming or writing. There is no differentiation of experience by activity.

Flow, while fun, is a pain in the ass sometimes. It caused my grandfather to leave a car at a conference once (he come home by train), it made interacting with my mom hard as a teenager (though we used that for advantage to get "permission" to use the car when she wasn't paying attention), it now makes me late for dinner and keeps me up to all hours in the morning.
posted by bonehead at 9:15 AM on June 18, 2014 [3 favorites]


Slate (and Auerbach) rediscover flow?

Fourth paragraph:

There’s a lot of talk about these kind of trancelike “flow” states of total absorption. I’m not convinced that they’re all the same, and for me, the coder’s high is qualitatively different from anything else I’ve experienced.

effbot

Yeah, he says that, but that just hammers home why this is such bullshit. He himself has never experienced other forms of this "high", so he dismisses them (e.g., creative high is just a "drug-induced stupor").

Ask anyone who practices an art or profession that requires intense concentration, from carpentry to surfing, know this feeling. A stone mason 3000 years ago could tell you about this feeling.

Programmers can be pretty insufferable when they get into their "we are logical super geniuses doing that which man has never done before" routine.
posted by Sangermaine at 9:16 AM on June 18, 2014 [9 favorites]


Steely-eyed Missile Man: "Why are programmers tirelessly driven to expound on why they and their subject matter are just the most special little snowflakes evar?"

ugh what is with people trying to understand the world around them and trying to make sense of anything and their perceptions and how that attempt to understand could influence and color that understanding why don't people just lay down and die its all so horrible
posted by boo_radley at 9:20 AM on June 18, 2014 [15 favorites]


Sangermaine: "
Programmers can be pretty insufferable when they get into their "we are logical super geniuses doing that which man has never done before" routine.
"

but then we watch that mensa episode of the Simpsons and we calm down a little.
posted by boo_radley at 9:20 AM on June 18, 2014


Human history up 'til this point was basically a preamble. From man who thinks to man who codes.
posted by 2bucksplus at 9:22 AM on June 18, 2014 [2 favorites]


I’m not convinced that they’re all the same, and for me, the coder’s high is qualitatively different from anything else I’ve experienced.

Sure, and yet all his descriptions of what he is talking about sound like flow to me.
posted by aught at 9:26 AM on June 18, 2014


I'm a programmer and I'm an artist, and I have had the same trance-like state while engaging in both activities. This dude is a world-class bloviator with a minor in snobbery.
posted by grumpybear69 at 9:29 AM on June 18, 2014 [5 favorites]


I was a coder before I was a writer (well, professionally - the two have always been there). I've segued from blackbirds in the evening to sparrows in the morning without noticing the owls inbetween, doing both things - and doing variations of both things, writing afresh and editing; coding and debugging. I've also been there building and fixing electronic hardware.

Same thing. Perhaps exercising different skills, to an extent, but it's the same state of consciousness. There are also connections to the psychedelic states of no-ego and timelessness, although awareness of state is different there, and certain other conditions of absorption and hyper-awareness that do not involve creativity but more openness to perception.

That these things have differences and are in the same class, I don't doublt, at least in my experiences. That the original article is describing something different, I do doubt - but nobody's mind is the same...
posted by Devonian at 9:29 AM on June 18, 2014 [1 favorite]


Sangermaine: Yeah, he says that, but that just hammers home why this is such bullshit. He himself has never experienced other forms of this "high", so he dismisses them (e.g., creative high is just a "drug-induced stupor").

Given that the author is a former programmer who is now a professional writer, and claims to have experienced the state of flow in several different contexts, including writing, why is it so clear that his impression that they are qualitatively different is invalid?
posted by felixc at 9:31 AM on June 18, 2014 [1 favorite]


I'm a programmer - I don't think there's anything "qualitatively different" in my experience. I have noticed as I get older that it gets harder to attain & maintain that level of full concentration when coding, that's for sure. Thoughts like maybe I should go get some ice cream tend to infiltrate my defences more easily.
posted by parki at 9:34 AM on June 18, 2014 [5 favorites]


Given that the author is a former programmer who is now a professional writer, and claims to have experienced the state of flow in several different contexts, including writing, why is it so clear that his impression that they are qualitatively different invalid?

Because as many have noted, this exact same "high" is experienced in all sorts of areas. There is no difference beyond the fact that he himself hasn't experienced it in other areas. His casual dismissal of all of that is insulting and self-centered.

Either all these other artists and craftsmen and individuals in a variety of fields are mistaken, or he just doesn't know what he's talking about beyond his own narrow experience.
posted by Sangermaine at 9:36 AM on June 18, 2014 [2 favorites]


Actually the essay makes several arguments for why this high is not the same as all other highs. Counterargue if you like.
posted by LogicalDash at 9:38 AM on June 18, 2014


It’s not as real, it’s not as addictive, and it’s not as perfect. Or rather, it doesn’t have that promise of perfection (especially not writing), since the trance deceptively transports you to a perfect, orderly world of algorithms and code that the end result never quite matches...
I think the difference he's noting is simply engagement. He finds it easier to engage in debugging, principally, and less so by the other activities he mentions. Some can drop into this state easily, but many struggle. The details of the activity, one's level of interest, the ability to deal with context or task switching (as writing often requires, for example), all interfere with "flow".

I certainly have trouble getting in the zone for passive, consumptive tasks as well. For me, however, physical activity is a strong trigger, as is analytical thinking. I think what this says about the author is that he has discovered a particular path up his mountain which is easy, while other approaches may be steeper.
posted by bonehead at 9:43 AM on June 18, 2014 [3 favorites]


Sangermaine: Because as many have noted, this exact same "high" is experienced in all sorts of areas. There is no difference beyond the fact that he himself hasn't experienced it in other areas.

But how do you know that he hasn't? He certainly believes he's achieved flow in other areas, and that it was different. In the essay, he tries to describe the ways in which it differed. Why is he wrong, other than that you strongly believe he must be?

For what it's worth, I'm also a software developer, and I'm not really convinced by his claim either. I'm just not seeing the basis for believing that he must necessarily be wrong. My experiences of flow in different fields were certainly different, but I wouldn't claim that they were any more or less intense or productive.

My confusion really does just stem from people responding to this like it's self-evident that there's no truth to what he's saying, when I'm just not seeing why that's self-evident.
posted by felixc at 9:43 AM on June 18, 2014 [1 favorite]


I recently attended a talk by the authors of The Rise of Superman, a book about flow. The talk was pretty good, but I haven't read the book. One of the authors summarized the factors that help create flow in an article. I find it helpful to keep these factors in mind when getting ready for an extended work session, programming or otherwise.
posted by Triplanetary at 9:43 AM on June 18, 2014 [1 favorite]


Yup. I went into mathematics research to get my fix at higher doses, but now detoxing and going back to just programming and data science work. :P
posted by jeffburdges at 9:43 AM on June 18, 2014 [2 favorites]


I wonder what a brogrammer high is like.
posted by oceanjesse at 9:44 AM on June 18, 2014 [1 favorite]


I agree that the part about "creative trances" is poorly written. I think the main point is that coding provides quick objective feedback: does it compile and work? In this way it's less open-ended than, say, writing poetry or fiction. Because you're working with (or against) a very strict machine. That's a qualitative difference.
Or rather, it doesn’t have that promise of perfection (especially not writing), since the trance deceptively transports you to a perfect, orderly world of algorithms and code that the end result never quite matches—as consumers know too well.

[...]

But coding regulates that trance by linking it to an ongoing process of production and goal-directed achievement. Perhaps that is one of its most compelling qualities. Not only do you have the momentary high of total absorption, but it works in tandem with an exciting quest mentality, in which one is hunting perfection. “Coding” isn’t just sitting down and churning out code. There’s a fair amount of that, but it’s complemented by large chunks of testing and debugging, where you put your code through its paces and see where it breaks, then chase down the clues to figure out what went wrong. Sometimes you spend a long time in one phase or another of this cycle, but especially as you near completion, the cycle tightens—and becomes more addictive. You’re boosted by the tight feedback cycle of coding, compiling, testing, and debugging, and each stage pretty much demands the next without delay. You write a feature, you want to see if it works. You test it, it breaks. It breaks, you want to fix it. You fix it, you want to build the next piece. And so on, with the tantalizing possibility of—just maybe!—a perfect piece of code gesturing at you in the distance.
Maybe this is quite comparable to other kinds of "flow." If so, I'd love to hear about it! In my experience, it's very different from writing essays, playing guitar, baking, cooking, conversing, biking, and reading. Of course it's different.

I really, really doubt that the motive of this text is to elevate programming as superior to any other craft. Maybe it has a kind of celebratory tone. He's trying to describe it as an addictive drug.
Still, when I’m fruitlessly racking my brains over the last line of a column in search of le mot juste, I look at my programmer friends, typing away in a focused trance, and feel both nostalgia and envy.
posted by mbrock at 9:44 AM on June 18, 2014 [2 favorites]


"I think the main point is that coding provides quick objective feedback: does it compile and work? In this way it's less open-ended than, say, writing poetry or fiction. Because you're working with (or against) a very strict machine. That's a qualitative difference."

But you have an immediate response in the writing as well (perhaps even faster - as you don't even have to write that line, but merely think of writing it and you'll have a sense of how it will 'work'), and then there's all kinds of physical activities which have immediate feedback. As a software engineer and avid (accomplished-ish) skier, I can assure you I have much faster feedback carving turn after turn than writing, compiling, and then running software.
posted by combinatorial explosion at 9:54 AM on June 18, 2014


oceanjesse: "I wonder what a brogrammer high is like."

writing a new javascript framework == bath salts.
posted by boo_radley at 9:54 AM on June 18, 2014 [8 favorites]


Code may be buggy, it may need serious overhaul later, but it compiles, it works (more or less), and it’s the same outside the trance as inside the trance.

I'd say that buggy code isn't the same outside the trance as it is inside; like a bad poem or poorly made furniture, outside the trance, it is objectively bad. But because it sort-of works, we publish/use it anyway.
posted by Monday, stony Monday at 10:07 AM on June 18, 2014 [1 favorite]


Coding bonanzas are exhausting. Coders burn out. Many coders are depressed, anxious, fried.

That's because of the pressure from the business end of things, not the coding itself, imho. Writing a nice piece of code can be a real joy if you don't have folks bearing down on you about it.
posted by DarkForest at 10:10 AM on June 18, 2014 [4 favorites]


I wonder what a brogrammer high is like.

Like huffing Axe.
posted by Celsius1414 at 10:14 AM on June 18, 2014


I don't want to derail this thread, because these sorts of states are interesting phenomena. It just sort of makes me sad that this kind of "flow" is sort of being venerated implicitly in the context of semi-assigned work for an employer. "Flow" inside handed-down boxes.

I want to harness these states in the service of my own goals and aspirations and also use them to make the world a better place. Like, let's deliberately construct our own conditions to facilitate flow in the service of what we care about...
posted by zeek321 at 10:16 AM on June 18, 2014 [5 favorites]


There’s a fair amount of that, but it’s complemented by large chunks of testing and debugging, where you put your code through its paces and see where it breaks, then chase down the clues to figure out what went wrong. Sometimes you spend a long time in one phase or another of this cycle, but especially as you near completion, the cycle tightens—and becomes more addictive. You’re boosted by the tight feedback cycle of coding, compiling, testing, and debugging, and each stage pretty much demands the next without delay. You write a feature, you want to see if it works. You test it, it breaks. It breaks, you want to fix it. You fix it, you want to build the next piece. And so on, with the tantalizing possibility of—just maybe!—a perfect piece of code gesturing at you in the distance.

I've never written perfect code nor perfect prose, but that iterative process of aiming for an improbable goal, chunking down, trying something, seeing it in place and in context, going back and redoing it, backing out and going back in, but with an accelerating cadence as more starts to work and thus the whole starts to converge faster and easier... well, yes, on a very good day that's how a chapter of a novel comes out. (Less so with factual essays, which I find much easier than fiction but then they're doing a much simpler job and, you know, deadlines...)

In both cases, you're somewhere else. In code, you're feeding your internal compiler with the sequence of constructs that best model what you want to happen to the target system, the big picture that - for that time - you can hold in your head both in general and in detail. In fiction, you're describing as simply and effectively as possible through a sequence of constructs what's going on the narrative .That narrative has to induce in the reader the pictures in your head and the characters you inhabit. You have to model the entire chain between big-picture-in-your-head through to big-picture-in-target-system in both cases. In coding, you have more machine support for correctness checking, but the similarities are striking.

There's a reason they're called computer languages, after all.
posted by Devonian at 10:17 AM on June 18, 2014 [3 favorites]


DarkForest, yeah, that's a big part of it. Maybe I'm just speaking out of some kind of burnout, because I basically started loathing computers in general right after I got into the CS program, and now I feel like the time spent writing nice pieces of code, regardless of whether I'm working on open source, a hobby project, or wage work, is outshadowed by the time I spend fighting frameworks, conflicts, library problems, bugs, poor design, "legacy" code (how we've denigrated that beautiful word), and so on ad nauseum.

My friend who's not a programmer by any stretch of the imagination wrote a song with the lyric "every time I've tried for something big, I've stumbled on something small," and that's me every time I do some hobby coding. Like, when it's been half a year since I tried it, and I figure, this little thing should be pleasant to work on, and it is at first, when defining the essential data types and algorithms, but then without fail I run into some idiosyncratic bullshit issue that just makes me want to punch something.

We coders use the expression "the real world" to designate the incredible mess of kludges, layers of bureaucracy, possibility for failure, etc etc, that inevitably crushes our dreams of elegance.
posted by mbrock at 10:18 AM on June 18, 2014 [2 favorites]


I appreciated the article as good food for thought, but it didn't satisfactorily address some of the questions that came up for me. In no particular order:
  • Is there something fundamentally different about the feedback cycle he describes that other disciplines don't have? (i.e. "coding, compiling, testing, and debugging"?)
  • I'm not a "serious" programmer, but I've done enough to understand the mindset. From a subjective viewpoint, I would say other activities that have triggered a similar "flow" state for me have been: composing music, building a garden fence and writing (there are other times I'm sure). He mentions the fact that the fact that programs either work or they don't (compiling) and that this is a distinguishing factor. It's objective, whereas other things are not. But is that really the case? What about the garden fence I built? You could say that "works" in the same way a program does. It either stands up or it doesn't. So is it because programming is virtual that somehow makes a difference?
I have no answers here either, but it did make me think about the questions!

posted by jeremias at 10:21 AM on June 18, 2014


It does seem a little odd that a person would so fiercely advocate for the superiority of one specific alteration of the subjective experience of consciousness over another. There are so many varieties of this.

I work with a lot of people who routinely enter different kinds of perceptual distortion: dissociation, intolerable somatization, psychosis, paranoia, toxidromal and pre- and post-seizure states. Occasionally frank catatonia that can last for days. Some say they have more conscious control over their initiation, others seem to have less. For some of them, they experience uncontrolled alterations and switches many times a day, whereas for others the alteration can last for days or even weeks and is unremitting. And I see a few who routinely induce states of detached equipoise with evenly hovering attention. Many of the Hindu and eastern religions have a great diversity of nomenclature and hierarchy for individual gradations of this kind of self-induced alteration.

Many of them, for individual reasons that run a gamut from narcissism to insecurity, will advocate either for the primacy or the inferiority of their particular alteration. I've observed that a person's affective response to an non-self-induced alteration that turns out to be maladaptive for their specific environmental situation often seems to depend in great part upon temperament and early attachment style and the history of the family response to distress signs.
posted by meehawl at 10:22 AM on June 18, 2014 [3 favorites]


The writer speaks about experiencing burnout, and I suspect a certain amount of romanticism on his part as a result of not being able to work as a coder any more. It can certainly be an engaging and absorbing activity, but only if it's an activity you enjoy to some degree.

I know from my own experience of having a breakdown after 20 years in the job (coding wasn't the only factor, but it was an important one) that it's something I missed, even though I could never contemplate going back to it as a career again.

The good news is that it's still proved possible to indulge myself in coding as a hobby; in my case I dip in and out of messing with the Android operating system to make my phones and tablets behave as I want them to.

I don't experience burnout doing that, but I can pick it up and put it down as I choose. DarkForest summarised it nicely above ...

That's because of the pressure from the business end of things, not the coding itself, imho.

That's certainly how I feel about it. Endlessly idiotic deadlines as a result of hugely over-optimistic estimation takes a big toll which is not in my opinion connected to the activity of coding itself.
posted by walrus at 10:24 AM on June 18, 2014 [1 favorite]


Hang on a sec... I need to kick this off before writing a comment...


$ make test-rpuzfasf
cd t; \
prove --verbose rpuzfasf-*.t 2>&1
rpuzfasf-00.db-reset.t .........
$dbh connected

posted by mikelieman at 10:24 AM on June 18, 2014 [1 favorite]


I'm not much of a programmer.

What this most reminds me of is: spending hours and hours and hours on math problems (sometimes but not always ones with programming components).

I don't have a strong introspective sense of what it feels like to do this.

Perhaps this introspective opacity is an important clue -- usual forms of self-awareness and self-monitoring seem to be less active. It's interesting that the article mostly describes the state as a kind of feeling, something you consciously experience. Perhaps it is more accurate to describe it as a narrowing of feeling, a changing of the scope of what you consciously experience.

If introspection can't do the job, perhaps some heterophenomenological observations:
-- Diminished sensitivity to "outside" stimuli. Auerbach describes a co-worker who coded, undisturbed, through loud conversation including her own name.
-- Heightened focus / diminished distractibility. In most tasks, I often procrastinate, becoming distracted by other activities. This needn't be prompted by anything in the environment -- if I am writing, I may spontaneously click over to Facebook for no reason. If I am trying to prove something, or debugging something, it seems that the hours just fly by. I skip breaks, I skip meals. I wish I could bring this sort of focus to other activities.
-- There are often natural metrics for progress and success. On a problem set, your goal is to solve each problem and move on to the next. In programming, you are trying to compile and get the specified functionality.
posted by grobstein at 10:26 AM on June 18, 2014 [2 favorites]


It's not a high. Not it in any way shape or form.

I've experienced this for years. I call it "code blur". For me, I mostly lose all sense of time.

For me, it pretty much never occurs during debugging - partly I think because debugging for me is a strictly analytic process and not a creative process. I think when I'm debugging it's more:
  • here's my symptom(s)
  • are they incorrect or correct?
  • if they are incorrect what are the possible set of causes that would induce that set of symptoms?
  • how effectively can I reduce that set to it's minimum size?
  • once I've identified the causes, what are the possible repercussions of the fix?
  • test
  • fix
  • test
For me, code blur is not an analytic but a creative binge period in which I need a certain level of concentration and calm in order to balance the sheer number of things I have to keep in my head at once. I write toolkits for manipulating images and PDF documents. The number of sections of the PDF specification I have to have in my head at any one given time is usually around 1/5 of the spec or about 150 letter-sized pages of dense material, as well as the relationship between dozens of objects that model elements of the spec.

I also don't think of it as a reward. It's a tool that comes with a burden of the overhead of getting in the mindset and the cost of getting yanked out of it. The payoff is that during the times that I'm running under code blur, I'm about an order of magnitude more productive than I am typically, which is already between 2x and 10x the average coder. So in blur, I'm running at about 20x-100x the productivity of an average coder. That's the payoff.

As an aside at one point I was working at a start up company that was doing a 3D engine and related development tools. Great place - any single engineer at that company could have been the leader/top producer of any other team. The project manager was running some metrics on the average output of the team. The average in LOC (which is a horrible metric) was close to 4K LOC/day (IIRC), which put the average output at 1M LOC/year. Average - that includes time spent debugging and testing. It was no wonder that I had massive tendinitis and spent many hours with my arms in an ice bath.

You know what the best times are with code blur? When it goes away at 4:45.

You know what the worst times are with code blur? When it impinges on things like doctor's appointments or school meetings - you know things that are actually more important than writing code.
posted by plinth at 10:57 AM on June 18, 2014 [5 favorites]


Steely-eyed Missile Man: "Why are programmers tirelessly driven to expound on why they and their subject matter are just the most special little snowflakes evar?"

You wouldn't happen to be a designer, would you?
posted by symbioid at 11:47 AM on June 18, 2014 [4 favorites]


Programming is basically turning me into Spider Jerusalem. Except I don't have a bowel disruptor gun, and I have to go get my own caribou eyes.
posted by Foosnark at 11:56 AM on June 18, 2014 [1 favorite]


Triplanetary: "One of the authors summarized the factors that help create flow in an article. I find it helpful to keep these factors in mind when getting ready for an extended work session, programming or otherwise."
In this evolutionary eye-blink, in sports like surfing, skiing, skateboarding, rock climbing, mountain biking, etc., athletes have achieved staggering, near-exponential growth in ultimate human performance—when life or limb is on the line. Surfers are riding 100-foot waves, snowboarders are doing aerials that weren’t thought possible, and rock climbers are soloing cliffs with no ropes that no human should be able to do.

Nothing like this has ever happened before. So the question is, why is it happening now?
That's an interesting statement.

To say that this has never happened before... This person uses the term "evolutionarily"... And frankly, how are we to know that what happened when the first caveman to understand how to start fires consistently... or which shaman figured out which plants to use to heal... perhaps all these sorts of evolutionary creative processes of an earlier age, things that seem so duh, obvious and plain to us, were radical innovations of their day... perhaps they, like much creative activity, were the results of the flow of a Neanderthal, or a Cro-Magnon, or Homo Habilis (sorry, I really don't know all my various species and families)... What about Australopithecus? Surely they achieved some flow? We know other apes have certain abilities to use tools that come from observation and play... What satori happened while these creatures were in the flow that the spark of enlightenment of their noodlings torched afire a whole new species wide technology and an evolutionary jump?
posted by symbioid at 11:58 AM on June 18, 2014 [1 favorite]


So, what's the best coding language for inducing this state? he asks innocently
posted by jfuller at 12:18 PM on June 18, 2014 [2 favorites]


Thanks for this.

Really spot on.

Although as both an artist and programmer, I can say that the same absorption exists (at least for me) when I'm deep in the details of a painting.

posted by mmrtnt at 12:20 PM on June 18, 2014


Different languages give different highs. Concise and pure languages like Haskell can induce rarefied, near-mystical states similar to those experienced by algebraists and logicians. Low-level hacking in C is more of a Ghost in the Shell-type immersion, coming close to the spirit of the machine, etc. Working with Common Lisp is like doing a cross-country tour with your dad's old VW van, patching things on the fly, listening to the Allman Brothers while your best friend reads out loud from Zen and the Art of Motorcycle Maintenance. Pair programming in Smalltalk is like a brunch conversation over oolong tea at a café in Portland. And so on. Different strokes.
posted by mbrock at 12:30 PM on June 18, 2014 [6 favorites]


What's happening, I think, is that people are spending huge amounts of effort to get good at rock-climbing, mountain-biking, skateboarding, etc. in a way they never did in prior times. There may also be a specialization bonus, where people who have useful attributes for one discipline or another are more likely to practice that discipline (e.g. very tall people and basket-ball).
posted by Monday, stony Monday at 2:07 PM on June 18, 2014


2bucksplus: "Human history up 'til this point was basically a preamble. From man who thinks to man who codes."

Skynet is the next chapter.
posted by chavenet at 2:17 PM on June 18, 2014


In honor of the term "coder", I propose that henceforth, authors who produce prose shall be known as "worders".
posted by yath at 2:56 PM on June 18, 2014 [5 favorites]


You could take the highest levels of just about any profession and say that.

I do believe that programmers are, well just more logical. Its pleasant.
posted by sfts2 at 4:49 PM on June 18, 2014


I like the word coder. It reminds me that I'm just an office clerk pushing codes into a machine to make it calculate. Coders are now the single most populous profession in Stockholm. Weird times.
posted by mbrock at 4:56 PM on June 18, 2014


Lisp programming in Emacs is the closest I've come to this. Properly setup, I can leap from definitions in a file to values in the REPL to documentation on the function or variable back and forth, wherever I need to see or do in the moment. The editor even anticipates structural needs which let's me feel like I'm. Composing rather than typing. It's basically a very tight, atomic TDD cycle but only as formal or informal as I need in that moment.
posted by wobh at 7:44 PM on June 18, 2014 [1 favorite]


I have been a programmer for decades. When I was younger, I struggled to also become an artist. These days, I struggle to be a writer.

I don't see a difference between the "flow" states in these occupations. A programmer might think about data structures, the artist focus on line weight, the writer might juggle words.

The thing I see in common with all three of these experiences is that, for a time, I am in a "space" (for want of a better word), where the only thing in my mind are the parameters of the work. It can be both liberating and exhausting. I don't draw any more because I lost days absorbed in my work, and I'm just too old to spend my time that way. In my experience, working as an artist is much, much more difficult, since so much of your time is focused on such tiny things, like the mark of a pencil or a single brush stroke.
posted by SPrintF at 7:56 PM on June 18, 2014 [1 favorite]


I do believe that programmers are, well just more logical. Its pleasant.

We've been to different code reviews.
posted by ryoshu at 8:06 PM on June 18, 2014 [8 favorites]


ryoshu: "I do believe that programmers are, well just more logical. Its pleasant.

We've been to different code reviews.
"

HOLY SHIT THIS
posted by ChrisR at 12:05 AM on June 19, 2014 [3 favorites]


Lisp programming in Emacs is the closest I've come to this.

It really is the whole environment. Tmux on XMonad using Vi to write Perl using the Mojolicious framework is my preferred thing. But I also listen to jambands, so mileage varies.
posted by mikelieman at 5:19 AM on June 19, 2014 [3 favorites]


Tmux on XMonad using Vi to write Perl

The Darmok thread is thataway.
posted by Steely-eyed Missile Man at 10:21 PM on June 19, 2014 [2 favorites]


the Mojolicious framework

First Or Arbel's Yo and then washboard.co and now this. My satire detector needs recalibration.
posted by effbot at 12:34 PM on June 20, 2014


« Older PPD   |   That’s the best thing. Do what you feel. Newer »


This thread has been archived and is closed to new comments