Programmers Should Give Up More Often
June 10th, 2008
You know that feeling? The one where you are in the zone. Every keystroke is intentional and the sound of them in succession sounds almost like music. Your chair feels comfy and your desk is clean, or at least mostly clean. The code you are producing could be framed and put on a wall and even your mom would admire its beauty. You’ve had that feeling right?
Contrast what I just presented, with that other feeling. You know it. I know you know it. You have a slight buzz in the front of your brain. Typos begin to abound and you are starting to think your fingers went drinking without you. You shift to and fro but your chair continues to feel like a block of wood. Your code is so convoluted that you sometimes don’t understand what you just wrote 30 minutes ago. In fact, the thing that should “just work” isn’t working and hasn’t been for the past 45 minutes.
What To Do?
So what are you to do? Push through you say! Mush, mush! I know in an hour I’ll once again feel fresh and write code that sounds like a harp from the Heavens. I’ve already spent 45 minutes, what’s another 15. Besides, I’m so close. FAIL! I have news for you Walter Cronkite, you won’t. Your code will begin to feel more and more like the spaghetti [insert previous language here] you use to write. You’ll get more uncomfortable, and most likely the buzz in your head will last for hours after you stop, quite possibly ruining the rest of your night.
Great Programming Requires Inspiration
I believe the ability to give up and to know when to give up is what sets great programmers apart from good, average and poor ones. Programming is art. Art is created through inspiration. Anyone can push through and churn out crappy code. The question is, are you self-aware to the point that you know when it’s time to stop?
Do Something Else
Next time you feel the buzz creeping into the front of your skull and your undies start riding up, stop! As the wait staff at Logan’s Roadhouse says, “Stop what you’re doin and swallow what you’re chewin.” Pet your cat. Read a few chapters from a book. Complete the next mission on Grand Theft Auto. Don’t push through. Do something other than programming that inspires you and I guarantee the inspiration for what you were working on will return.
What I Do
So what do I do when I hit the wall? I’ve never been much of a reader but lately I’ve turned to books. I’m not a fan of fiction, but I have discovered an ardent interest in business, especially now that I’m a business owner. Books like Good to Great, The Fred Factor, 4 Hour Work Week and Blink are inspiring me to think differently and write better code.
9 Responses to “Programmers Should Give Up More Often”
Sorry, comments are closed for this article to ease the burden of pruning spam. If you have any further comments, just send me an email.

June 10th, 2008 at 05:12 PM
Compare and contrast http://contemplativeprog.blogspot.com/2005/04/interview-on-contemplative-programming.html
June 10th, 2008 at 06:23 PM
I agree with this 100%. Usually, when I just can’t seem to make any progress I do a quick “git stash f_this” and grab a beer :)
June 10th, 2008 at 06:49 PM
Nice tip to remember and helped me a lot. Recently I context switch to cooking, flushes my buffer :)
June 10th, 2008 at 08:21 PM
@Trevor – Awesome! Great use of git stash.
@Kiran – A solid choice. I haven’t got into cooking much but I do like eating. :)
June 10th, 2008 at 08:29 PM
The last time i overwhelmed (i totaly couldn’t remember the code that i wrote one hour ago, and reverted it dramatically..) watching old series of the Spaced [1] saved my soul. :)
June 10th, 2008 at 10:39 PM
Lately, a successful move for me has been switching mediums more then stopping programming. I leave the computer and the code and either just lay in bed or go outside with a pen and paper. I stop the hacking mode desperation and refocus the good programming vibes, and figure out my programming problems with out my fingertips and keyboard. When I go back to the code, I feel refreshed and full of clarity about the task at hand. Highly suggested.
June 10th, 2008 at 11:49 PM
@William – Good point. I often break out my moleskin when I get tired and put my ideas together there first.
June 11th, 2008 at 04:02 AM
I think, washing the dishes is perfect for these situations. ;) (that’s why I don’t have a dishwasher)
But: all this is works pretty well for freelancers. But what, if you are an employee and you have to write code?
June 11th, 2008 at 07:39 AM
@humpaaa: “What if you’re an employee?”
It’s actually very simple: Just create a meeting and invite a few people. You can chat, point with a stick, eat donuts etc. :)
There are companies where people spend %90 of their time in meetings – just imagine how creative they get after a while! ;)