Coder's Block

As a programmer, have you ever felt totally burned out? Have you lost the motivation to start new projects, work on existing ones, or are you simply unable to bring yourself to write most code at all even (or maybe I should say especially) when the code in question is simple? You’re either burnt out, have coder’s block or both. If this is you, you’re not alone. There are a few reliable symptoms to diagnose your malady and a number of ways to combat it. As always, there’s more after the jump.

No motivation

You’re at work and you stare at the screen. You’re frustrated. You want to do something but everything seems overwhelming. There’s so much to do and you have no clue where to start. You’ve got the coder’s block.

Writing code sucks

All the code you write is terrible. Your language sucks or is limiting and the code you write is terrible. You want to start from scratch but the prospect of starting a new project is just too daunting. So you’re in a situation where continuing an existing project is too hard and so is starting a new one. The existing one is a mess and starting over would be tedious. Yep, that’s the coder’s block.

You want to but can’t

You want to be inspired. You have moments where the idea of writing some code inspires you. But then, just as you begin to plan what you’ll use to implement an idea, it becomes overwhelming, sounds tedious, and you give up before you even start. It feels like you’re on the verge of coming up with something but you can’t quite bring yourself to actually get it out of your head and onto the screen.

Fix it?

So you definitely have coder’s block. You may be totally burned out. How do you fix this problem? Most advice is along the lines of “be more like me” and this post is probably not much different but I’ll try to be as broad and objective as possible here.

Take a vacation

Let’s get the obvious one out of the way first. A vacation is the most obvious answer to this problem. Last time I felt this way I took a vacation. It definitely helped. After two weeks away from the office I came back with a clear head, ready to tackle all the interesting and boring problems at work.

Branch out

I’m good at programming. I enjoy programming. I do it for a living. I do it for fun. I have a lot of side projects that I work on outside of work but sometimes, when you’ve got a bad case of the block, writing more code hurts more than helps. I’ve been in situations where even projects that I’m very passionate about seem tedious, daunting, or overwhelming. So instead of writing more code, I decided to indulge my other interests.

A lot of times burn out and coder’s block are related to some imbalance you have in your life. You need to somehow tip the scales in a way that balances your life. This might mean spending more time with friends and family or more time alone. For me, I decided to start doing art projects rather than code in my spare time. I got an Arduino board and made a fish tank cleaning timer (it’s just some LEDs that turn off each day until only one is left blinking, indicating that it’s time to clean the fish bowl). That’s more code and tech stuff though so technically it shouldn’t be a good choice of project. In this case it was so different from what my area of expertise is that it didn’t matter. Plus, the Arduino part wasn’t the most time consuming or important anyway. In addition to programming the board I bought some wood and tools, went outside, and started cutting pieces of wood to make a box for this thing. I’ll end up putting some hinges on it to open it up to access the reset button and paint it as well. Doing something totally different, like the woodworking I did, got me doing something very different and exercised some portions of my brain that I usually don’t work out much. Next week I might paint a painting or write some music which are a few other interests of mine. Neglecting those interests probably wasn’t helping me.

Reconnecting with your other interests can do a lot for coder’s block. Just remember, it takes more than one weekend to fix it. This needs to become a somewhat regular habit.

Clean up junk

Not literally. I mean your technical junk. I’ve got a ~/Sites folder on my Mac full of projects that I’ve started, finished, or abandoned. I took some time to go through all of them and delete the ones that I no longer want to work on, archived ones that are useful but will no longer get any updates, and only kept the ones that I want to continue working on. I even killed some of my babies. There are projects that I love and have been maintaining for years (like that need a total rewrite or need to simply be stopped so energy can be focused on new, more interesting projects.

The majority of my remaining projects were ones I started back when I didn’t have nearly the skill and experience I have now. They were becoming a pain to work on because of poor technical decisions early on. Since I’m in control of my own projects I made an executive decision and killed a good portion of those. That clears out a lot of mental room to start focusing on new, more fulfilling projects.

Find another job

I always laugh when people suggest this but I’m including it here because it is technically an option. Though often easier said than done, finding another job is sometimes the only way to remedy coder’s block. Only you know if it’s your job itself that’s causing your issue or if it’s simply a case of bad habits and long hours. I think this is a last resort option.

What’s missing?

Did I miss a remedy here? Coder’s block can be debilitating. It can cast a shadow over your career and your personal life. If you have a suggesting you think needs mentioning, go ahead and mention it. There’s always comments below.

Thoughts, Web development

« Sometimes the best new feature is no new features What do PageRank numbers mean? »