Brain, Bytes, Back, Buns - The Programmer's Priorities
hanselman.com
hanselman.com
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.- 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.
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.
Only in a week?
I guess you didn't really learn your lesson yet.
Exercise improves your productivity immediately (same day). There is no point to wait for another week.
"Sounded?" That word suggests that they have only read or heard about it, without actually trying it.
I wonder if they would consider the physical and mental development required to hold Mayurasana as soft?
Sarcasm aside, lifting is far more effective than anything else for building strength.
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.
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.
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.
:)
See: http://www.ncbi.nlm.nih.gov/pubmed/10519559
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.
overall golden advice that rings true with my decades of experience
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.
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.
http://ergonomics.ucla.edu/office_Chair.html
http://ergonomics.ucla.edu/ws_checklist.html
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 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).
- 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.)
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'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.
http://www.guitarcenter.com/Finger-Exercisers-Practice---Per...
http://www.amazon.com/Weider-Wrist-and-Forearm-Developer/dp/...
I've been running a triple-head setup for years, which is one of the reasons I've never been able to use my MBP as my primary machine.
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 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'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?
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 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.
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.
Yet I feel guilty about this. Am I the only one that 1) does this and 2) feels guilty about it?
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!
That said, the mattress before it was a cheap piece of crap, so it's possible that anything would've felt like an improvement.
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.
Do you prefer the Criterion's ergonomics to Aeron's? Or do you feel the Criterion is just a economical alternative?
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.