I have found after many years of programming that how I take care of my body before I ever sit down is much more important than the environment I sit down to. I have sat in over 100 offices of every possible condition (some you wouldn't believe) and have figured out that there's a "time warp" involved here... If I've taken care of myself, then I can function quite well in the worst client dump. If I haven't taken care of myself, then the most expensive of everything won't help much.
I have had scoliosis my whole life, so I've had to learn how to take care of myself or I never would have made it this far. Some of the things I always do:
- jogging (3-4x per week)
- body weight exercises (I love Hindu squats and push-ups.)
- stair climbing
- proper eating (a whole subject itself)
- monthly chiropractic visits
- getting out of my chair every hour (a must for ANY chair)
Oddly, I have never really followed most of OP's advice because I never thought it was very important. Most other programmers can't believe me, but here is my typical arrangement:
- cheapest chair from yard sale
- cheapest (disposable) laptop (currently $350 Lenova)
- one monitor (I can't stand > 1; I lose my focus.)
- good keyboard & mouse (the only things I don't skimp on)
- any work surface, as long as it's lower than 29"
- at least one feline companion
OP brings up some good points, but the most important thing is to find out what will work for you for years. It's a marathon, not a sprint.
Studies have shown chiropractic to be no better than placebo for pretty much all conditions other than lower back pain. For lower back pain it is better than placebo but not massively and given the associated risks (please tell me you don't let him near your neck) you'd be better off with more conventional remedies.
Don't get me wrong, if it makes you feel better then that's fine (though you should be aware of the risks). Most Chiropractors are nice, well meaning people, but medically it is unfortunately largely bunkum.
(Incidentally as far as I can tell there is no good evidence to support chiropractic in the treatment of scoliosis, though I'm sure your chiropractor has a different opinion.)
100% agree though with looking after your body though.
Dude, how do you double blind a chiropractic treatment? It's very very difficult. What is the placebo for this trial? Again, this is a tricky ariiea and most current options are rrelatively poor. I research placebo and the only areas where we have good enough processes to disentangle placebo and real treatment is with pills freaks and injections. Anything else is pretty hit or miss. I'm not saying that chiropracty works, just that we have no good way of seperating the expectation effects from the 'real' effects.
A typical patient has no idea about the precise nature of the manipulations that are to be used - location, intensity, type of manipulation and so on. For chiropractic to be valid they need to be able to prescribe a specific treatment to a specific condition for a patient. If the prescription is valid then if the patient undergoes a different manipulation it shouldn't have the same effect. If it does then the idea that it was that specific manipulation is potentially invalidated.
You could actually even double blind it by having one chiropractor diagnose and prescribe treatment, and then have that treatment randomised so it was either done as prescribed or substituted for a sham treatment. That treatment would then be administered by a second chiropractor who was unaware of the diagnosis and not allowed to speak to the patient about it or modify the treatment.
Even if that was too complex or otherwise flawed a properly constructed single blinded RCT trial is still valid evidence, even if it's not the best of the best.
Here's the deal with Chiropractors. They heal symptoms. It seems to work great. You walk out feeling better without having to put in significant effort. They know your symptoms will keep returning and you'll end up paying them every week or two forever.
But you should figure out what causes the symptom, and fix that. It may take effort. Most times it takes strength training. But it's better for you then going to some guy to push your bones around once a week.
No, but I have read the results from a number of reasonable sized peer reviewed trials on it which show that whatever my personal experience might be, the most likely reason for any benefit I might experience (for any condition other than lower back pain for which there is a certain amount of evidence that chiropractic is effective) is the placebo effect.
I also have scoliosis. Chiropractic adjustments correct my alignment and balance; I walk taller, can stand for longer, and feel less pain after an adjustment.
To jump on a bandwagon, I also have scoliosis - 'marked' in my case (can't remember my Cobb Angle.)
As an aside, I'd be interested to know if anyone has ever done research on lifelong computer use (started when I was 6) and the rate of scoliosis.
In my case (obviously YMMV), chiropractic adjustments made me feel better immediately afterwards but gave me no long term improvements. The following other things have helped me incredibly, though, to the extent that I can't remember the last time I had scoliosis-related pain (which was a daily occurrence 5 years ago.)
- Swimming 2-3 times a week, mix of strokes.
- Finding a good sports physio, who really understands anatomy. This took a few false starts and lots of asking around, but eventually I found one who gave me extremely good advice on where to stretch, and where to strengthen, to start resolving the muscular imbalances that exacerbate scoliosis.
- Feldenkrais Method. I know this one will set the "skeptics" off instantly. However, Feldenkrais has helped me learn to pay more attention to my own nervous system and my own muscles. When I first got properly diagnosed (10 years ago, age 18) I used to regularly forget which side my curve was on and where it went. I certainly couldn't feel if I was moving "into" or "out of" my pattern, or notice when a part of me was tensing up or pulling me out of alignment.
Working with Feldenkrais was basically about teaching my brain (through repetition, over and over) all the subtle movements that my body was capable of, so I'm better at knowing where my body is at any given point, and at engaging all my core muscles when I move around.
There was a big "aha" moment when we realised that, in my case, my right side iliopsoas muscle can build up an enormous amount of tension (especially when I'm stressed or sitting a lot - hello programming!), and this exacerbates all my symptoms. Learning to release that (I use 'trigger point' methods so I can do it myself) made a massive difference.
- The noteworthy differences between the physio, Feldenkrais, and the chiro, was that the first two were teaching me skills to manage my body myself. I haven't felt the need to go back to see either of them in over a year, they've both given me pages and pages of handwritten notes and exercises, and encouraged me to notice what works and what doesn't and decide for myself what I should be doing.
Your Mileage Will Almost Certainly Vary (maybe completely.) Also, obviously (this scares me quite a bit), things are going to get harder as we get older (I'm only 28 now.) But hopefully some of it may be of use to someone else here with scoliosis, if they want to try and reduce their overall pain and discomfort.
But I bet you need another adjustment sooner than later. That's the deal with Chiropractors. Make you feel good enough they know you'll come back and pay them again.
I completely agree with this. Anecdotally from my own experiences. About a year ago, I decided it was time to be in shape again, lose some pounds, feel better, all that. So I went to the gym regularly, went for runs, bike rides etc, went dancing on the weekends. Nothing super heavy, just a lot of solid activity. About 2 months ago, I sort of fell off the wagon because I let work get in the way (then laziness crept in a bit too). So I am currently well versed in the whole gamut of exercise benefits (and non-exercise drawbacks). They directly relate to programming too! Not exercising is correlated with:
- Not sleeping well
- Feeling anxious more frequently
- Lack of focus
- Lack of motivation
- More difficulty following complex problem/solutions
- General irritability
After this next deadline in a week, I'm renewing my commitment to exercise and putting it in the non-negotiable list of things to do everyday.
For the last 7 months I have been completely focused on a project and have been neglecting exercise to a point where it feels like it has become a slog.
Some may say it's burnout, but I am not losing interest -- everything just feels like it has slowed down. Code that I should write quickly is taking longer.
I know it's marathon, not a sprint, but if you don't keep your body in shape that marathon can take longer than it should. So this week I have committed to focus on exercising and getting my energy levels back up.
In recent years, I have added yoga to my "body list." For the uninitiated, it likely sounds foreign, but the strength, flexibility and mind-centering aspects of a yoga practice must be experienced to be fully appreciated.
I'd like to take a yoga course which focused on strength and flexibility, without all the hippie mystical BS that seems to infect most of the yoga I've seen.
There's power yoga. I prefer Vinyasa, but the classes I've been to and the DVDs I've watched all have had some mysticism to them (for certain definitions of mysticism). That doesn't bother me, though. I enjoy the meditative aspects of it. I just ignore it when it starts to get a little too out there.
I found power yoga, where I did to be a bit too soft, I swastia is very good type of yoga to do. Also found something that around here they call pilates-mat, which is pretty close to the yoga that I didi without any of the hippie things.
I know a few people who felt Yoga sounded a bit "soft" (I know it doesn't have to be) but for those who want something a bit more physical you might want to look at pilates.
As I say, I know it isn't necessarily easy (perhaps gentle would be a better word), but that is a perception and for those people Pilates might be an alternative.
I am in a pretty good shape, working out and playing basketball multiple times per week. Still, the few times I tried yoga it literally kicked my ass. I've grown a lot of respect for those old ladies doing it.
My setup almost exactly matches yours (but I got two cats ha!). On the body side, I generally eat well, have been swimming once a week, but could do with more exercise.
I totally agree with you here. It doesn't matter how much you drop on your fancy chair (and I can't believe how much people debate this endlessly). If you don't get out of it for a few minutes every hour, all your money is probably going to waste in the long run.
I spent 4 years work standing up, at a drawing desk - it was really great. I had a high chair to sit on if you needed to but most of the time I was standing with a pen in my hand and the board at a slight tilt towards me. I wasn't an architect or draughtsman so I wasn't using the t-square - just pen and paper, but I long for those days.
I never got tired because you move all the time, and I never had back problems. OK I was younger then.
I once saw a long since removed video of a touch interface demo'd on an A0 size table by a company that Apple subsequently bought (about 10 years ago) I'm wondering if they'll ever get round to producing that device for real - I'd certainly by a desk sized touch screen mac and get back to the good ol' days.
How do I find the right chair for me? I have visited those expensive chair stores and tried a bunch, but it seems like none of them really clicked with me. Or at least, in the time while I was at the store.
Also, is there anyone/anywhere I can talk about setting up my desk properly? I've reviewed a lot of the literature online but still seem to deal with my desk setup triggering flareups after using for a long time...especially with something like Starcraft. I'm starting to think the fact that I took the arms off my chair is making my forearms tense up since they have to both flex (to move my fingers) and hold themselves up.
I dont think there's a perfect chair, just pick a sturdy one that adjusts a lot and keep adjusting it all day. Also, i find that when the chair is on a carpet floor, thus not able to roll easily, i feel more comfortable than when it rolls easily.
If in an established company, ask for a new chair. For decades I put up with whatever POS I could scrounge ... until I discovered that one could just ask for a new chair, and whoever was tasked with corporate ergonomics made sure I had one pronto. Maybe not perfect, but chosen for reasons known by someone tasked with understanding such things, and way the heck better than any discarded seating we're used to.
Most reputable and higher end stores will allow you to take chairs home and try them for several days at a time. Do not make the decision on what chair feels the most comfortable to sit in at a store.
If you've been sitting in cheaper chairs and have bad posture then immediately changing to a chair which forces you to site correctly is going to feel uncomfortable for awhile and you might even experience more pain initially.
It's very important to try any given chair for at least several days before purchasing (even at that, sometimes days is not enough).
Some tiny details seem to make a big difference for me:
- A clicky, model-m type keyboard makes it easier to type effortlessly
- I find i get full-body rigidity when i try to do precision tracking with my mouse. That's why i love the alt-click to move/resize conventions of linux window managers which unfortunately i cant have anywhere else
- An ipad is a good excuse to get up and read that article walking around instead of sitting
- Good lighting , and a window in my visual field so i can fixate at distant objects and rest my eyes. f.lux also helps
- More than 1 monitors are eye sore, i prefer 1 large screen
I find the short term transition between Dvorak and qwerty when using other people's computer much harder than just the shape of the keyboard. (And setting other computers to Dvorak for temporarily is easy nowadays.)
This is almost my set up exactly. My parents got me an Aeron when I graduated college, and I recently went to three monitors. Three really is the sweet spot -- I keep Emacs split vertically on the middle monitor, a series of Chrome tabs open on the left screen for reference, and a mosaic of terminals on the right.
Pro-tip for "programmer's back" - take pilates. Just do it. You'll feel like an idiot for a while, but my god will it improve your back strength and flexibility. Most back pain actually comes from your hip flexors, and so you end up working AROUND your back rather than on it directly, which makes it easier to get started. And unlike pumping iron at the gym, you generally leave class feeling taller and refreshed.
Speak for yourself. Serious lifting at the gym works wonders for me. And the posterior chain work I do (squats, deads, GHRs, GMs), as well as my typical cardio (erging, other than walking around) helps with the flexor/extensor imbalances many people have. Used to do some kettlebell work, not so much these days but just for lack of KBs at the gym.
I've done various physical activity through the years, and I've found that virtually any of it provides real benefits: strength training, as mentioned, also HIIT cardio, long-duration cardio, stretching and flexibility work, foam rolling / myofascial release. You want to work each system in balance.
Pilates (or any other single practice) may be fine of itself but it's not a One True Solution either.
I totally agree with every word of it. Buying good stuff (good as in quality, not in fancy) is crucial to make your life better and easier as a professional programmer and I bet one of my fingers that this holds true for other professions too.
I'm just sad that most of this (best chair in the world, motorized desk) are not available (at least not close to an affordable price) in most countries, being Brazil one of them :(
I don't have one at home (they aren't that good for games so I haven't bothered to change my home setup) but just using it for the 8 hrs in the office a day was enough to get rid of the constant pain. Take a little getting used to , but really the way your hands sit on the keyboard make more sense than twisting them in to sit properly on a flat keyboard.
I have two of those keyboards, and I really like the layout. And it's one of the only keyboards that gives you a negative tilt angle. But I wish they were available with mechanical key switches. I have gone back to flat keyboards with cherry brown switches, because as good as the layout on the ergonomic board is, the key action is unbearable.
I love my Microsoft Natural Ergonomic Keyboard 4000. Microsoft discontinued the model for a while, replacing it with a smaller, crappy version that had half-sized function keys and non-standard cursor key layout. I actually bought some 4000 models on eBay to scrounge for replacement parts. <:) I'm glad Microsoft has apparently resurrected this model.
3 monitors is absolutely the sweet spot. On my MBP I use 2 USB display adapters and shut the lid to give me 3 external monitors running, works really well for a number of workflows. To main screen setups I find most useful are
Web Dev:
Web Page - Code - Documentation/Google/command line
and TDD:
Test Code - Code under test - test runner
under Windows they perform really well, no noticeable difference between them and the main screen, on OSX they aren't quite as good in certain applications because their drivers aren't as solid for OpenGL but I barely notice it
If you are waiting for your computer, you are wasting time.
Humans can work around waiting. Computers can't. No matter what I do, it's my computer that is waiting for me most of the day. The occasional compilation run that takes a while I can wait: I use the time to ponder about my code, or looking for an answer to something I didn't quite get right, or just staring forward and getting a feel for the program I was writing. I might tinker with an Emacs buffer without saving so as to not interfere with the compilation. I often work better when compilations are slow: I realize I need to be sharper myself to justify another recompilation. This means fewer bugs and more thinking before writing.
For reference, I have a fairly new quad-core laptop with lots of memory but I'm working on a huge project that certainly takes a few minutes to compile, minimum. I'm still better off with a laptop instead of a more powerful desktop system because the mobility suits my living and coding habits better, so I'm intentionally volunteering for a perf hit.
I've been sitting in a Steelcase Think for a few months now and, for a $700+ chair, it feels cheap. It is crazy configurable and seems to be doing all the right things, but here are some of the problems with it:
One of the chairs arrived broken. I understand that shipping is stressful but if a chair breaks during the stresses of shipping, I cannot imagine the rigors of thousands of hours of work is good for it.
It looks metallic and even has a metallic name, but it is mostly plastic.
The lumbar .. bar never stays up. It will also get caught between the horizontal "wires" that make up the back of the chair. These two annoyances means that no one uses the lumbar support.
And, lastly, it just feels like a cheap knockoff of a "real chair". I have been attributing this as a manufacturer-wide problem with Steelcase and just assumed that the Think chair would be symbolic of the rest of their line. That's why I'm surprised to hear a comment that suggests a Leap over an Aeron. Did they just suck with the ultra-configurable Leap and actually make better chairs in general?
Individual fit makes a big difference here. I prefer a Steelcase Leap or (especially) a Haworth Zody to an Aeron, and I know others who prefer Aerons. Based on my experience, those issues w/ your Leap are unusual.
I also really like using a lap desk and coding in an Eames lounge chair, but that's probably not as good from an ergonomic standpoint.
(Incidentally, I live within an hour's drive of where all four are produced, and great furniture is occasionally quite cheap on craigslist here. My wife snagged an Aeron for $50!)
I own 3 Steelcase Leap chairs (previously owned an Aeron and didn't care for it). The one I'm sitting in now, I've owned since 1999. It's survived 4 cross country moves and numerous transports to job sites and back.
I originally bought one for work (as I didn't like the "ergonomic" chairs that the company I was at provided) and liked it so much that I eventually got another for my home office and my wife got one as well.
I had an Aeron at my previous job. My experience with that chair was that it tended to act like sandpaper for whatever I had in my back pockets, even a very thin wallet. I bought a Leap for my home office and I really like it. In my opinion, the upholstered bottom and back on the Leap are more comfortable than the mesh on the Aeron. YMMV.
No matter what chair you're in, if you are going to be sitting all day - get everything out of your back pockets! Otherwise you're putting strain on your lower back, and it might punish you someday.
I bought an Aeron over ten years ago and have never regretted it. Everyone's different, so go try chairs and make sure you have a return period. What feels fine after five minutes in the store may not feel so good after five hours of coding.
I also dislike the Aeron. I have a Leap and it's not bad. I've never had a chair that's felt perfect. I'm curious if anyone out there has tried the Humanscale Freedom chair with a headrest?
Agree 110% - I destroyed my wrists at age 18 working 12hrs/day on a startup (who recently got acquired, congrats guys!) because my setup was ergonomically very poor and I had terrible typing technique.
Luckily, I had my parents' health insurance and was able to go to physical therapy 2x-3x a week. They were both able to reverse some of the damage done, and teach me proper typing technique and other "work hygiene".
I've worked just as hard since and I've never had any problems since, by rigorously doing my exercises and practicing good technique. I'm surprised there's rather a lot of discussion in hacker circles about the best chair, but so little discussion of other ergonomic concerns and typing technique.
My mom, who has been a software professional for over 30 years, has been dragging around the same external trackpad from job to job. It now has a serial to PS/2 adapter behind a PS/2 to USB adapter, but she swears by that thing. Mice are awful for wrists.
After years with a super cheap Office Depot chair I just purchased my first nice chair (an Embody who should be delivered today). Funny thing is that the bad chair messed up my back enough to cost me in chiropractic visits more than the nice chair.
Invest in a good window that you can see out of too - it will let you look up every few minutes and change your focal point, thus reducing eye strain and the eventual headaches that follow.
i sometimes feel guilty because I consciously spend ~1 hr of my workday working on whatever I want to learn about on my employers dime. These crazy side projects almost always pay off for that employer or the next one 6 to 24 months down the road.
Yet I feel guilty about this. Am I the only one that 1) does this and 2) feels guilty about it?
My sore back loves my "Ma Roller". It's a self-massage tool that's like a rolling pin for your back. It can be intense for the uninitiated, but if you enjoy deep massages then you will like the Ma Roller.
Good prudent advice, shd be appendix to oneo f McConnell's books.
I would add, keep some exercise equipment and musical isntruments nearby to keep your brain zonable. I recommend a exercise ball and chinup bar with some TRX training straps. And a Ibanez electric guitar and a clarinet!
About a month ago, I bought a used Steelcase Criterion chair from an office liquidator for $120 (I believe it was Portland Office Furniture). I think the retail on these was around $800, and mine was in great condition. It looks like an ordinary office chair, but it's super adjustable. Seat height and back height, of course, plus arm height and arm width, overall tilt, seat position forward/back (it slides), and back tilt adjustment. Unlike any other chair I've ever had with a tilting back, this one can be locked in a properly upright position.
As you may or may not recall, I built a standing desk and was using that for about six months. It helped, but my neck/shoulder pain continued.
Three days after getting this Criterion chair and having proper elbow support, my neck started cracking like crazy. For the first time in three years, my neck muscles were able to properly relax. I'm sleeping on a normal pillow for the first time in two years.
So, my conclusion is that adjustable elbow/forearm support is absolutely critical. This goes against all of the old ergonomic literature I've read. Also, upright posture is very important, and you can't achieve that with a chair that lets you sag backwards.
Since most of HN is quite young, I'll do the old guy thing and give a stern warning: you may not have any problems now. You probably think your back and neck will be fine. And you might be right. But here's the thing: you won't know whether you're susceptible to these sorts of injuries until you develop one, and then it's too late. And by the way, stop slouching. ;-)
For those who haven't looked into it, you can usually find a good, used chair on Craigslist, from a liquidator like I did, or from a private party. Aerons go for $400 - $500, if you can get one for $350 it's a fantastic deal. Criterions go for $100 - $300. The Steelcase Leap is usually $300 - $500. All of these chairs are ridiculously durable, and replacement parts are available.
I know memory is fairly inexpensive these days, but I think 4GiB of RAM is excessive. I did have a 2x1 dual channel kit in my laptop until one of the sticks went bad about a year ago. I never bothered to replace it, and I haven't suffered either. Right now I'm running a browser with several tabs open, a few shells in one terminal emulator, a couple of file manager windows, a PDF viewer, and an editor with a few tabs open (this is about all I typically use when programming), and I'm using around 615MiB-- a little over half-- of my mem and 0MiB of swap. I wouldn't have much to gain from another 3GiB of memory even if it is only a few dollars more.
I almost never have "several" tabs open. It's usually ~15 tabs on my main browser (Chrome), and often more than 30. And also an additional 5 tabs in Firefox, Safari, and several versions of IE.
Right now, web browsers are using over 2GB of memory. This is fairly typical from the web developers that I work with. So perhaps it depends on what your software targets. But I would argue if you're building web apps, then 4GB RAM is by no means excessive.
At my previous job (working on e-commerce sites built on IBM Websphere Commerce) the server setup was so heavy and complicated and client-specific that we did everything in VMs that were passed around on external hard drives. If I was working on one client and needed to look up something for another, I regularly came close to maxing out my full 8 gig of RAM.
That might be true, but I don't develop web apps so I can't argue and I'll respect your opinion. Consequently, I don't understand why posting a relevant, evidential opinion is grounds for negative karma. I'm not complaining-- I genuinely don't get it. I thought that was for violating the guidelines (I concede that if anything this comment is the one the should be treated as such for that reason).
I have found after many years of programming that how I take care of my body before I ever sit down is much more important than the environment I sit down to. I have sat in over 100 offices of every possible condition (some you wouldn't believe) and have figured out that there's a "time warp" involved here... If I've taken care of myself, then I can function quite well in the worst client dump. If I haven't taken care of myself, then the most expensive of everything won't help much.
I have had scoliosis my whole life, so I've had to learn how to take care of myself or I never would have made it this far. Some of the things I always do:
Oddly, I have never really followed most of OP's advice because I never thought it was very important. Most other programmers can't believe me, but here is my typical arrangement: OP brings up some good points, but the most important thing is to find out what will work for you for years. It's a marathon, not a sprint.