December 31, 2006

Overcoming Coder’s Block

For my entire programming career (that is to say, my whole life), I’ve been searching for a solution to what I call “Coder’s block”. Roughly half of the days I sit down in front of my editor I find that I simply can’t get started. I’d imagine anyone who has been coding for longer than a week will agree that the most difficult problem is often simply finding out where you (or the guy before you) left off yesterday, last month, last year, or before you took out the garbage. Once you know where to start, the how falls into place by itself.

I can only speak for myself, but during this reacquaintance stage I’ll often get distracted by just about anything. Usually the culprit is Bloglines, Thunderbird, Gaim, or any other application that pops up to notify me of something going on. Giving into these temptations is suicide. I can literally get sucked in and spend an entire day accomplishing absolutely nothing.

Writer’s block is easy by comparison - simple techniques like freewriting and mindmapping can help to keep you focused and free of distraction. But what techniques can be of use when writing software?

What works for me:

  • Create a work environment with as much artificial light and as little clutter as possible. I don’t know why, but sunlight is actually more laziness-inducing than darkness for me - I keep the blinds closed. Unfortunately I’m a bit of an ogre by nature so often removing said clutter could be as much of a day-long distraction as anything else.
  • Go full-screen and kill any processes that intrude by popping up. Setting the taskbar to auto-hide (if you use Windows) may also be helpful.
  • Take a few minutes to read a relevant article or book passage - there’s very little more motivating than discovering a new technique, but make sure it’s one that can be put to use in the project at hand. It’s far too easy to end up with a thousand unfinished sideprojects if the technique requires starting something new to try it out. It may be beneficial to set a timer if you’re at risk of getting sucked in.
  • Avoid social news websites (such as digg) at all cost.
  • If you’re the kind of guy who always seems to have a thousand browser tabs open, try using the session manager in Tab Mix Plus to keep unrelated tabs out of sight and mind while you’re working. I like to have a separate saved session for each project I’m working on, and another for when I’m taking a break that has tabs like Bloglines and Slashdot.
  • If you’re the type to listen to music at work, make sure it isn’t going to be a distraction. Upbeat tunes without lyrics work best for me. If you find you are frequently interrupting yourself to change tracks, remove control by tuning into streaming radio instead.
  • Invest in a machine with enough RAM to keep all your work applications running simultaneously. A lot of the time all it takes to break my concentration is the 30 seconds to launch a program. This will pay for itself many times over in increased productivity.
  • As a last resort, reboot your day. This is something I do not just with work, but any time a day is going so incredibly badly it just can’t be saved. Turn off the lights and take a quick nap. 20 minutes is best. When you get up, take a shower, make a small breakfast, and just go through your morning routine as if it were the first time. Try to forget anything prior even happened.

What doesn’t:

  • When you’re having trouble getting started, it’s easy to tell yourself that all you need is a 5 minute break - this is probably not true. Try to save all the little break-time chores (phone calls, making a fresh pot of coffee…) for later, and knock them out all at once. If you’re at risk of forgetting them, try making a list. Once I get rolling breaks are fine, in fact I often need to give myself a couple minutes away from the keyboard to let my mind catch up.
  • Avoid TV, podcasts, and games. Hopefully this one is obvious, but so many people try to ignore it anyway.
  • Don’t let other people intrude. Put the phone on silent, lock the door - whatever it takes. You can get back to them later. Just a 60 second distraction can cost a programmer 15 minutes. Only programmers and writers seem to understand this concept.

What works for you? For the love of god please add anything you find helpful to the list.

15 minutes left….. 2007 here we come!

It’s really a good article! ;-p

Comment by WANG Cong — January 1, 2007 @ 2:07 am

If you don’t listen to music when you program, invest in a good pair of earplugs. I find it helps me block everything out.

Weirdly, though I am real sucker for good work conditions. I have managed to work in very noisy work conditions (factory floors).

Saving up bugs to do at times when you aren’t making progress on the big things helps.

For big things, I spend most of my time looking for a point of attack so that I can get started. Typically a broken
solution which is I know I can implement but offers a place to go next. It took me a long time to figure out how to
do this and every time I get stuck it’s because I don’t have a point of attack.

There are also times when I find that I get a bit bored if I know the answer so I try and think about the whole
picture as there is always a lot that I just don’t know and I need to figure out.

Comment by Vikram — January 1, 2007 @ 2:28 am

I find Electronica (more specifically, Daft Punk or Darude) to really get me going. Especially if I’m on a roll because I just keep going and the music helps me along.

Comment by Remover — January 1, 2007 @ 3:54 am

I find that without a comfortable chair, coding becomes impossible, especially when you are used to leaning back while you code–which i was until right now. I haven’t been able to get comfortable enough to code for almost 8 months. It used to be i would always find time to code during school since i could get in the mood, now since my chair sucks–it’s a hamic chair like the directors have–my back hurts too much to think about anything other than watching a good tvrip / anime and going to sleep.

Comment by Robert — January 1, 2007 @ 4:10 am

I think electronica works best as well. Not only is it fluid and therefore non-distracting, it also helps me regulate my mood and energy. I have it playing in the background pretty much 24/7. In one of my typical 16-hour hackathons, I’ll spend the first 10 hours listening to happy hardcore or gabber to keep my brain racing, then switch to trance/goa when I can’t sustain the superhuman energy any longer. When I’m finally too tired to continue at “normal” speed I’ll switch to something more ambient and fall asleep. The second I wake up, it’s straight back to gabba and hacking.

I probably have the oddest work-week anyone has ever heard of. :P

