The Five Stages of Programming

Published June 09, 2014
Advertisement
All programmers undergo a transformation, from the moment they first start typing code, until the moment they realize that there's more important things in life than making computers obey one's whims. (I hypothesize that this latter moment occurs after death, because I sure can't think of anything more important!)

As with all people doing jobs that involve rigorous mental discipline, programmers love to create models of things. I therefore present to you, the Five Stages of Programming, a descriptive model for how one is likely to evolve through the course of a programming career.


Denial
Initially, the programmer begins overwhelmed by the magnitude of the craft. There are many things that are obviously possible, because other programmers have done them; but the neophyte is as yet unable to imagine how they are done. This leads to the creation of a fabricated reality, wherein the beginner builds a theory of how complex programs - as yet out of his reach - might be made. Since the programmer presently exists in a state of rejecting reality in preference to his own imaginary construct, this is referred to as denial.

Anger
As the programmer's skills progress, he begins tackling more and more complex problems, working his way into ever more sophisticated software. At this point, he knows his limits and accepts them more fully than during the Denial phase. Unfortunately, this frustrates the programmer intensely. Most programmers in this phase can be heard uttering streams of truly hideous profanity while bashing their keyboards to pieces with a stapler. Clinically, this is known as anger.

Bargaining
This phase occurs after a brief but intense epiphany strikes the programmer. It is clear already that programming can be frustrating due to the limitations of the programmer's skill set; but what becomes clear after the moment of revelation is that the computer is, in fact, a mentally unstable demon machine bent on destroying the programmer's world. In order to defeat this demon and ship working software, the programmer must resort to bargaining.

Depression
A second epiphany occurs: the computer is not, in fact, a mentally unstable demon machine; the insanity belongs solely to the programmer. Confronted with the utter futility of his attempts to understand and reason about reality, the programmer breaks down and enters a prolonged funk. Apathy is the most common manifestation of this phase. Regardless of the outward symptoms, the programmer will spend a truly tragic amount of time in the depths of depression.

Acceptance
Only a few programmers reach this final phase, wherein the burdens of broken builds and memories of garbled call stacks fall gently away, and profound inner peace is achieved. When the programmer realizes that he's better off flipping burgers than bits, he has at last overcome his misguided obsession with controlling digital machinery, and achieved acceptance.

Tragically, most programmers die before they come to terms with the inherent absurdity of their occupation.


Now if you'll excuse me, I have some code to write.
22 likes 6 comments

Comments

Giallanon

eheheheheh

June 10, 2014 07:47 AM
Orymus3

I'd like to see your list as an actual cycle. I believe I go through these steps each and everytime I undergo a new challenge...

June 12, 2014 01:59 AM
DejaimeNeto

Haha, so sadly true!

I go through one extra phase before these five: Amusement

June 16, 2014 06:38 PM
jHaskell

The 5 stages of bug fixing:

Denial: There's nothing wrong with my code

Anger: Stupid QA idiots don't know what they're doing

Bargaining: It's not a problem if you do(don't do) this/that.

Depression: Why are those stupid QA idiots always picking on me?

Acceptance: Whoa. There really is a problem in my code. Defer it!

June 23, 2014 08:28 PM
LAURENT*

I went through all of those stages within a week then repeated them the following week. I think you're on to something

June 23, 2014 09:20 PM
leemo

I obviously haven't progressed to Depression yet because I still fully believe that my computer is a mentally unstable demon machine bent on destroying my world.

June 24, 2014 07:32 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement