I've been programming for about 5 years now and I have just started my first professional development job. One thing I have noticed since I started is that programming can be very uncomfortable, especially for tall people like myself.

As I have started to do more and more programming I have started to get a sore back, a painful shoulder, sore elbows from leaning on the desk etc.

Much of this is down to bad habits like slouching in my seat and bad posture (which I am trying to fix), however I was wondering what tips people have to help avoid or alleviate common problems which can easily occur to any programmer.


EDIT - Loads of great suggestions so far - main points seem to be monitor height, chair quality, exercising/breaks and cushioning your elbows. Thanks - any other ideas would be much appreciated.

+6  A: 

Jeff had a very nice article about the best in quality chairs. Hope it helps

Ólafur Waage
Your right - good article. My current chair is rubbish with no arm rests. I'll need to look into getting a better one. Some of the chairs in that article look great!!!Thanks alot
You are welcome :)
Ólafur Waage
I have yet to find a chair that goes high enough for me to get the 90 degree angles. I'm not really very tall either (just 6'2"), wondering how people that are actually tall handle it?
Brian Knoblauch
@Brian Knoblauch: 6'2" isn't tall?

I'd say the best thing is to get out of that chair every once in a while and walk around...

+17  A: 
  • Get a decent chair.
  • Walk around from time to time (don't use the phone for inhouse calls).
  • Stretch!
Ergonomic chair!
+3  A: 

I have folded two towels to put under my elbows. Makes me look like a weirdo but it's very comfortable. Also, use the keyboard as much as possible - if you're in Visual Studio, look at something like ViEmu to make keyboard usage more comfortable.

This sounds like a good idea too - My elbows are getting very sore from leaning on them a lot. This is also related to the fact that my chair is bad - it has no arm rests.
Even with armrests my elbows get sore as the cushioning on most armrests is rubbish.
+7  A: 

Having the screen at your eye level is one of the main things that helps me, this might mean putting it on a little pedestal, or a couple of larger books.

Harald Scheirich
+5  A: 

If you are tall, you need your desk and chair to be higher so that keyboard and monitor are at the right height.

Also, using some software to alert you to take breaks like Workrave is a very good idea.

Milan Babuškov
Workrave is great but is Linux and Windows only. A good Mac OS X alternative is
Zsolt Török
+3  A: 

Try raising your desk and getting an adjustable chair.

the top of your monitor should be at eye level and your keyboard should be at elbow level.

Try getting a better chair too, that can often help with back pain.

Omar Kooheji
+6  A: 

First, you need an adjustable chair and desk. And take time to adjust them!

Second, take regular short breaks. (To the coffe machine for example).

Third, you alread mentioned it, beware of your posture! Sit straight. If you have troubles with sitting straight, you could use some kind of seatbelts in the chair. It sounds silly, but it works great.

Fourth, train. Join a sport club or use the bike to go to work.

Fifth, regular massages are great.

I have learned this the hard way (one year unable to do anything) but luckily i was cured.

+3  A: 

You may give a sitting ball (aka Exercise Ball) a try. That's certainly not for everyone and you need one that exactly fits your height, but it might help you with staying in a comfortable position.

Apart from that, keep right angles. Feet/leg, knees, elbow, all 90°. Adjust your table so that it fits with that. The monitor's (or monitors') top edge should be at your eye's height. Get yourself an ergonomic keyboard (really helps - can't live without my Microsoft Natural Ergonomics Keyboard 4000, but again, not for everyone). Microsoft ergonomic hardware always comes with some decent guide about how to sit in front of a computer.

Oh, and then, don't you have an ergonomics guy at your company? The last company I worked at had one, who came around from time to give you advice.

Yeah, it's well worth talking to an occupational therapist - bigger companies will have one.
Phill Sacre
There will probably be one here, but I don't know yet. I'll ask about it - thanks.
Keeping right angles would not be good advice according to the article I linked.
Well, according to several articles I've read (and according to the ergonomics guy I mentioned), it is, and I'm very comfortable with it ;)
+1  A: 

Good Chair, tall back chair to support neck, avoid chairs with arm rests that put your arms at a different level than your KB/Mouse.

LCD MOnitor for eyes, bigger the better,

foot rest thingy (slanted board to put you feet on under desk)

Wrist support, both on desk as well as some sort of brace to help prevent carpel. I wish i used them earlier, but since starting to use my wrists are so much better.

+2  A: 

Consider working standing with a stand-up desk.

Manrico Corazzi
are you serious?
I have a friend with backaches who tried a standing desk and told me it actually helped him. I tried once, only for a few hours, and I must admit it's more comfortable than I would have thought.
Manrico Corazzi
+1  A: 

Use a good keyboard: Microsoft Natural Ergonomic Keyboard 4000 or Microsoft Natural Keyboard Elite. Find a good Trackball.

+4  A: 

Learn a form of exercise that you can do in your break which stretches you out and takes your joints through there full normal range of motion. I do tai chi, but I guess yoga would work as well. One company I do some work for got in a table tennis table for lunches and breaks, which rocks. Maybe suggest the boss get a WII fit board for the office ;)

Shane MacLaughlin
+2  A: 

I once had a problem with sore wrists and a slightly sore back. I began doing a few exercises each day and the problems all but disappeared. I don't know which exercises helped the most but I did some pushups, got me a hand-weight (4kg) and did a couple other common execises (I don't know their name in english so I can't elaborate). I think the main point is to exercise all the major parts of your body (i.e. wrists, arms, back, neck(if possible?) etc.) and it's less important exactly how.

You could probably get some of the same effects with e.g. powerballs or other intelligent 'toys'.

Morten Christiansen
I think exercise is very important for programmers - you are right. I have plans to start playing football (or soccer if you are american) to help keep myself fit :)We don't want to end up like Homer Simpson did when he got into computers ;p

Answer to a similar question, here

Andrew Edgecombe
+2  A: 

Fidget! If you stay still, you do yourself damage, so change position, change chair, move around, take breaks, anything that means you're moving around and behaving more like the homosapien we are designed to be :)

Matt Roberts

Get a good chair, keep your monitors easy to see at your normal posture, move around.

Also, it may be a good idea to get someone to give you a backrub while you're programming :D

if I could get that I would be a very happy guy :)
+3  A: 
That chair configuration is awesome. Almost the same position you drive in...
Jeff Wilcox
That would be a pretty ghetto driving position :-P Seriously, notice that this guy is not typing and mousing--he's reading. This may be a great seating position for your body if you're sitting still, but to type from this position would be very hard on your arms and wrists, and by extension, your shoulders and even back.
this looks like a horrible configuration. Just a small movement and the wheels would offset the foot rest forcing you to readjust. Looks a little high as well, how do you get into that chair in that position? Looks like a staged photo. :)
That looks like the greatest chair ever! Looks very much like a car bucket seat type configuration. I don't think I would want it reclined back that much though. Can anyone post any more information about that chair please.
Dale Halliwell
Thats a Humanscale freedom chair.

Get a hand gyro to work on the carpal tunnel. Make sure to get one with a tach and have competitions with your co-workers.

Jason Z
I have one of those and it is pretty good for home use. I wouldn't use it in the office because of the noise!
Petteri Hietavirta
+2  A: 

I would recommend you get a stress ball ASAP. Even a tennis ball does the trick, but a softer one is more recommended.

Maybe it's just me (I say I have nervous hands), but I'm playing with mine all the time (which doesn't usually distract me from the job at hand) and it immensely relieves stress levels, which is a contributor in work comfort. Sometimes I get really nervous if I can't find the little ball, which is a whole work therapy for me.

Give it a try -- it may not fix your sore back, but will most likely help your overall comfort condition.

Thats a great suggestion - I used to have one at home but I'll definately keep an eye out for one. I have a little 20 questions gadget toy that sits on my desk and I have been fidgeting with it all the time! I think a stress ball would be a good replacement :)
+2  A: 

On the non-ergonomics side of things:

If you're still stuck with a CRT monitor, try increasing the refresh rate to the maximum your monitor can support (75, 80, 90, 100 etc. Hz). A low refresh rate (50, 60 Hz) may cause eye strain and/or headaches in the long run.

If you're using an LCD, make sure you use the native resolution of the monitor so that pixels snap right into their right spots (also make sure you apply auto-adjustment if you're not using a DVI connector).

Work on increasing the amount of code you can vertically see at a glance by getting rid of unneeded toolbars etc. If you can, get a monitor than can be tilted to a vertical orientation. Having more vertical context around the bit of code that you're working on definitely helps with the mental strain.

Have a big container of water next to you and drink lots of it!

Ates Goral
Good idea about maximising vertical space - I heard a statistic at university that said that students who write code in non-maximised windows stand a much higher chance of failure since they can only see a fraction of their code at one time.

For me my biggest problem lies in having to sit down for a long period of time, It gets really unconfortable because it is difficult to swich my weight from one side to the other.

What I did was to buy myself a water seat cushion which kinda resembles a donut so that I can easly shift my weight from time to time.

Of course, workrave exercises also help (specially for both eyes and arms).

+2  A: 

Check out Office Ergonomics Training.

Some interesting things I didn't know:

Conventional wisdom holds that there is such a thing as a "correct" posture. In reality, posture change seems to be as important as posture correctness, especially with regard to the intervertebral discs in the spine. These discs lose fluid over the course of the day because of the weight they carry. It appears that posture change is essential to help pump fluid back into the discs. People who stand all day tend to have back problems --- but so do people who sit still all day.

Conventional wisdom for monitor height is that the top of the screen should be about at eye height. This is fine for some people, wrong for many. The current recommendation is that eye height is the highest a monitor should be, not the best height. Many people find a low monitor to be more comfortable for the eyes and neck.

+1  A: 

I am 6' 4" and a sturdy 320lbs! I know what you mean. I hate to say it, but don't plan on sitting upright all day. Find a job and a chair that allows you to literally kick back in. I am almost parallel to the floor when I am at work coding or at home writing. Lean as far back as the chair will allow you without tipping over. Put your feet up on something. Bring the keyboard onto your lap (ergo keyboard - MS 4000 is best) and get a trackball (logitech model is best) that can be used anywhere regardless of surface. This will almost entirely remove all of the stress off of your back and will entirely remove any downward pressure placed on your lower back (no more compressing the spine). Initially this may end up stressing your stomach you are basically doing a single crunch all day. But no worries that goes away real fast.

Doing this will allow you to sit at your desk and code for 30 hours straight. Do invest in the biggest monitors you can afford. If you company won't buy you big ones then get them your self. Have at least two...preferably three. This forces you to change your viewing angle and requires your eyes to adjust to different depths over time (helps to fight fatigue).

The only other thing you need is an amp for your headphones and a great pair of head phones and you are off and running!

Outside of my direct posture and work environment the one other thing that I have found that really helps me at work - a gym membership and working out at least 5 days a week. This keeps my energy up. Keeps me flexible. And allows me to sit all day without feeling like a pudge!

Andrew Siemer

Whatever you do, don't get a chair where the arm rests aren't made of solid plastic. I've gone to sleep with my elbows hurting quite a lot of times, till I bought myself a new chair with foamed arm rests :)


I don't sit perfectly at home (which happens to be my office for most of my work hours). I'd really have to get a new desk, a better chair and who knows what else to achieve this. I'm 2 meters tall so I have a lot of back and neck to support.

Despite this I'm not heavily bothered by the long hours. I generally get up now and then to fix something to eat, go to the bathroom, stretch my back, arms and so on. But the most important thing that makes my body last through a week of work is my exercise. I do Muay Thai three times weekly and go to the gym whenever I can squeeze it in, at least once per week.

Having healthy muscles helps support your body a lot and even when you're sore from exercise you won't have as much trouble keeping fairly upright.

