You got the programming fatigue?

16 points by eintnohick ↗ HN
I've recently started programming a new startup of mine full time and found that I am severely limited to how much work I can do because of physical fatigue - notably eye strain (pain) and wrist pain (carpel tunnel).

I have started wearing wrists braces on each hand to help with the wrist pain and that helps. And for my eyes I often wear polarized sunglasses and switch between staring at my laptop screen and hooking it up to my LCD TV.

I guess I'm kind of wondering if you guys have the same problems or if I'm sitting on the computer way to much. Also, what do you guys do to minimize, eliminate such physical problems like this?

37 comments

[ 5.6 ms ] story [ 75.7 ms ] thread
I find that a nice looking font face helps loads. A large, sub-pixel smoothed font is wonderful on the eyes. And nice relaxing colours help too. I keep my terminal on a salmon-y colour text on a dark grey background.

As for the wrists: invest in a good chair and use Vi :)

If your injuring yourself by using the computer where others aren't there's something about you, or the way you're using the computer that's causing you injury.

The best advice I've found is to just check, every 10 minutes or so, am I comfortable? How could I relax? Ask these questions of your fingers, wrists, arms, elbows, back, neck etc. Sit correctly (google for advice on that) but don't be tense.

I also found the Alexander Technique quite useful <http://en.wikipedia.org/wiki/Alexander_technique>.

Unless it has been diagnosed as carpel tunnel syndrome, I would guess that the wrist pain is actually a more general "repetitive stress injury" (RSI). Proper posture helps a lot for this, as does taking regular mini-breaks to let your wrists rest. Software RSI break timers help; I use AntiRSI on my mac. The idea is to let your arms hang down for 10 seconds or so every 5-10 minutes. Take longer breaks regularly, and stretch your wrists, arms and shoulders.

Google 'RSI wrist stretches' (or exercises), etc. The book "It's not Carpal Tunnel Syndrome! RSI Theory & Therapy for Computer Professionals" is highly praised, but I haven't read it personally.

I've found that a trackball is much easier on my wrist when I'm forced to do any mousing. The Microsoft Natural Ergonomic Keyboard 4000 helped too, but I couldn't stand the space bar's noise and action -- it's worth looking into a more friendly keyboard anyway.

Edit: As for eye strain, try to focus on something in the distance while you're letting your wrists rest. Human eyes aren't particularly well suited for focusing close-up for long periods of time, so you should let them relax once in a while.

A lot of people keep their hands at the keyboard for long periods of time; excessive use of keyboard shortcuts keeps you in the same position for longer. I find that typing in bursts works better for me; I hold my chin, lean back, etc. while I ponder what to code next. Rather than keeping your wrist in the same position a lot, it gets to flex and move around.

I had a lot more pain while coding at home because I would sit at the computer more often, but when working at an office, I have to get up and talk to people more often, and it really makes a difference.

As for eye strain, getting a dark color layout for your code editor of choice and keeping most of your GUI dark helps. Black text on a white background is like staring into a lightbulb.

May I suggest Zenburn? It has to be one of the most beautiful and comfortable color schemes out there. Available for both Emacs, Vim and a host of other editors/IDEs.

http://slinky.imukuppi.org/zenburnpage/

I prefer wombat. It's a gvim only scheme (unless you know a guy who interpolated it for 256 color), but it is veeeery nice.
I found these wrist stretches very helpful: http://www.fitsugar.com/309088 I also read somewhere that staring at a computer screen for a long period of time weakens the eyes. It suggested that every 20 minutes you should get out of your seat and walk around, concentrating on objects different distances away. Also, make sure you maintain good posture when sitting at the computer.
I also read somewhere that staring at a computer screen for a long period of time weakens the eyes. It suggested that every 20 minutes you should get out of your seat and walk around, concentrating on objects different distances away.

I don't have any scientific proof of this but I try to do it when possible as well. Once or twice per day I try to go outside and focus on things as far away as possible and try to make out detail. It definitely makes me more relaxed when I sit back down to work again.

If you just started a new job, it's likely you also changed your work layout. Ergonomics can make a big difference.

In my case, I eventually figured out that I need my desk at a specific height. Being even an inch off causes burning and tingling in my arms after a couple days. So every time I move offices, step 1 is adjusting the desk height.

On the eye strain, have you switched monitor brands or OSes with your new job? Small things like color temperature or type of LCD subpixel rendering can take a while to get used to. One configuration isn't inherently better than another; it's just novel and different, and your eyes might be doing a little extra work recognizing slightly different glyphs on the screen. If this is the cause, then the discomfort should go away soon.

