
Brain, Bytes, Back, Buns - The Programmer's Priorities - Nemmie
http://www.hanselman.com/blog/BrainBytesBackBunsTheProgrammersPriorities.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ScottHanselman+%28Scott+Hanselman+-+ComputerZen.com%29
======
edw519
I'd like to add one more "B" to OP's title: Body.

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.

~~~
Tyrannosaurs
You had me right up to chiropractic.

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.

~~~
jzawodn
Have you ever used a Chiropractor?

~~~
maaku
He wasn't saying it didn't work at all--he's saying it didn't work better than
an actor make-believing he's a chiropractor.

------
chris_dcosta
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.

------
mattgreenrocks
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.

~~~
zerostar07
UCLA ergonomics is your friend:

<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.

------
zerostar07
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

~~~
eru
You can also a standing desk. If you are into nice keyboards, you might want
to give the Kinesis Advantage a try. (It's expensive, but nice.)

~~~
zerostar07
The problem with non-standard keyboards is that when you find yourself working
on someone else's desk it's too hard to adapt.

~~~
eru
Actually, not. Have you tried?

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.)

------
espeed
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.

------
lubujackson
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.

~~~
dredmorbius
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.

------
tucaz
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 :(

------
rodh257
Also, anyone suffering from wrist pain, mine went away after I bought one of
these for use in the office: [http://www.microsoft.com/hardware/en-
us/p/natural-ergonomic-...](http://www.microsoft.com/hardware/en-us/p/natural-
ergonomic-keyboard-4000/B2M-00012)

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.

~~~
gtani
Wrist pain, the Dynaflex and powerWeb and wrist curl bar seem to have helped a
lot of musicians, rock climbers etc

[http://www.guitarcenter.com/Finger-Exercisers-Practice---
Per...](http://www.guitarcenter.com/Finger-Exercisers-Practice---Performance-
Aids,New-Gear.gc)

[http://www.amazon.com/Weider-Wrist-and-Forearm-
Developer/dp/...](http://www.amazon.com/Weider-Wrist-and-Forearm-
Developer/dp/B002DHIRX0/)

------
rodh257
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

~~~
udp
What's the latency like with USB display adapters?

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.

~~~
rodh257
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

------
yason
_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.

------
PaulHoule
Aeron chairs look awesome but they're not that good. The Steelcase Leap is a
lot better.

~~~
hammerdr
What are the quality on those?

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?

~~~
silentbicycle
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!)

------
callmeed
I think wrists are as important as back. Of course that doesn't start with a
B.

~~~
bengl3rt
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.

------
davidedicillo
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.

------
dugmartin
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.

------
outside1234
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?

------
cpeterso
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.

<http://www.themaroller.com/howtouse.html>

------
gtani
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!

------
Natsu
I recently got a new (and hideously expensive) memory foam mattress. I have to
say that it does make me feel less sore in the morning.

That said, the mattress before it was a cheap piece of crap, so it's possible
that anything would've felt like an improvement.

------
kiba
Knowledge in your brain don't stay forever. You forget. Use SRS software to
help keep your memory up.

------
georgieporgie
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.

~~~
cpeterso
> Aerons go for $400 - $500, if you can get one for $350 it's a fantastic
> deal. Criterions go for $100 - $300.

Do you prefer the Criterion's ergonomics to Aeron's? Or do you feel the
Criterion is just a economical alternative?

------
dbbo
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.

~~~
portman
>> _a browser with several tabs open_

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.

~~~
mkopinsky
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.