+2  A: 
  • Regular exercise (gym, pool etc whatever ticks your clock, thrice a week is a good balance for me)
  • Get up and take a short walk once per 1-2 hour, stretch.
  • Massage once per month by a professional (Sports type massages work well for me on the back aches and the sour mice shoulders)
  • Get comfortable... This does not necessarily means expensive stuff, just be imaginative with your environment, don't be afraid to poke holes of dig dents to hold things in place. A small nail or screw can often do more than a 1200$ office chair.
  • Good eat, good sleep

I don't have a problem with back/shoulders/elbows...
But I did have pretty bad problems with my wrists, especially when I went from coding for fun to coding 8 hours a day.
It was partly caused by bad typing habits and partly bad equipment.

Things that I do which have almost completely eliminated any wrist pain:

  • Got a padded wrist rest thing which sits in front of keyboard. Helps keep wrists straight.
  • Got a nice super-flat 'laptop style' keyboard. Don't have to push keys so far to engage them.
  • Changed keyboard so it tilts away from me (the front is about 1cm higher than the back). This forces my wrists to be straight, instead of tilted upwards.
  • Got an ugly-ass ergonomic mouse. Looks hideous and takes a bit of getting used to but has made a huge difference. Warning - I have to have a 'guest mouse' for visitors because the ergo one is so funky nobody can use it ; )
  • Do wrist streches couple of times a day. Like 'praying hands' position with palms together, thumbs right up against chest/stomach and hands pushed low towards waist so wrists are bent to 90 degrees.

And like your mum (and everyone else) said, sit up straight.

David HAust

A lot of good suggestions here, this would be my list:

  • A supportive, firmly padded chair that adjusts for height, seat-back recline, seat-pan tilt. If it has arm rests, they should be adjustable. Chair should support thighs while feet are firmly on the floor (if your feet don't reach, use a foot rest).
  • Keyboard and mouse should be mounted just above your lap, preferably with a negative tilt (i.e., the space bar should be the highest part of the keyboard, the "F" keys, the lowest). The goal is to get your forearms, wrists, and hands in a straight line approximately parallel to the floor or angled slightly downward (if you were just sitting there and not typing, your hands would naturally want to rest on your lap--so you want to get as close to that as possible). If you wrists bend upward, that puts pressure on the carpal tunnel.
  • An ergonomic keyboard, as several have mentioned. The latest Microsoft ones are good have a lot of research behind them.
  • Monitor should be mounted so that the top of the screen is approximately at eye level. If it's a large monitor, the top can be a little above eye level. A monitor that is too high or low means you have to tilt your neck, which puts stress on your neck and shoulders.
  • And yes, taking breaks is a very good idea, though, I sometimes lose track of time. Drinking a lot of water can help remind you, though, because eventually nature will call :) (Plus, water is good for ya!)

Good luck.


Exercise! Move your body. A healthy body makes a healthy mind makes you a better programmer.


Most important at all is to move often when you sit. roll around, move your shoulders. change your position on the chair. Get a chair which supports moving around. Go and get a coffee. When talking oon the telephone or talking to your colleagues stand up. Walk around if you can. Instead of calling go to the other room to talk to your teammate. Also move your feet while you are sitting. Avoid sitting still for a long time. Keep moving.

+1  A: 

Ensure that you've got the following:

  • A desk that's the right height; your keyboard should be positioned roughly level with your elbows when sitting
  • A decent, fully-adjustable chair with proper lumbar support
  • A decent-sized monitor with a good resolution, also positioned at the right height - if you're a tall guy/gal, this may need to be raised so it's roughly in your eyeline

If you don't have any of these, challenge your line manager. Depending upon the country/region in which you work, there may be legislation which requires your employer to safeguard your health by providing these things for you.

Ensure that you have:

  • Plenty of opportunities to pause and stretch your legs; wander off and make a cup of tea or something
  • A proper break; at lunch, say, leave the building for at least a short while (even if you normally eat in a canteen, etc.) and get a bit of fresh air and a short walk
  • A decent climate to work in; take advantage of heating/air conditioning to ensure you're comfortable, and try and get some natural light and outside air in the room

The posture issues are, of course essential for anyone working in IT, while the fresh air/proper break/light exercise issues help to freshen up your brain and stop you getting totally stuck on one thing.