I use Workrave ... http://www.workrave.org/welcome to periodically force myself to take short breaks.
In Ubuntu, go to Settings > Preferences > Keyboard > Typing break and check the box "Enforce typing break". You can customize it based on how often and how long the break lasts, as well as the ability to postpone the break, or not if you're like me who keeps postponing the break.
Physical pain is to be expected when you work on a laptop. I use my PC for long hours without any kind of discomfort, but working on the MacBook for even a few hours tires me out. Here is what I suggest:

1. Try using a desktop computer, if you can.

2. If you can't use a desktop, get a separate monitor, keyboard and mouse for your laptop. Use this setup when you're coding at home.

3. Learn and use Emacs or Vim. They're seriously better on the wrists. If you cannot invest time in one of these editors, learn whatever editor you're using right now properly. Make use of keyboard shortcuts whenever possible, and avoid the mouse/trackpad like the plague.

4. Use a dark color scheme in your editor and make it fullscreen. You won't believe how much cognitive strain it eliminates until you've tried it.

5. If you're using Windows, use the Windows Classic theme. On Linux, try using whatever monochrome theme you can find. The Mac already has a monochrome theme. Staring at wild colors and funky visual effects makes you feel tired. Eliminate these distractions.

Just this much for now :)

Additional tip on emacs: swap the Ctrl and Caps keys. If you are on Mac, use Aquamacs because it allows you to use the option key instead of the control key, which is awkwardly positioned on both PC and Mac.

If there was anything Sun got right in its workstation design, it was where they put the damn control key: next to your pinky, where it belongs.

Some people argue that swapping ctrl and caps isn't good. See http://xahlee.org/emacs/emacs_pinky.html. Xah Lee says use a good keyboard... Not sure if this is true. I'm perfectly happy using the control key by reaching down with my left pinky...
I find Xah Lee's arguments unconvincing.

On a typical PC keyboard of today, the Caps Lock is the most difficult modifier key to press, and is pressed by the weakest finger pinky.</quote>

On keyboards I've encountered Caps Lock is right on the left of an A key on the home row - it is easy to type it (and certainly easier than the Left Ctrl).

It makes the left pinky do 2 pinkies's work.</quote>

You press Caps Lock instead of Left Ctrl - the same work.

It forces the left hand to strain into spider legs positions, or forces your right hand to flies about wildly if the letter key is near the middle of the keyboard (e.g. T, G, B).</quote>

The standard practice is to press the Right Ctrl (right hand) + t,g,b (left hand) - no flying.

It renders many Control-‹key› spots void, since now with only one pinky many otherwise good Ctrl-‹key› spots are hard to use.</quote>

The Right Ctrl stays therefore there is no need to use only one pinky. The most frequently used Ctrl-<key> combinations in Emacs is point movement commands. Caps Lock makes it easier to type some of them e.g., C-n/p.

The left hand now constantly shift from home position.</quote>

See my comment to the first quote.

I wholeheartedly agree with swapping ctrl/caps. It also keeps other people from using my machines. :) Linux, Windoze, and Mac all have swapped ctrl keys.

Personally, I use command and option as meta. I don't like Aquamacs, they make it just different enough from standard Emacs to be annoying.

Had wrist trouble in past. The parent post has good advice.

From personal experience:

1. Switching from laptop to desktop made a lot of difference. I now use a MS ergonomic keyboard.

2. Switched to using mouse with left hand. The problem is that the keyboard is too big on the right side due to the additional numberpad. So if you use a right handed mouse, you often end up holding it at a weird angle.

3. Started using vim.

4. Ensure that keyboard and mouse are at a proper height. If you have to bend your elbows, then something might be wrong.

5. Regularly check to see if you are gripping the mouse too tightly or if you are hitting the keys too hard. You may be unaware of the stress you are putting in the muscle.

You just described my exact work setup.

A couple more suggestions:

- Try to get your screen at eye level. If you can avoid having to look down all the time, you'll put much less strain on your back.

- Your forearm and upper arm should be making an angle close to 90 degrees.

- A little footbench or something you can lean on with your feet, so you don't have your legs dangling or being folded up underneath your chair.

1. Vim (black background)

2. Dvorak (use a typing tutor (like ten thumbs if on OSX))

3. Kinesis (not needed after 1 and 2 are fluent)

Almost left computing because of the pain, but after heeding the above 3 points, I'm back at 100%. No pain, and to top it off, I type faster. Win-win situation :) Oh, and get up and stretch every hour or two. If back pain is an issue (compressed L4 here), then get a desk you can stand at, and a comfy architects stool.

Try changing your posture and work environment from time to time. I regularly switch mouse hands, for example.

Also, dark color scheme is best. I have harmless floaters in my eyes but they make bright white backgrounds look like a freaking protozoan dance party.

eyestrain: optometrist said to focus on something far away every so offend. This relaxes the eyes. I also got some eye drops to help relax them (called "clear eyes" or something)