Comment by Logan — January 1, 2007 @ 4:11 am

I also agree with Robert. Nothing seems to kill my motivation faster than trying to work from the couch or in bed.

When I was first learning all this as a young kid, I had an incredibly uncomfortable office chair someone had given to me. It didn’t really discourage me from sitting in it all night, but a friend of mine that had a nicer chair with good back support always seemed to progress much faster.

Now, maybe he was just a smarter guy - but I prefer to blame my stupid chair.

Aside: My chiropractor once commented that of all his patients, desk workers almost always have the worst backs, necks and wrists.

Comment by Logan — January 1, 2007 @ 4:26 am

Great post, even nicer site. Keep the great advice coming.

Comment by Justin — January 1, 2007 @ 4:42 am

Logan, hopefully that was just sarcasm. In all honesty, I’m trying to be as blunt as possible. When you are uncomfortable, focus can be virtually impossible to obtain. As computer junkies go, I’m not exactly the most energetic person on the planet when it comes to regular exercise. So when it comes down to me getting in the mood, i cannot be slouching in my chair because it’s horrendously painful–granted this pain won’t kill me. All I’m saying is that is why offices who care about their employees who use the computer more than 8 hours at a shot get Herman Miller Aero Chairs. Or something of like comfortableness.

Comment by Robert — January 1, 2007 @ 8:47 am

Robert, blunt about what? I read no bluntness in your comments whatsoever, except for a confusing statement about something unspecified being sarcasm.

I agree with your original statement completely.

Comment by Logan — January 1, 2007 @ 9:02 am

Okay, never mind :p

Comment by Robert — January 1, 2007 @ 9:44 am

I have one of those kneeling chairs that force you to sit upright. Keeps me alert… and doesn’t mess up my back.

Comment by nanda — January 1, 2007 @ 9:49 am

Nanda, I’ve never seen such a chair - but it sounds intriguing. Got a link or picture handy?

Comment by Logan — January 1, 2007 @ 9:59 am

Time of day is important. We all have our productive times of day. I know that between 3pm and 5pm my creative productivity is down and that is the best time for me to deal with bureaucratic tasks like invoicing, emails, reports, etc. My most creative times are from 2am to 10am and I know that if my day gets started after 10am that it is likely to be a waste of a day because from 10am on my day is consumed by those brief (15min) interruptions.

Comment by Doug McCaughan — January 1, 2007 @ 10:06 am

Hi, souds familiar indeed.

I often leave my PC on (or hibernate it) at night in the office, with all relevant apps and windows in place.

For web app dev activities I have a shell to a linux server, a Python IDE, a browser with template editing tab and result viewing tab, and at last a MySQL query browser. Plus company e-mail and agenda (Lotus Notes).

It’s such a hassle to get everything running. Especially the logging in and locating resources.

Comment by RRN — January 1, 2007 @ 10:19 am

Lately, I’ve found that drinking a small amount of caffeine to get you going on a task works really well, as mentioned in this article:

http://www.gradschoolstory.com/archives/95/how-to-get-started-on-anything

Comment by Josh Staiger — January 1, 2007 @ 12:55 pm

There’s a solid conversation going on over at reddit with some more good ideas you might not want to miss; http://programming.reddit.com/info/wlp4/comments

Comment by Logan — January 1, 2007 @ 1:28 pm

“I’d imagine anyone who has been coding for longer than a week will agree that the most difficult problem is often simply finding out where you (or the guy before you) left off yesterday, last month, last year, or before you took out the garbage.”

Part of picking up where I left off is not leaving off until I make some pointers back into my context: ToDo comments in the code, or a readme file or written note to myself, AND making good use of my RCS. Good pointers and a good visual diff will get me back into context quickly, even months later. If I don’t do that, sometimes it take as long to get the context back as it took to establish it the first time!

Comment by JRobert — January 1, 2007 @ 1:59 pm

What I usually find helpful is, similarly to techniques used for writing, just to write. Start with the simplest thing you can think of and write that. It can seem like a silly c function, or two lines of code that you know are flawed, wrong or even not perfect. Putting that first stroke of paint on the canvas even if you know is wrong will get you going and help you figure out what’s right.

Comment by Uri — January 1, 2007 @ 3:05 pm

I cannot agree more about the avoidance of “social websites”, though to be fully effective, I extend it to all “non-work websites” that I frequently visit.

I have two cron-induced scripts that switch/unswitch my hosts file to point to 127.0.0.1 for sites such as digg and slashdot - I allow myself to access them between 9am and 12pm, but after that, in the afternoon and during late night coding sessions, they’re off limits.

Comment by Rich Boakes — January 1, 2007 @ 7:06 pm

Try working in the adult programming industry with loud sex videos playing in the background…

Comment by RT — January 1, 2007 @ 8:23 pm

I have been a software developer for over 30 years pretty much non stop except for 6 months after the dotCom incident. There was a period of about a year, around 5 years into my career, when I had a very difficult time coding; it seemed that I was almost incapable of making a decision about how to get started.

Thankfully, that phase passed and has not been visited upon me again.

Comment by lee doolan — January 1, 2007 @ 8:26 pm

Everything you wrote here applies to me at least.

Comment by Remaker — January 1, 2007 @ 8:51 pm

To keep distractions away I:

have set my root level hosts file to ban digg and other news sites. It seams that every few weeks I have to place another URL in that list.

Multiple desktops. Even though I have a 30 inch monitor I use You Control Desktops to have three separate desktops; one for coding, one for communication and one for everything else. That way, when I’m coding I won’t be distracted by incoming mail or anything else. All I see is the code. Then every once in a while I ‘reward’ myself by going to the ‘everything else’ screen and taking a five minute break.

To ’start off’, especially on a Monday morning, I make myself a screenshot video last thing on Friday. I describe to myself what I’m working on, where in the code process I am and what I have to do next. Sometime I make these from day to day or even for ‘after lunch’ but whenever I do they are most welcome. Snapz Pro 2 works the best.

Peace, out.

Comment by sam Wueb — January 1, 2007 @ 9:09 pm

I always start with pen and paper. I sit somewhere comfortable where I can’t easily see or reach a computer, and work out an idea, starting with some combination of english and diagrams (depending on the problem), and then as I flesh it out it naturally turns to pseudocode with actual names for new functions and variables. Before I know it, my pseudocode is turning into actual code, and I’m ready to get up and start typing it in.

Nice color scheme on the website, by the way. I’m enjoying typing in this light purple color on a charcoal-ish background!

Comment by Keith Handy — January 1, 2007 @ 9:19 pm

When I sit down in the morning my brain is swimming with goodies - ideas that came to me while I slept, solutions that crystallized while brushing my teeth, etc. I need to purge my mind of these items before I start. Keeping a master “To Do” list, which includes both project and non-project related items, is the only way to start the day fresh.
I also really like the idea of reading an article or book passage to focus. I’ll have to give that a try.

Comment by Shep — January 1, 2007 @ 9:31 pm

I got here from digg… :)

Comment by Kalmi — January 1, 2007 @ 9:41 pm

Personally I make sure to allocate plenty of time for maintaining a todo list and a work log. While coding if I become aware of the need for something new I add it (right then) to the todo list which is kept in order of planned completion. When ever I’ve completed something I take time to write a small postmortem describing exactly how the todo item was retired. At any point, myself or anyone else should be able to look at these two list see exactly what’s been done and what’s left to do.

It takes a fair bit of discipline but I’ve found it really works for me. Being able to pick up the work log in the morning and reading through it tends to put me right back into the frame of mind I had before the break. Then all I need to do is look at the todo list and dive in.

It also has the added advantage that that the work log tends to be a great repository of knowledge, techniques and secrets.

Comment by Mike Greenly — January 1, 2007 @ 9:42 pm

Green leafy vegetables, my friends, *every day*. You won’t notice the effect on the first day, but the next day will be excellent. You’ll be able to take a 10 minute digg break and *come back*. I’m a big fan of spinach, cooked with plenty of garlic, onion and ginger. Note that you can’t take a day off or whatever the active ingredient is gets used up and then it’s back to struggling again.

Good luck!

Comment by Robert McCall — January 1, 2007 @ 9:57 pm

One technique that mostly works for me is to start by writing a test program for what I’ve just worked on or am about to work on.

Also, using a repetitive timer program (work 20 minutes, do anything else for 10) is a way to keep going without feeling like you are missing out. The discipline is sticking to this routine and sometines, when you get engrossed you can forget about the break (the whole point of this is the get engrossed in the work, right?).

Comment by Jeff Szuhay — January 1, 2007 @ 10:01 pm

[…] story No Comments so far Leave a comment RSS feed for comments on this post. TrackBack URI Leave a comment Line and paragraph breaks automatic, e-mail address never displayed, HTMLallowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> […]

Pingback by Cartoons Fans Lounge — January 1, 2007 @ 10:02 pm

Vegetables, eh? I’ll have to give that a go.

Comment by Logan — January 1, 2007 @ 10:27 pm

Robert McCall:

I can completely agree with you on that, basically what it comes down to is a good diet will always keep you on edge and focus much better. Also on another note, exercise keeps you on edge as well. It keeps your body sensitive to insulin so when you eat, your brain feels great and so do you mentally and physically.

Comment by Robert — January 2, 2007 @ 1:27 am

Usually a good stretch, go to the toilet and a can of coke is enuf to get me going again, but these are tips I’m going to try for the coders’ block I get from time to time!

Great article!

Comment by Bradley J. Gibby — January 2, 2007 @ 3:24 am

To take a slightly skewed view, what would one remedies might help to over come both Coder’s and Writer’s block? For me, I not only have to write code I have to write requirements documentation and test cases. Creating the code can be a little easier than trying to think of how to present what the code should do before the code has been written. Does anyone feel the items mentioned would help in writing requirements or might something else be more beneficial?

Comment by Mark — January 2, 2007 @ 5:12 am

Mark:

I would imagine many of these ideas could be applied to any focused, creative work.

Comment by Logan Koester — January 2, 2007 @ 5:24 am

woww.. that really happened to me, man!

my concerntration always distracted by the sun/lighting from window (it makes me feel sleepy, seriously.. going full-screen is a good idea as this messenger always poping-up telling us people came in, came out, email alert…etc i would like to use this idea, but at my workplace, they use messenger as a main communications tools, so i cant just ignore all window by going full-screen.. yup, another dilemma for programmer..

opening multiple tabs while working, same to me.. and you know what, sometimes these tabs is the one who slowing me down when im trying to finish my task.. imagine letting gmail open all the time, then suddenly get interested with the news feed at the top, so we visit, then from there you hooked up again with another link, then visit…etc in the end, you didnt realize that you already waste your 2-hours just for that.. damn..

much worst when im on Digg, damn man.. i can stay on that site for 12-hours without realizing what time it is.. when i stop, it almost end of office hours! arghhh! another day wasted without any progress on our task..

i cant work without any ‘music’ around me.. hehey, the other day i was listening to some trance music, it keeps me alive man! i never like trance in my whole damn entire life, but that day, it changes me! i dont how i get that music, but by playing some trance/music only sound while working, it really keep you concerntrate you know! any programmers should try it once! previously i use to listen to some ghotic music from evanescence, some silverchair..etc but what happened, im singing! not working! damn…

im totally agree with everything you stated up there.. get enough RAM to save our 30 seconds waiting time for a software to load, also, reduce some memory-usage on nonsense thing like windows skinning, those yahoo widgets, itunes maybe coz i realize, compare to winamp, itunes require alot of memory..
get an mp3 player easy to say, hahahah!

put handphone far away from you, switch to silent mode, or turn it off. thats true. avoid any tv, video, movie..etc locked yourself in a room, live in your own matrix.. thats what im doing right now.. but remember, sometimes still need to get outside the ‘box’.. somethings waiting out there..

whatever it is, your article really inspired me man..

Comment by Pai — January 2, 2007 @ 6:52 am

[…] You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. Share and Enjoy:These icons link to social bookmarking sites where readers canshare and discover new web pages. […]

Pingback by Overcoming Coder’s Block - lifehack.org — January 2, 2007 @ 7:58 am

Quick tip: what often works for me is just to take a moment and describe what I’m going to do. That is, just complete this sentence: “when I’m finished, I will have …” And when you answer, be as verbose as necessary. For me, clarifying where I’m going is usually enough to break the block and get working. One of the big problems with coding and writing is that doing the work is so close to defining the work that I often forget to take that little time needed to state where I’m going. Whenever I feel unproductive or unsure about what to do next, that usually means that I haven’t defined the end-point in enough detail (or kept it updated) to give me a clear finish line.

Anyway, it often helps me.

Best,
Phil

Comment by Phil — January 2, 2007 @ 8:31 am

[…] sailor moon fan fiction library hentai For my entire programming career, I ’ve been searching for a solution to what I call “Coder’s block”. Writer’s block is easy by comparison - simple techniques like freewriting and mindmapping can help to keep you focused and free of distraction. But what techniques can be of use when writing software? sailor moon and dbz pornread more | digg story […]

Pingback by SearchRoads » sailor moon fan fiction library hentai Overcoming Coder’s Block — January 2, 2007 @ 11:10 am

Like most people replying I have suffered from the same. My solution is as follows:

* keep to-do lists of all those ideas popping in your head and focus on the current task (see http://jritmeijer.spaces.live.com/blog/cns!8A48A27460FB898A!173.entry)

* (Promise to) reward yourself when a task is done with a trip to the toilet, lunch or a coffee.

Jeroen

Comment by Jeroen Ritmeijer — January 2, 2007 @ 11:50 am

Whenever i’m stuck, it’s probably because i dont understand the architecture being / to-be used.
Or my to-do list is empty, another productivity killer.

Paper-editing with lots of doodling helps.

* thinking of new features frees the mind: draw user-interaction “screens” to debug UI before any code is made.
* add flowcharts to (those screens to) visualize user-interaction => code flow, which also helps to modularize the code properly.
* keep your to-do list always open, and on a hotkey even, to prevent coders block when you have a good idea and need ‘to find your todo list’.
* if coders-block persists, i go out for a walk and keep my mind loosly on the code while walking.
* take a break whenever your productivity and enthousiasm seriously drop.

Comment by Rene — January 2, 2007 @ 1:30 pm

Oh, and if you just read the front-page of Digg, you’ll be out of stuff to read soon enough..

I don’t like self-mutilating my hosts file, but reading only the front-page(s) keeps my digging down to about 30 minutes per day..

I’ve had it happen a few times that i’m stuck on a programming issue then find something on digg that puts me in the right direction.

But if i’m trying to get things done and am stuck, i don’t digg. I invest in googling skills.

Comment by Rene — January 2, 2007 @ 1:39 pm

About the ‘take a break’: I work for myself, so i take breaks whenever i like..

But if you work in a company you’d be expected to ‘work’.

So instead of taking a break, you could enhance the documentation of your project by making _brief_ summaries of functionality to high-level code.
Unless you have a dedicated documenter on your team, documentation usually lags behind actual coding and features. But it’s very important (to everyone, even if they dont realize it) to have short overview documents that explain how the architecture does it’s thing.
The ‘paper-editing with lots of doodling’ is the first step toward such documentation, and is quite fun to do since it (radically) improves YOUR, your teammates and your manager’s overview of the architecture.
If your manager thinks your wasting your time, explain to him that without docs, in 6 months to a year, feature-creep could wreck your architecture.

Coders-BLOCK only occurs when you have no overview and no direction. You get direction from your to-do list, but overview only from self-documenting code (put semantics + meaning in your variable names!) AND _brief_ overview docs.

If you got those two things, you can just ‘bite the bullet’ and keep coding on whatever feature needs to get done.

Comment by Rene — January 2, 2007 @ 2:02 pm

Functionality-to-code:

List what calls what and in which order, with the important parameters they pass back and forth.
Have proper error-strategies on all levels, it’ll save you many debugging-agonies.

Scanning in your doodled user-interaction screen (with a few number/symbols so you can reference form a functionality-to-code text-file) is more efficient than ‘being a documenter’ and spending your day in Visio (flowchart tool)..

Comment by Rene — January 2, 2007 @ 2:07 pm

[…] Skin Deep - Fathoming beauty through life, code and design on the web. » Blog Archive » Overcoming Coder’s Block […]

Pingback by Kennith :: Blog » Overcoming Coder’s Block — January 2, 2007 @ 2:42 pm

if music inspires your coding you cannot miss pandora.com. A good starter is to create a “radio station” from songs similiar to Ulrich Schnauss. It will keep your mind in a coding-trans for the rest of the day!

Comment by David — January 2, 2007 @ 7:40 pm

I find that reading a quick, pertinent technical tutorial to sharpen a skill gets my mind warmed up and “in the mood” for programming. Also, I subscribe to the Franklin Covey method of keeping organized. It has served me well.

Comment by paul — January 2, 2007 @ 9:52 pm

I’m a big fan of electronica, but one of the best of my projects was developed while listening to christian worship songs only. Makes me wonder then what role the music really plays in programming :-)

Comment by Emilis — January 3, 2007 @ 2:00 am

I often hold out on coding my favorite part of a project until after I’ve forced myself to code the most boring part. That kind of pain-before-pleasure cycle seems to make it easier to focus on the stuff I would like to be distracted from, if the promise of being happily engrossed later looms on the horizon.

I wonder if the guy several lines above, who codes in the adult industries to loud sex videos, has built up some sort of a Pavlovian response…

Comment by Kelly — January 3, 2007 @ 3:05 pm

What distracted me while I was coding was graphical displays, IE KDE GNOME XFCE. I would get so distracted from coding and just focus in on customizing them to look good so I never got anything done. I found the solution was a *very* minimalistic window manager, ratpoison. It doesn’t help kick-start my brain, but I don’t get distracted anymore. :)

Comment by rab — January 3, 2007 @ 8:13 pm

Same problem I’ve got with websites dude :P

…excluding this one obviously.

Comment by Logan — January 3, 2007 @ 11:05 pm

When you say to keep the tv off and allow music to be going without lyrics, i’m amused at how i’m able to work. I currently have a black and white tv directly next to my computer/workspace that’s almost always on with the sound on. this actually puts something else in my mind that the music would put into my mind but it adds the dimension of the animation. From there the animation is only a distraction when a show that i like is on, and that’s not on often.

This distraction then serves me faithfully and then actually keeps me working for longer periods of time than the music, which is very surprising. I sometimes to have music on but that doesn’t usually last that long.

I can also commend that the mind mapping and freewriting are the best things a coder can do, because without your basis for what your actually going to do on paper, your virtually making whatever your doing again.

Comment by Vincent — January 4, 2007 @ 5:58 am

I find listening to FearFM (Fearfm.nl or fearfm.be), which is a jumpstyle and hardstyle station keeps me distraction free, awake, and concentrated. Only problem is, sometimes there’s an incredible urge to dance. If this happens, stand up, stretch, jump (as jumpstyle dancing is called), grab a drink, and you’re good to go!

Wonderul article.

Comment by Samuel Baldwin — January 4, 2007 @ 9:36 am

[…] Logan Koester of Skin Deep writes about Overcoming Coder’s Block with some excellent advice and references none other than Joel on Software with Just a 60 second distraction can cost a programmer 15 minutes. Once again, I connect with Joel Spolsky very well! If you have a programmer in your life as his/her employer, spouse, or friend, please read this article; it’s the last paragraphs that are important. Here’s the simple algebra. Let’s say (as the evidence seems to suggest) that if we interrupt a programmer, even for a minute, we’re really blowing away 15 minutes of productivity. For this example, lets put two programmers, Jeff and Mutt, in open cubicles next to each other in a standard Dilbert veal-fattening farm. Mutt can’t remember the name of the Unicode version of the strcpy function. He could look it up, which takes 30 seconds, or he could ask Jeff, which takes 15 seconds. Since he’s sitting right next to Jeff, he asks Jeff. Jeff gets distracted and loses 15 minutes of productivity (to save Mutt 15 seconds). […]

Pingback by Reality Me » Kill a programmer - ask them a question — January 4, 2007 @ 12:10 pm

If my next task is coding, I have no difficulty getting started in the morning, but debugging is another story.

One technique I use is to try to leave some trivially easy task that I can start with the next day. For example, if I’ve finally found the source of a bug, and I know what code needs fixing, I’ll leave that undone. The next morning, I’m anxious to finish that task, and by the time it’s done, I’ve built up some momentum that keeps me coding.

Another trick I use is to break up intimidating tasks into a series of smaller ones. When I’m faced with a bug that I know will be difficult to track down, my first goal is to create a good test case that reproduces the problem, then to figure out what class is responsible, then what method, and then how to fix it. The smaller subgoals don’t seem so intimidating, and after completing each one I feel a sense of progress that inspires me to keep going.

Comment by Amy de Buitléir — January 4, 2007 @ 12:43 pm

I have found that setting up a schedule over when and what to program and during those time pull out the internet-cable works quite nice.

A good help to avoid headaches or the likes is Workrave - a program with which you schedule brakes and such. http://www.workrave.org/

Comment by Pelle — January 5, 2007 @ 8:17 am

The author is correct about distractions. Your mind has to be clear to work properly. I suggest even turning off your email client!

Diet can be a problem to motivation also. I’ve found that if you eat lots of high energy food (particularly stuff with sugar in it) you will go into a post eating stupor and not be able to focus. More sugar after this does not help the situation. I’ve found that eating lower energy food is better for maintaining productivity.

Caffeine and other stimulants are also bad. You will be on a high afterwards and you’ll get work done but you’ll have a corresponding low where you won’t be able to do anything. I’ve found it’s better to avoid this stuff altogether.

I’ve also found that a big work out at the gym is also bad. For the next few hours after a big workout you are in a bit of a stupor and you can’t focus easily. Of course you can’t stop working out but I guess this is something you’ll just have to deal with.

