I just got up from my computer and walked into the bathroom. As I stopped and stared at myself in the mirror, decked out with some of my programming gear (currently an eye patch, my Bose headphones and a set of wrist braces), I realized it was time to share some of the absurd tricks I use to maintain consistent productivity as a programmer day after day.
I program a lot. WakaTime.com, the site I use to track the time I spend in Sublime, constantly has me listed in their top 5 users overall, with an average of 60 hours a week spent actually writing code. Based on my own time tracking, I also spend another 20 hours or so doing research each week. This means I’m likely spending 100+ hours a week in front of a computer after you factor in sending emails, reading, etc.
Programming this much can be detrimental to a human body. I spent several years in pain after I started programming intensively because I hadn't discovered the correct tools. My goal with this post is to share some of the things I've found to be effective in hopes that other people who want to achieve maximum productivity will benefit and have an easier time of it.
There is not a “one size fits all” solution to surviving this kind of self-abuse. But there are a few things I recommend experimenting with to see what works for you, which I've gone into detail on below.
I am fortunate enough to be able to make my own schedule since I’m working full time on my early-stage startup Codevolve. This means I usually don’t get up until around 10 AM each day (going to bed between 4–5 AM).
The first thing I do to start the day is take a small stack of vitamins that give me a little kick to get me going. Currently I’m taking B-12, Ginko Biloba, C, D3 and Men’s One-A-Day. Nothing super fancy, but I do notice a difference when I don’t take them, usually just less sharp, a bit more tired, etc.
I also haven’t been sick in almost a year which is very strange for me because I used to get sick every other month. However this lines up pretty well with when I started doing most of the crazy things discussed in this post. There’re a few other things that might help you out with that beyond just these vitamins (see “Life Juice” and “Sunlight”).
Everyone I tell about my concoction for what I call “Life Juice” thinks it sounds disgusting. It’s really quite delicious, and has had the largest effect on my productivity of all the things in this post because the natural stimulants in it and it’s uncanny ability to keep me from getting sick. It’s a combination of Runa Berry Clean Energy drinks, Emergen-C and water. Mix an entire Runa, one packet of Emergen-C and then maybe a half cup of water and enjoy.
I usually take this around 2 PM each day. That seems to be the right time to give me a kick to keep me going through the afternoon. The Emergen-C is probably the only thing in the concoction really doing me any good, and I’ve felt it help me fight off a number of sicknesses during the last year.
NB: I’ll usually start to fade around 10–11 PM at night. Of course this is way too early to retire, but I recommend not drinking more caffeine to combat it. Just fight through it, sit back in your chair and rest for a few minutes, but keep going! Once you’re through you’ll feel just fine and be able to go for another 5–6 hours.
Okay, this is the cool stuff. Not only does it really help reduce a lot of the pain you might experience as a programmer, but it makes you feel kind of like a cyborg when you’re all setup.
I wear all this gear on an as-needed basis. The key with this, and pretty much everything in this post, is to listen to your body. Programming at this level is like holding your breath underwater — you have to know when to come up for a breath of air.
Take a peek at these wrist braces. They really help out with wrist and hand pain, and in my opinion don’t get in the way as much as other brands. They do reduce productivity somewhat however, so I’ll usually try to alternate between wrists so that I’m not completely handicapped all at once.
Your elbows might get kind of bruised from resting and bumping against your desk for hours on end. These elbow pads can help out with that a lot, and combined with the wrist braces help reduce a majority of the surface-level pain I've experienced.
One bit of advice: sit up straight in a chair with a back. I've only tried a few chairs but between all of them this seems to be the most important thing. It’s difficult to remember if you have a bad habit of slouching like I do, but you can do it!
Hah — this is going to really make me sound ridiculous, but these eye patches are amazing for late night programming. I alternate which eye I’m using them on and they help reduce headaches from the screen glare and give one eye time to rest while the other one does all the work.
They do mess up your vision a bit of course, so I recommend holding off on them until you get a headache or your eyes get worn out.
In addition to the eye patches, I use these eye drops several times a day. I've been told I only blink about 20% what’s normal so you may not need them, but they really help when your eyes get dried out.
Also, learn to program with your eyes closed. Do it while you’re writing a first pass on a method or something and then go back and double check it after you open your eyes. Even if it’s just for 10 seconds it’ll help your eyes considerably (and I find that I can program faster with my eyes closed because I’m not held up by reading what I just wrote).
Bose headphones. I tried half a dozen stereo headphones before I finally bit the bullet and went with Bose, and I've never looked back. They are great for getting in the zone and focusing on your work free of outside distractions.
I make sure to get outside for at least a half hour every day, whether it’s walking or biking. In addition to this, I use this sunlight simulator several times a day (usually to trick my brain into thinking it’s daytime when it’s really 1–2 AM). It also helps a lot during the winter for when there’s decreased natural sunlight available.
Okay, so you've been programming all day and you’re just flat out beat. Time to maximize your few recovery hours before you wake up and get back to it.
The most important thing you can possibly do for yourself, both in relation to programming and in my opinion many other things, is learn how to fall asleep fast. We’re talking < 120 seconds. Natural exhaustion will help out a bit, but the key is to capitalize on this and use it as a training model for your brain to rely on when you’re not as tired.
Personally, I've found it extremely useful to picture a “dream-world” where I’m constantly working my way down. This could be walking down a flight of stairs, swimming down through water, pretending you’re getting sucked into a puddle of quicksand… you get the idea. Just keep going down.
In addition to falling asleep quickly, I recommend using a heating pad for 10+ minutes every night. I usually fall asleep with mine on. It’ll help your back recover from a day of supporting you as you sit and type.
One last thing: drink water before you go to bed and keep a cup next to your bed for if you wake up in the middle of the night. Not sure if this is something most people do, but when I go to sleep well hydrated I wake up more easily and feel better rested.
Why I Do This
I love to code! As I said I’m working on getting an early stage startup called Codevolve off the ground, and as a co-founder and the primary developer on the team I have to keep cranking until bugs are fixed, features are out or demos are ready.
But all this work doesn't mean I have to be in pain, nor does it mean you need to be! If you’re a startup founder, a passionate coder (or gamer?) I hope some of the things I've mentioned in here help you.
I’d love to hear about your own experiences — I’m sure there are lots of tricks that I haven’t discovered yet that others have. Hit me up on Twitter and tell me about yours!