I recently said something that ended up making the rounds on Twitter:
"If you're a developer, you need to spend money on a great computer, an awesome monitor, a fantastic chair and a good bed" - Scott Hanselman
This convenient 140-character-friendly statement could be misconstrued, I suppose, as me saying that good developers need to spend money on expensive gear. That's not my message. I'm saying that you need to invest in your tools.
I was listening to a designer friend recently agonizing over the purchase of a US$700 chair. I realize that everyone makes different amounts of money depending on where they live in the world, but bear with me. This designer spent months trying to decide if this chair was a good idea. "It's so expensive! Should I spend that much?”
Now, we're not talking about jewelry, or video games, or fancy pants. We are talking about a chair that is going to be sat on while work is done for hours a day for at least a few years. Figure 50 weeks a year, for 3 years (at least) for 5 hours a day (because these are round numbers) that's at least 1250 hours in the first year (and more likely much more) and 3750 if it lasts the 3. That's a 19 cents an hour for a comfortable butt. Invest in your own ass.
I don't regret my purchase of a Herman Miller Aeron Chair one bit. The best part is that I bought it for myself, with my own money over 5 years ago. Every day I own it, I enjoy it, and my cost of usage per day goes down.
I spent a decent amount of money on a very nice mattress as I've got Programmer's Back. I'm consistently surprised when I talk to developers who have cheap (meaning, low quality) mattresses and cheap chairs and they complain about pain. A programmer in pain is a lousy programmer. To quote Wu Tang Clan, protect ya neck. Don't skimp on your sleeping quarters.
Physical purchases aside, it's also crucial to invest in your back with things like yoga, stretching and regular exercise. When you are using something eight hours a day for week after week, do the research and invest in that thing. You're flat on your back unconscious for a full third of your life. Give that amount of time the respect it deserves and do what's right for your body. One of the essential tools is a quality bed. I enjoy investing in a new computer but only recently realized that a utilitarian purchase like a great mattress is just as valuable and just as life-changing.
I also have a height adjustable desk (a Steelcase Series 7) which I enjoy. I wouldn't have thought twice about purchasing this desk on my own, but with enough visits to a chiropractor turns out these are easy to come by. It's motorized and has presets so it's easy to set and switch between seated and standing positions. If you think one would be helpful to you, talk to your HR department and request an ergonomic evaluation. Can't hurt to ask, but it is guaranteed to hurt if you don't.s
Ya, I couldn't just say "computer" and screw up a potentially killer alliteration. Surely you understand, Dear Reader. I hate seeing people suffer with crappy hardware. I went back and forth with a gentleman on Twitter running a 4 to 6 year old Mac who felt that I was advocating or implying that one must have awesome hardware to be a good programmer. That wasn't my intent, but this is. If you are waiting for your computer, you are wasting time. Forget about religious arguments, I don't care if it's your operating system, your text editor, or that spinning rust you call a hard drive. If it's making your wait, swap it out.
Start by getting an SSD. The fellow on twitter with the slightly older hardware had an SSD in the machine. Everyone can use an SSD. There are only so many life-changing hardware purchases left in the world. Treat yourself. They are, memory, SSD, monitor. No matter what OS you are running, have 4 gigs of RAM at least. You can get little SSDs for under US$100 these days and decent sized ones for $200. I pulled the trigger on a 256 gig OCZ Vertex and even if it lasts just a year, it's just $2 a day for the kind of silent joy that only a saturated PCI bus can give. Every day after a year it lasts (it'll likely last a few) it gets cheaper to have owned it.
Get whatever size or number of monitors that makes you happy. I like three monitors. For laptops, I like a 15". Some folks do great on a 13" LCD but others prefer something larger. My point is, if you HATE your monitor situation, change it. You're worth it and it'll make you more productive.
And, as always, if you have Programmer's Hands, consider your keyboard and mouse. While I realize that many of you insist and persist on using a standard straight keyboard for typing even in spite of the obvious anatomy, the most important thing is to listen to your body. If your desktop set works for you, awesome. If not, get one that supports you and the way you work.
Books, classes, experience, and challenges all push your brain. I often tell the story of the senior developer who has 20 years experience. The problem is it's the same year of experience, twenty times. Somewhere in year 5, or year 14, you'd think this developer would notice this and break out. What I'm saying is that not only should you as a programmer listen to your body, you should also listen to your brain. If your tool is dull, consider consciously what you can do to sharpen the saw.
When I speak to user group meetings or regional conferences and code camps, I'm always sure to tell the attendees something like this:
"You're already in the top tier of developers just by showing up here tonight. I don't know how talented you are, how much experience you have, but you showed up. You're putting yourself out there because you care to improve. Thanks for caring."
You should give yourself credit for simply being conscious. Not conscious as in 'a living entity' but conscious as in 'paying attention to your journey.' If you are conscious, you're ahead of the pack. We get into trouble when we aren't paying attention. Time goes by and one wakes up years later with no new experiences, no new knowledge, essentially treading water with no inertia. Sometimes just waking up and paying attention is the catalyst one needs to make a change. Every new day is an opportunity to turn it around. Don't feel bad about taking that class, buying that new book, or starting that new mentoring relationship. Get them and put them in your brain - they'll be yours forever.
There's this wonderful story that comedian Paul Reiser told Marc Maron on Marc's podcast. Paul met the actor Peter Falk and asked him if there was a secret to writing a movie script. Peter Falk said "get some paper, put it in a typewriter, type FADE IN...and keep typing."
It's surprising how that answer also works when someone asks me how to succeed in programming. Be conscious, take care of yourself, invest in your tools, and do the work.