Comment by Mat Dodgson — January 7, 2007 @ 6:44 pm

I’ve found that it’s best just to not do anything at all.

Ever.

Comment by Keith Handy — January 7, 2007 @ 6:53 pm

Ironically, I should be working right now. However, I roamed over to Digg, and wound up here. All of these things apply to me, and I really should apply this information to myself. I don’t have a good way of avoiding it. Some people recommend using a white board for a To-Do list, some recommend a piece of paper. Recently, I started using a text file, which I seem to like over the other methods.

Very good reading. Very Helpful.

Comment by Craige — January 10, 2007 @ 4:41 pm

Craige: Did you mention Todo lists in response to my post about Zirrus? Anyway, I find Ta-da Lists works best for me, as text files tend to take a bit too long to manage/maintain, and can easily get lost. That said, I’ve been using Outlook 2007 recently instead due to it’s ability to communicate with my PDA phone and it is quite pleasant to use as well.

Glad you found this thread helpful!

Comment by Logan — January 10, 2007 @ 4:54 pm

Logan, no. This is the first time I’ve been here actually. Seems like a nice place though. I’ll be back.

I find that text files are all I need. After looking at you’re post on Zirrus, I decided I probably wouldn’t like it. If I just have a key word to remember the task by, I’m back at square one. With text files, I can make a short note about what exactly needs doing and how. Even if the tag words are links to a detail page, I would manage to get detracted by it, or enter another url into my browser. With text files, neither is a real option.

Comment by Craige — January 10, 2007 @ 7:06 pm

Hmm, I downloaded Tab Mix Plus to give it a try, but so far I’m not very impressed with it’s functionality (on FF 2 at least). Scrolling through tabs with the ctrl+tab command is a pain. After a while of use, focus will just jump around when you hit the keys. No appearant reason for why it opens the tab it does. I do like the multiple session saver, however.

Comment by Craige — January 11, 2007 @ 7:11 am

Craige: It’s all in how you configure it. You can import / export configurations as well - here is how I have it set up.

Comment by Logan — January 11, 2007 @ 11:41 am

[…] Posted by Sayamindu 0 minutes ago Does this happen to you ?? It does happen to me…. […]

Pingback by Coder’s Block « Sayamindu’s Ramblings — January 11, 2007 @ 3:29 pm

[…] Mentioned before on Skin Deep. I find this one useful mostly for it’s session management features. […]

Pingback by Skin Deep - Fathoming beauty through life, code and design on the web. » Blog Archive » 15 Firefox extensions no web developer should live without — January 12, 2007 @ 10:27 pm

I deleted the extension. It wasn’t playing nice with Firefox. It wouldn’t let me open any of my menu’s, and I’m sure that’s not a “feature”.

Comment by Craige — January 13, 2007 @ 3:43 pm

Excellent ideas, thanks!

Comment by wasatch wizard — January 16, 2007 @ 2:09 pm

You’re not Alone :)

Comment by Pugs — January 17, 2007 @ 6:07 am

[…] I for one require at least 8 hours of sleep to function, that is unless I do a morning workout then its more like 5 or 6. Problem with this morning workout thing always seemed to be the fact that I could never wake up in time or have the energy for it. So I tried a few other things yet nothing seemed to ever work. I found this article / post on digg.com :: Overcoming Coder’s Block: http://skindeep.logankoester.com/overcoming-coders-block […]

Pingback by virtualadrian.com » Blog Archive » Overcoming a Coder Burnout — January 18, 2007 @ 11:00 am

[…] In the mean time, those who enjoyed my recent post about overcoming “coder’s block” may be interested in reading some more spectacular ideas over at Virtual Adrian. […]

Pingback by Skin Deep - Fathoming beauty through life, code and design on the web. » Blog Archive » Mashup Camp and more about coder’s block — January 18, 2007 @ 10:48 pm

[…] A while ago I saw this article about overcoming coder’s block. The author has some good ideas but it seems to be more for a single programmers, working contracts from home (reboot the day?!). The comments in the Digg article where I found this seem to debate the existence of coder’s block and instead describe it as being more like procrastination or lack of discipline. I agree that the problem of writer’s block is much more studied, but am hesitant to jump to the conclusion that coder’s block isn’t a real phenomenon. […]

Pingback by Overcoming Coders Block » Professional Web Software Development — January 19, 2007 @ 7:27 am

[…] I read a great little article written by, Logan Koester detailing helpful tips to avoid and cure coders block. This is similar to the infamous writers block but with programming and it can cost you a hell of a lot more then any term paper. In his article he goes on to explain certain things that drag his attention away from his work.”Usually the culprit is Bloglines, Thunderbird, Gaim, or any other application that pops up to notify me of something going on”, which is something I can completely agree with. I believe for about three hours yesterday I scoured digg constantly clicking refresh to see something new. His comment, “Avoid social news websites (such as digg) at all cost” has been noted. Check out this great article at: http://skindeep.logankoester.com/overcoming-coders-block Programming» Social News» […]

Pingback by Angela and Ryan » Coders Block — January 19, 2007 @ 10:54 pm

[…] Skin Deep - Fathoming beauty through life, code and design on the web. » Blog Archive » Overcoming Coder’s Block (tags: programming work) […]

Pingback by Subject Code » links for 2007-01-02 — January 20, 2007 @ 7:59 am

hi nice site.

Comment by alex — April 11, 2007 @ 8:40 pm

I am the sole coder in a small web company - the only thing that gets me out of coders block
is a deadline looming then the code just flows out of me ;)