wrist pain: for me, coldness was a big factor, so I have fingerless gloves onhand, rub my hands warm when sore, and of course try to keep the room warm. Awkward posture and being tense were also factors. And, for the first time ever, I went to the trouble of automating my common tasks in vim (esp. mapping keys to macros).

Straining an injury can make it permanent. Having done it myself, I sincerely do not recommend it.

Sadly, I think a lot of this isn't physical but psychological. The stress of programming for a job will express itself in your body, despite the best mitigating techniques (keyboard layout, editor choice, screen color scheme, typing breaks, posture).

During intense job-related programming sessions, I'd have all sorts of hand and back aches. When programming just as intensely on a personal project, no aches at all.

Getting your circulation going helps relieve both eye strain and wrist pain. I've had both on very stressful projects. Get into the habit of working on your cardio. It's been shown that cardio does help with stress management and brain function.
Is this a joke? How old are you? You're feeling tired and injured using a computer? WTF?

Imagine you had a real labour intensive job, rather than our soft, easy, cushy 'jobs'...

Imagine digging fence post holes all day, trenches, laying bricks, anything else really!

Wow what a pathetic, meek, frail society we have become where people wing about how hard it is to sit on your ass all day long!

Edit: I guess I should add... sure I can understand mental fatigue; sometimes we work with mind numbing, brain twisting complexities. But that just means you should go make a coffee, go for a 15 min walk by the river, whatever. But physically, if you're saying 'computing' is hard... surly this is a joke/troll ... !?

I'm not trying to feed the troll here, but I feel it should be noticed that this is a hacker community, and hackers don't generally dig fence post holes all day, trenches, or lay bricks all day. I'm sure some do, but programmers, who program for a living, need to be in front of a computer of some kind. Not all hard jobs involve labor. I'm guessing you've never had to sit in front of a computer and think logically for a week -getting very little sleep all the while. If you had, you would not only have not written that post, but would learn that thinking, and not moving while you think (limited movement), can be stressful and hard to say the least.

Well, that's my two cents, and from my point of view, and I am sure others share it, when you said "But physically, if you're saying 'computing' is hard," I dare you to do something some of the greater "computers" (people who computer) have done. You know, like make an operating system from scratch without ever seeing code of one, you know, like Steve Jobs did, for example.

Ok. I hope that didn't come out as a rant, and if it did, I apologize, but think about it, computing can be hard.

Sure devving is hard! I've most certainly had my share of ~100 hour weeks, no doubt they are horrific! They ruin you! (My partner doesn't enjoy them either :P) And I'm sure whatever crazy devving sessions I've endured, they are but a drop in the ocean compared to what people a required to pull off when they are taking the first steps in a start-up.

However it’s actually a topic that my best mates and I talk about quite often! How lucky we are that we can sit in our air condition offices all day, drinking coffee straight from a coffee machine, with our nice 26” LCDs, a plant beside us and our high back chairs... While others we grew up with come home wire sore backs, sun burnt, trash hands that just constantly hurt. Heck quite a few have even lost fingers. Sure our computer jobs can be stressful but that’s why we do it, for the kick, we have the drive, we love the challenge.

Yea no shit nobody on here digs fence posts... they wouldn't be bloody winging about sitting in a chair all day if they did ahahah. Surely some of you have had ACTUAL REAL, physically hard jobs in the past? While putting yourselves through university or the like? I had some SHOCKING jobs going through uni from kitchen hand to digging bores/water holes on farm land in outback Australia. Maybe that’s where my appreciation of what a physically intensive job means, stems from?

My point is.. How lucky are we!?!

Anways, watch me get down voted to hell because this isn't what others want to hear about our 'precious lifestyle'. But I fail to understand how your body can get SORE from sitting in a cushy chair for 15 hours a day ... !? WTF!

Anways, watch me get down voted to hell because this isn't what others want to hear about our 'precious lifestyle'

Watch you get downvoted for being unhelpful, unsympathetic and trollish.

Maybe that’s where my appreciation of what a physically intensive job means, stems from?

Why are you talking on and on about physically intensive jobs when the OP is not saying "It's too much effort", he's saying "it's wrecking my wrists and it should not, what am I doing wrong?".

Yea no shit nobody on here digs fence posts... they wouldn't be bloody winging about sitting in a chair all day if they did ahahah

They would if their family survival depends on income from sitting typing and they can't type because of knackered wrists.

But I fail to understand ...

That's a failure in your understanding.

For your eyes, you might want to check out F.lux: http://stereopsis.com/flux

That helped me a little. I also bought a Kindle DX and use it to read PDFs and some web articles converted to PDF. Since the Kindle isn't backlit, it lets my eyes rest vs staring at the big monitors and laptop screen.