Comment by Mr. Jolly — May 11, 2007 @ 9:10 am

Vorovannaja stochka ty zhe znaes. Menelaus Karolis.

Comment by Menelaus Karolis — May 31, 2007 @ 4:41 pm

hi all.

Comment by robert — June 14, 2007 @ 1:44 pm

But you keep on abusin i. Mbali Brijesh.

Comment by Mbali Brijesh — July 4, 2007 @ 8:13 pm

And youve really done a lot of junk no. Olufunke Joby.

Comment by Olufunke Joby — July 14, 2007 @ 4:57 am

see it’s very define,your one of a kin. Serafino Raimondo.

Comment by Serafino Raimondo — September 19, 2007 @ 2:18 pm

[…] read more | digg story […]

Pingback by Overcoming Coder’s Block « Programming News — October 12, 2007 @ 9:51 am

oh lord my baby your driving me craz. Frederik Kyleigh.

Comment by Frederik Kyleigh — October 21, 2007 @ 3:49 pm

[…] read more | digg story […]

Pingback by I am just a programmer » Overcoming Coder’s Block — November 21, 2007 @ 11:53 am

avenged heartbeat sevenfold sevenfold avenged tattoo

Comment by avenged fan sevenfold — February 28, 2008 @ 3:53 pm

[…] Free 50 cent back tattoo pictures and images qxqer1z Selecting and acquiring the ideal fishing boat is a real art for someone who has already gone through many experiences as far as boating is concerned. However, it can be a daunting task to those who have not yet experienced buying a fishing boat.To make the activity easier for the first timers, here is a list of tips that they can use when choosing an ideal fishing boat.1. It is important to consider the purpose of the fishing boat.Buying a fishing boat has only one purpose: to be used in fishing. However, before choosing the perfect fishing boat, it is important to consider also the other purposes.First, the place where the fishing boat will be used should be taken into account. Will it be in the ocean or in other bodies of water like lakes?Second, the time of the day it will be used. Will it be for day trips or for overnight fishing activities?If the fishing boat will be used for ocean cruising and overnight stays, it would be better to buy a fishing boat that has a hull. This is specifically designed for rough waters. This design is meant to ride with the waves, hence, providing more comfort to anglers while on board.2. The budgetWhen buying a fishing boat, it is important to know if the buyer can afford to acquire a boat. Fishing boats, or any boat for that matter, can be very expensive. Hence, the buyer should know how far his budget would go as far as fishing boat prices are concerned.3. The warrantiesIt is extremely important to know if the fishing boat has a warranty. It should be analyzed and meticulously scrutinized because not all warranties are created equal.Hence, it is best to buy a fishing boat from dealers that will provide the necessary services in case their product is found to be defective.4. The certificationWhen buying a fishing boat, it is important to take note if it is certified by the “National Marine Manufacturers Association” or the NMMA. This agency guarantees that the certification they give to every boat manufacturer is a guarantee that the fishing boat had passed the agency’s standard of excellence.The bottom line is that, people should do more than just look around when choosing the ideal fishing boat. They should learn how to look for the important details in order to ensure that the boat they have acquired is definitely worth their money.FishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishingFishing Posted by raicha at 11:54 […]

Pingback by Angelina jolie tattoo pic: Free 50 cent back tattoo pictures and images qxqer1z — July 4, 2008 @ 3:07 pm

Good day!,

Comment by name — August 31, 2008 @ 10:00 pm

Hi!,

Comment by name — August 31, 2008 @ 10:01 pm

Good post. I woke up this morning and realized I have had an unproductive programming week, and it’s mostly to do with a case of fuck-its. I searched for the term “coders block”, and sure enough, other programmers get it too. Cheers.

Comment by DS — October 9, 2008 @ 11:08 am

tonik health insurance tonik health insurance

Comment by insurance health tonik — January 7, 2009 @ 9:20 am

I somewhat agree, I didnt like it as much though

Comment by Lebron Jordan — February 18, 2009 @ 11:28 pm

Every time i come here I am not dissapointed, nice post

Comment by Anime Online — March 21, 2009 @ 7:22 pm

This is the way things should be, get off what we are on now

Comment by Vendor — March 22, 2009 @ 5:00 pm

Ship first, re-factor second. Ie the stress of not doing it right can at times overcome the coders block. You can always re-factor.. or let the other guy worry about it ;) heheh

-
Scott Barnes
Microsoft.

Comment by Scott Barnes — August 19, 2009 @ 1:43 am

go to run my baby

Comment by buy hoodia — October 20, 2009 @ 4:11 pm

pmksCZ yezjdfisucev, [url=http://hbnkavmftixg.com/]hbnkavmftixg[/url], [link=http://fphmheoqgpld.com/]fphmheoqgpld[/link], http://ntcapfxkmwjq.com/

Comment by vezjamtlypd — October 23, 2009 @ 3:35 pm

I took some pictures on my iphone and i want them onto my computer. does anyone know how to transfer them? thanks.

________________
unlock iphone 3g

Comment by aerolla — October 25, 2009 @ 9:07 am

http://www.playlist.com/blog/entry/12440877827 online medical fraud protection
allergic reactions to makeup

Comment by TaivaNoni — October 25, 2009 @ 9:36 am

8qpgwx umhmnczbygqm, [url=http://onafshgyxgxt.com/]onafshgyxgxt[/url], [link=http://wqmhvwdhenky.com/]wqmhvwdhenky[/link], http://fpznwxfvpwrl.com/

Comment by vsfqlni — October 26, 2009 @ 5:44 pm

http://www.playlist.com/blog/entry/12440877827 heart shaped tv remote controls
amy winehouse blood shoes

Comment by smermolve — October 27, 2009 @ 3:52 am

фильм спартанец скачать фильм джони д скачать бесплатно скачать фильм поли скачать -без смс регистрации фильм скачать фильм осень http://digg.com/users/bol1987 скачать фильмыскачать фильм каникулы строгова режима фильм бабочка скачать фильм снайпер бесплатно скачать скачать бесплатно фильм святой тихий дон фильм скачать бесплатно

Comment by ItereeAxobe — October 27, 2009 @ 5:03 am

http://rxdrugs24×7.com/category/anti-depressants.html unknown bacteria experiments
masculinity muscle

Comment by Ulcennaneindy — October 27, 2009 @ 11:34 am

http://www.indianpad.com/user/rxdrugs24×7 free pictures video clips of muscle men
free fat breast movies

Comment by Ulcennaneindy — October 27, 2009 @ 5:00 pm

hi Glucovance online online online

Comment by online — October 28, 2009 @ 2:55 am

hi Glucovance online online online

Comment by Glucovance — October 28, 2009 @ 3:06 am

to getting my self portose flurt saslo

Comment by buy ultram — October 29, 2009 @ 8:21 am

herpes info spanish mexican pharmacy new drugs approved by the fda vitamin d bone density psychological morning erection erectile dysfunction
http://rxdrugs24×7.com/product/nexium.html

Comment by OrbillVably — October 29, 2009 @ 11:32 am

lesson plans for health and wellness Order antibiotics accompia diet medication health and saftey offshore pipe laying ct health department
http://rxdrugs24×7.com/category/heart-rates.html

Comment by OrbillVably — October 29, 2009 @ 5:25 pm

high glycaemic foods and diabetes htm Order Deltasone mercer co department of health dc community mental health calcium citrate or calcium carbonate
http://rxdrugs24×7.com/product/paracetamol.html

Comment by ErronyQuormub — October 30, 2009 @ 4:30 am

3luHSW bzljkjeiynyp, [url=http://hvnojhztxyqx.com/]hvnojhztxyqx[/url], [link=http://kvmsozngwmmf.com/]kvmsozngwmmf[/link], http://oswgrhxfdvkz.com/

Comment by ltnxtkpwxxa — October 30, 2009 @ 3:16 pm

us bank home mortgage loan account http://2apply4cash.info/privacy-policy.html credit score for new car loan
low interest car loan credit

Comment by Doogeolojen — October 31, 2009 @ 1:17 am

qXi4Jm ymmncnsmkbpj, [url=http://lizultarcpnp.com/]lizultarcpnp[/url], [link=http://agdolsathmkq.com/]agdolsathmkq[/link], http://pxtcssipycwh.com/

Comment by fkmcpmc — October 31, 2009 @ 6:21 am

home equity loan mortgage http://goapply4acarloan.info/ payday loan low fee
what are the current loan rates

Comment by ArrorAcox — October 31, 2009 @ 11:28 am

www specialrate loan co http://goapply4acarloan.info/privacy-policy.html cspital ge loan
rural development loan

Comment by ArrorAcox — October 31, 2009 @ 6:07 pm

o c e a n loan co uk http://goapply4acarloan.info/badcreditautoloans.html canadian car loan companies
green power loan

Comment by PhedgebeemN — October 31, 2009 @ 10:13 pm

fast cash loan oregon http://goapply4acarloan.info/privacysecurity.html amortization sheet for a car loan
car loan formula

Comment by PhedgebeemN — November 1, 2009 @ 3:37 am

business card credit start up http://nocreditcarddebts.info/debtsettlement.html class action credit card international
consolidating credit cards

Comment by hegoJulmomo — November 1, 2009 @ 6:24 pm

glossary comment added for my please ok

Comment by ultram — November 1, 2009 @ 6:37 pm

work at home in credit card industry http://nocreditcarddebts.info/privacypolicy.html introductory offers for credit cards
michigan credit card processing

Comment by hegoJulmomo — November 2, 2009 @ 12:05 am

Other variant is possible also

Comment by skivegree — November 2, 2009 @ 1:01 am

hi tramadol or percocet

Comment by can i snort ritalin la — November 2, 2009 @ 6:09 am

using other peoples credit cards http://nocreditcarddebts.info/apply.html debt relief credit card
credit cards with instant approval online

Comment by Cynctutty — November 2, 2009 @ 12:22 pm

instand approval credit cards http://nocreditcarddebts.info/privacypolicy.html where can i apply for a secured credit card
credit card casino

Comment by AutonaAttasse — November 2, 2009 @ 10:38 pm

hi atenolol 7 xanax

Comment by can you shoot codeine sulfate — November 3, 2009 @ 5:32 am

mobile gas credit card http://nocreditcarddebts.info/privacypolicy.html fair credit credit cards
credit card with no credit

Comment by AutonaAttasse — November 3, 2009 @ 5:38 am

Inspiration

6pli Tumblr Aptana IDE Markus Homm Mint Humanized Rawkus Records // All Things Hip Hop // www.rawkus.com The New York Times WeShouldDoItAll Justinsomnia Deluxe Digital Media Democracy Internet Tv Take More Photos fluxiom - capture, manage, access and deliver content across your enterprise Olivier Danchin Jason Santa Maria Tubetorial Ajaxian Raincity Studios 88 Miles - Simple time tracking Welcome to Zopa (UK) - The first lending and borrowing exchange Inspirational design for a web2.0 homepage