I wear a pair of Gunnar Optiks to help reduce eye strain (http://www.gunnars.com/). They have a slight magnification and anti-glare which do seem to have a positive effect. Plus when I have them on I feel like I am in "work mode".
If you're working near florescents, try moving or turning them off. If you made an unlucky draw in the gene pool lottery, the fast flicker from florescents can interfere with your eyes' ability to focus, which can lead to eye strain. Taking a periodic break to stare at something distant is good. My optometrist claims that getting a 15 minute dose of indirect sunlight (looking at something outside with a blue sky background) is even better.

An eye exam will also rule out something like cataracts, which usually hit when you're a lot older, but may arrive early if you made a particularly unlucky draw from the gene pool.

I've been been an active developer for over 35 years, and I can say paying attention to ergonomics is one of the key aspects to longevity. When any part of your body starts to hurt, please pay attention, and take immediate action to adjust, shim, change keyboards, etc in order to stop the aching or pain before it gets any worse, and shut the pain down. It's your body's way of telling you that a change needs to be made. A single gig just isn't worth slamming your potential.

Better chairs, desks, keyboards, and VERY IMPORTANT arm supports to keep your wrists straight while you type. Also, don't pound your keyboard. A gentle touch is always best. If a mouse is a problem, try a trackball (Kensington), or even a "foot mouse".

There are lots of sites on minimizing eye fatigue. Looking away from the screen every 10 to 15 minutes to refocus on something far away is helpful. Also, don't scrimp on your monitor. Use a large display that is crisp and has good contrast.

Being cheap on the hardware you are "bound" to make seem wise in the short-term, but the long-term consequences are disabling.

Please, don't compromise with pain or discomfort.. It only gets worse.

I didn't have the eye strain problems, but did have pain in arms, wrists, under and around my shoulder blade for my right hand. I used my right had to mouse. Was working on a project that "must go live" and the last month of implementation I spent 60 hours a week coding. Seriously.

Big mistake. A day after the launch I could not type, mouse, anything with my right hand as my muscles would ache and lock up.

At work I had a desktop, at home a laptop. The laptop was on a desk that violated every law of ergonomics known to man. The chair was a cheap $79 chair I got in college from the local office supply store. More mistakes.

Fast forward a year, I'd begun to notice that my right arm/hand ached all the time and the area between my shoulder blade and spine constantly held a knot.

My PCP prescribed pills and sent me to physical therapy. That helped a little but the side effects from the pills made me feel drunk all the time. The PT used a technique called "traction" that I later found out was chiropractic in nature. That stretched my neck and seemed to help the symptoms. That an excercises and an occasional pill when I had a bad flare up seemed to help manage things.

Fast forward another year and after an ergonomic makeover (explained below) I was hurting again and figured I'd go see a Chiropractor which my family (all Chiro success stories) suggested I go to. Wow! I've just celebrated 1 year of Chiropractic care and feel amazing! It's not solved all of my issues and I still have to manage my time in front of the computer, but it forces me to use it wisely.

Here's a list of items that have helped me:

- Read everything you can about Ergonomics

- Buy an Elevator for your laptop - www.griffintechnology.com/products/elevator - By itself it isn't high enough for me so I have 2 thick text books under that as well to keep my eyes at a 90 degree angle from my screen

- Buy a good chair. I broke down and bought an Aeron chair from a used office supply store. One of the best moves I could have made.

- Take loads of breaks, stretch, excercise. Push ups, lateral pulls, "give yourself a hug" all relieve tension and strain. Find any and all stretches for your neck and upper back.

- Sleep. Really, look at the code you've written when you're fatigued and look at code you've written when rested. My CTO says that "every programmer has 4 good hours of code in them a day". That doesn't mean to work 4 hours, but that you need to listen to yourself when you're "spent". Accomplish the toughest tasks first thing, then once your "spent" do the menial tasks that take effort but little critical thinking.

- Go to a Chiropractor. I kick myself for suffering literally for 2 years! For the wrist pain, they can pop your wrists and relieve the pain.

Good luck and I hope my suggestions help someone.

You might look into the work by Dr. Sorno. I know people saved by his methods from RSI/CT... I don't necessarily agree with his repressed anger and hostility hypothesis but I think the basic idea that the mind can generate these body pains for reasons we don't understand. Fortunately his techniques work regardless of the specific psychology involved. Start here..http://podolsky.everybody.org/rsi/
I have an old SGI keyboard that I'm absolutely partial to and a simple dual screen setup with two fairly large monitors a good 2' (60 cm) away from my head.

It works, but after sitting for > 10 hours I have to take a fairly long break.

move my desk up (or down) 2 cm and I end up with very had shoulder pain. It took a lot of trying to get it right.

Chair is a fairly cheap office chair but it has lots of stuff I can change to force changes in position during the day.

I removed the armrests because they make my arms hurt like hell.