Hacker News new | past | comments | ask | show | jobs | submit login
Resolutions for programmers (might.net)
521 points by fogus on Jan 3, 2012 | hide | past | web | favorite | 152 comments

Learn Dvorak - I'd warn against bothering with Dvorak. Huge time sink with dubious claims of speed improvements. While a mythical programmer may exist who feels his raw typing speed limits his productivity, I never met that unicorn. While learning you have an increased error rate, run into incompatibility with other programmers and programs (emacs or vim... good luck) and end up needing to defend something no one actually cares about.

Back Up Your Data - I'd argue the resolution should be "Restore Your Data". Everyone has "backups" but that doesn't mean they have a valid restore procedure that they know works.

I like the list overall. It definitely has some interesting suggestions. The dominant arm in a sling sounds fun.

I learned Dvorak to help with RSI.

It worked.

I'm fast at Dvorak after 4 years (90 wpm), but not as fast as I was with Qwerty (120 wpm).

Dvorak has a pleasant "rolling" finger feel and my wrists never ache, so I've kept it.

What fascinated me about learning Dvorak was that I felt like a stroke patient. Suddenly, I could not do something I had been able to do for years.

It made me consider the cost of a keystroke.

Great experience.

>I learned Dvorak to help with RSI.

That makes sense.

>What fascinated me about learning Dvorak was that I felt like a stroke patient.

That's a perfect explanation of the learning process. I just don't think people should be playing the stroke patient with their livelihoods.

Woah, that's some massive hyperbole there; learning Dvorak does not risk your ability to earn a living in this industry.

I think he was just referring to the productivity hit during the learning curve.

Yes, because while you're learning one style, you completely forget the other style and are left unable to type fluently. </sarcasm>

(I'm still able to type in both.)

I learned dvorak. After doing this for ~2y, I'm much (twice?) faster in Dvorak than QWERTY presently, and am slightly faster than my old QWERTY typing speed.

I used to have wrist pain after particularly-long coding bouts. Then I decided to type like you play piano - hands up, wrists straight, move arms rather than wrists to punch keys in other locations.

No pain again. Ever. Only later did I find out that it's the recommended wrist posture. I still cringe a bit when I see people buying keyboards with wrist-rests (and using them), especially "ergonomic" ones - why improve one ergonomic point while intentionally worsening another?

Hah! For years when I played the piano, I held my hands like I now type; relatively flat fingered and straight wristed. It never affected my ability to play anything complicated and the only real problem was that my piano teacher insisted that this was not the 'correct' way to hold my hands while playing. Never suffered from RSI during the many many hours I've spent at either type of keyboard.

Whenever I try that position, I quickly feel muscle fatigue in my arms from having them suspended in the air for an extended period of time. I think that is why most people don't type in that position mostly.

I might be doing it wrong somehow, but how do you deal with arm fatigue?

A good part of it might be that my upper-arms are essentially straight down, so it's just biceps. Holding your arms out / forward will tire you out, and it's pretty easy to do that in a lot of desks / setups, especially if they're too high. That, and I tend to move around and/or stop and think a lot. In part because I should, in part because otherwise I get stiff. That tendency to not sit still for long has helped in a lot of other ways too, though it makes me hate long drives :|

hmm..I just tried this and I felt that my wrist were nice and relaxed, but my shoulders were not.

Maybe it's just because I'm using a laptop.

You might be sitting too low, and holding your arms up with your shoulders rather than at your elbows. Keeping your shoulders back seems to help too, another of those things that everyone should be doing but few (myself included, the vast majority of the time) actually do.

> I learned Dvorak to help with RSI.

Indeed, it always bothers me when Dvorak enthusiast pull out the speed claims; the comfort advantages are much more compelling in my book.

I know what you mean about the stroke patient thing.

I had (still have, actually) RSI-ish problems in my right wrist but not my left, so I started mousing with my left hand and it felt exactly the same. Years later, my day-to-day productivity has fully recovered, but I still can't play mouse-intensive games like Minesweeper without getting confused and clicking the air with my right hand when I meant to use my left.

To help with RSI from the mouse, I got a trackball. It lets me keep my hand at a comfortable position and just roll my thumb ever so slightly to move around. My wrist never needs to touch the desk, so carpal tunnel is mitigated.

I switched from right handed mouse to left handed mouse and after about 2 days I was able to use the mouse normally, and am still pretty good at it.

You might just be ambidextrous with a strong right hand. My strong hand is the left, but besides more complex things like writing I can also do pretty much everything with my right hand without having to train.

The Evoluent mouse helped me get rid of right hand pain, http://www.evoluent.com/

Have you tried using ergonomic keyboard to help with RSI?

I got a bount of RSI, and switched to a egonomic keyboard (Microsoft Natural 4000), and it helped immensly.

I use Microsoft Natural Ergonomic Keyboard 4000 for years and do not suffer from RSI.

Another thing that probably helps is that I use table with enough depth, so between my monitors and edge of my table there is enough depth to not only fit my keyboard, but also extra ~15 centimeters space for my arms.

Excellent advice, plus i need to ahve a small hand towel rolled up under my left wrist OTW i get pain.

I switched to that keyboard after I was bothered with RSI. A few years later I started using my laptop a lot more, making it impractical to lug the keyboard everywhere, but I found that the Natural had forced me to improve my posture in general, keeping myarms at 90 degrees from each other with wrists straight.

Now I can type without pain on any keyboard, which is a relief since after using a Thinkpad the mushy key response of the Natural drives me nuts.

i'm going to try dvorak out. i started experiencing rsi symptoms last year and decided to switch my mouse hand to my left hand. it took almost 6 + months to train my hand to have the precise motion i had with my right (even when using adobe design products) . one year later, i have very little pain, if any. though, after reading this article, i'm now curious to try the dvorak layout.

also, i love my apple keyboard and was worried about using something else, as i use them on all my machines, including linux boxes. did some research and found this:


ordered three. thanks mattmight.

Colemak is supposed to perform slightly better then Dvorak as a layout, and be easier to learn for a qwerty typist.

http://colemak.com/ http://en.wikipedia.org/wiki/Keyboard_layout#Colemak

Second vote for Colemak here! I spent the first two of my high school years in Japan essentially being homeschooled. I had developed shoulder pain and a ganglion cyst in my wrist due to lots of typing and playing tennis, so I took the opportunity to try both Dvorak and Colemak.

I used to average 110 wpm on Qwerty. I started at 30 wpm Colemak and reached 80 in three months. After fourish years, I'm back at 110 wpm, with no more cyst or shoulder pain.

I tried Dvorak for a week but disliked that 1) it emphasizes hand alternation (as opposed to Colemak's emphasis on finger mashes) and 2) it was so difficult to type "ls -l".

I haven't actually tried an alternate keyboard layout yet so I can't vouch for it, but Colemak seems to have the edge on Dvorak.

I also do the ls -l thing all the time and finally succumbed to just uncommenting the relevant alias in my .bash_rc. 'll' just makes it easier; I don't know why I resisted enabling the alias...

thanks for the link vacri!

I learned Dvorak in my teens, and can touch-type fluently in it.

But I've found it doesn't provide a lot of speed improvement, and for programming (with all its punctuation) I still use QWERTY. Since programming isn't primarily normal English language text, Dvorak really doesn't help, plus you have to touch-type.

What I use Dvorak for is for proper, sit-down, full-screen writing. I'm not sure it's much faster, but it's far more comfortable to type. QWERTY always "gets in the way" physically a bit when I write, but Dvorak lets my hands basically disappear as a barrier between brain and page. It just makes writing feel effortless.

Also -- Dvorak is useful for English only. When I write in Portuguese, it's not nearly as useful.

I use Dvorak everywhere. For programming, I frequently use editor macros to enter paired braces; but that's to save on effort on alignment and indenting. For other punctuation, there's little to choose between Dvorak and Qwerty. The square brackets are slightly further away, but equals is closer. That's about it.

"Since programming isn't primarily normal English language text, Dvorak really doesn't help"

Here's a late Christmas present: http://www.kaufmann.no/roland/dvorak/

Man, do you have any contact info?

There's no problem using Dvorak with Emacs - in fact, it spreads out a lot of keyboard shortcuts that are otherwise scrunched down it the bottom-left corner. (I can use vim fine with Dvorak, too, but I mostly use Emacs - I'll leave it at that.)

And: it's not about typing speed, it's about typing comfort.

I was going to say this. Emacs + Dvorak is very comfortable to use. Vi(m) isn't bad either, but the directions (hjkl) are spread out which used to (and still does as it's not my everyday editor) cause me some difficulty. A particularly nice thing (for me) with Dvorak and Vim is that the `:` is in the lower left, right next to the shift key. I find many sequences easier to type.

About ":", agreed.

The new positions for hjkl actually feel more natural to me (jk are adjacent, on Qwerty's "cv" keys, and hl fit a pointer/pinky right hand rocking motion), but that's a matter of taste I guess. Either way: not a big deal.

In 5-6 years of typing Dvorak, the only thing I've never adjusted to is the non-keypad diagonal movement keys for nethack. I used the numeric keypad with Qwerty too, though.

> The new positions for hjkl actually feel _more_ natural to me

I completely agree with this sentiment. Everyone I know who uses dvorak+vim has a lot of remaps (so it matches the qwerty stuff) but to be honest, I don't find it necessary, and I really like jk being just there as those are the directional ones I use most (for moving left/right I use stuff like w, b, etc.)

Aside from searching, I tend to move by word, too. The position of those on Dvorak is analogous to the jk position. Hadn't noticed that.

I've htns mapped to <^v>. There's no need to restrict yourself to the default mappings.

I've got htns mapped to the direction keys, too, and it works great. I think it's even easier than qwerty's direction keys because you don't have to move your right hand at all; you have to move the forefinger left to hit 'h' on qwerty. It's a happy coincidence that the 'unmapped' keys aren't used very much, except for 'n' and you can remap that to the Dvorak j, k, or l.

Playing QWOP is impossible on Dvorak, however.

As an Emacs and Dvorak user I disagree. Yes people don't understand my choice, but so what?

As for incompatibility, switching keyboards is literally just ctrl+shift.

And no, it is not about speed but about handcomfort -- I move my hands much less and have less awkward resting positions.

Learn Colemak [1] instead. The change in comfort when typing is incredible. The difference in how much you need to move your fingers when typing is big. Typing with QWERTY feels you moving your fingers all over the place as fast as possible; typing with Colemak feels like letters flowing off your hands. Whether it is faster I do not know (obviously after years of using Colemak and rarely using QWERTY I type faster on Colemak, although I can still touch type on QWERTY -- something that most Dvorak typists seem to lose). The big difference is with comfort. Colemak is also much easier to learn for programming if you already know QWERTY because the punctuation (and some of the letters) stays in the same place.


How do you find the two-backspaces-no-caps-lock thing?

I've remapped caps lock to ctrl instead of backspace, so I don't have experience with that.

I've always felt that the biggest gain in learning a new layout is getting rid of old bad habits. Learning something new from scratch allows you to do it right from the start.

The reason for why I've not tried this is probably mainly because it would scramble all keyboard shortcuts. Shortcuts are designed for qwerty (a shortcut that you can't perform with your left hand anymore is a huge loss) and many combinations are a huge part of the workflow of many applications. I found this to be a complete showstopper.

I think there are ways to automatically switch to qwerty when ctrl/shift/alt was pressed and maybe I didn't research it enough but it felt like a cludge and I wan't something that is platform independent and easy to enable on any machine.

That is the one reason to learn Dvorak; it naturally causes you to touch type, because there's no sane reason to have your hands wander around the keyboard; all the keys you use are on the home row. QWERTY affords hand wandering and hunt & peck. If you want to "learn to touch type" it's probably more effective to "learn Dvorak" and let the touch typing take care of itself.

I'm not sure about the virtues of paying the stiff startup fee of learning Dvorak if all you know is QWERTY, but if you have already paid I certainly wouldn't suggest losing it. And I'm very, very tempted to ensure that my kids, who are all too young to be typing at all, simply start on Dvorak. If you're starting from scratch entirely the choice is pretty clear to me.

The thing about shortcut scrambling is oversold; I think it sources from people theorizing about what the problems might be if they switched, not people talking about their experiences. In my actual experience, relearning the keyboard shortcuts was a negligible part of the experience.

I can't be the only one that very often have my left hand on the (left part of the) keyboard and the right on the mouse doing a lot of shortcuts while navigating the GUI.

Such as ctrl+z, ctrl+c, ctrl+v, ctrl+w, ctrl+t, ctrl+n, ctrl+s that requires two hands on dvorak ("especially" on an ergonomic keyboard) - or at least requires the right hand (=> you can't use the mouse) or you have to reposition the left hand (not acceptable).

This is not something that you can just relearn and this is something that seriously hinders at least my workflow.

There is a way to configure your Mac (with the program Ukulele, I think) to activate a QWERTY layout when you hold the Ctrl or Alt keys, thus preserving your one-handed shortcuts. Custom keymaps on Linux and Windows could probably accomplish the same thing.

On a Mac you can use the "Dvorak - Querty ⌘" layout to achieve that, it works only with the Command key as far as i know.

Colemak keeps those keys in the same position, except S but S goes where D is on QWERTY so it's almost the same. Try it out.

And if you still want to learn an alternative keyboard layout, I recommend colemak. It's more modern, and has some additional upsides [over dvorak]:

-keeps ctrl-zxcaw at the same place

-claims to be easier to learn if you're already fluent in qwerty

perhaps more, here's their site: http://colemak.com/

The thing about Colemak is that if you ever have to use somebody else's computer for a moment, you can be absolutely certain they don't have it installed. Dvorak, I think, strikes the most acceptable balance between efficiency and widespread availability. Sure, as a hacker, you should set up your own unique keyboard layout/.emacs file/guitar-pedal-to-USB modifier keys/saccadic eye motion detector/whatever to absolutely maximize your efficiency for how you spend most of your working hours, but if the day ever comes when I'm the only person who can override the Doomsday Machine, I could do without the hassle.

That's why I set my vim shortcuts to keyboard positions and not letters. I switch between keyboard layouts a bit but I am using Colemak again. Keeping shortcuts the same across layouts is very important because they are usually muscle memory not some combination where you are thinking about pressing keys. Also, keep the drivers on your phone/USB so you can install them everywhere.

I'd go as far as to say that typing speed has never really been the rate-limiting factor in programming. That is exactly why Dvorak is easier to switch to for programmers than some other professions. We have the luxury of a profession where even a significant inefficiency in typing isn't a real hinderance.

Sitting in a nice chair doesn't help you program better, but it sure is comfortable to sit in.

I learned Dvorak a few years ago and I love it. I wouldn't go back at all; it is just too comfortable.

It takes a few months to get back up to qwerty speed (at a logarithmic slope though). If you plan ahead, its not that time consuming. For example, if you have a coding job that you could do in your sleep, that's a perfect time to learn. If you just started a company and need 110% mental effort, don't learn. Personally, I switched about 2 months before I started on my masters thesis and it worked out really well.

However, if you often use other peoples computers (or vice versa), you should seriously think twice about whether it is worth it for you.

One last thing, I would recommend programmers dvorak over regular dvorak. :)

I'm an emacs + dvorak user too.

It all started when I saw three colleagues get surgery for Carpal Tunnel. And I started to develop similar pains in my hands and wrist, so after googling and reading a lot I decided to try dvorak. The change was really hard 2 or 3 months but now I can say it is totally worth it my hands and wrist have never hurted me again.

As developers we have very few health risks associated with our profession. We won't get hit by a rock as in construction or rolled over by a car in repair shop. But we still need to be vigilant of:

Obesity Stress RSI Back problems

If we want to keep developing software and walking by the time we are 50 or 65. So we should take preventive measurements. Dvorak is one of those.

As a programmer who has spent the last three months learning Dvorak, I'm glad this topic came up and would love to share my experience.

Before learning Dvorak, I used QWERTY, but did not fully touch-type. I could type quite quickly, and without looking, but I did feel limited at times, and wanted to learn to touch-type correctly. I decided on Dvorak because I had heard good things and wanted to be forced to touch-type and break my old bad habits. To learn, I used an open source typing tutor, klavaro, and found it worked quite well.

The first week or so was painful. After a few days I had learned the position of all the keys, but typing had become a strenuous mental activity. Simple tasks such as writing an email became very difficult because I was so focused on how to type it that I could not focus on what it was I wanted to type. The other difficult part was passwords. It usually took a few tries before getting them correct, and sometimes I even had to resort to copying and pasting to make sure passwords were correct.

As others have noted, typing speed may not be as critical for programmers as it is for others. While this may be true for coding, I found the initial slowdown when IMing/emailing coworkers to be frustrating.

After around a month, these difficulties went away, and typing started to feel much more natural. I'm still not at the speed I was before, but typing feels so much betters now. Overall, I am happy I switched to Dvorak, and would definitely recommend it. I notice my speed improving everyday, and I actually enjoy and look forward to typing now. Using emacs with Dvorak has not been an issue for me. In fact, I would say it feels better now.

Another change I made that I feel has boosted my productivity is remapping caps lock to ctrl. Caps lock is in a great location on the keyboard but performs a somewhat rarely used function. I would highly recommend remapping caps lock to something more useful.

I've always wondered why people were so concerned with improving typing speed in the first place. Perhaps it's just the fact I'm a young programmer and have only been doing it for a few years, but the bottleneck for me has never been how fast I can type.

Most of my time is spent planning things out, thinking things through and debugging, never typing.

What about machine stenography? It's harder to learn, but apparently has a much higher payoff in speed, accuracy, and ergonomics. http://plover.stenoknight.com/

The author of this program has a wonderful series on her blog about what steno is good for: http://plover.stenoknight.com/2010/03/how-to-speak-with-your...

Dvorak ain't so bad. I learned it and I'm not faster, but I do find it much more comfortable.

Emacs? The keys aren't arranged spatially so no harm there. Vim? It's not so bad -- H and L are under the index finger and pinky of your right hand, similar to before, and J and K are right next to each other on the left hand too.

Plus, it's absolutely hilarious to watch other people try to use your computer.

I've been using vim for years and I've met textmate, emacs and sublime text editor users who are a hell of a lot faster than me at editing code. What keeps me in vim is that it's comfortable, not that it's fast. I imagine that the switch to Dvorak would have a similar effect.

Most "list" posts suck; this one was awesome.

My only quibble: "Argue against something you believe" is not a special, part-time exercise. It should be a tightly-integrated element of your ongoing mindset, even in 'damn the torpedoes' dev mode.

Have you ever tried arguing against this quibble of yours?

I don't mean to sound snarky; that just feels like the best way to express my reaction to your statement. I don't disagree with the sentiment; I just don't think you have any idea what you're talking about.

arguing against what you believe applies to a lot more than just programming. it is a pretty good way of arriving at what you really believe. guess you believe X0, try to argue against it arrive at X1 as a result of the arguments, argue against X1, ...

I'd like to add a caveat to the "Implement a cryptosystem" suggestion--Implement one, but DO NOT USE IT. It's a fun challenge, but only fools use their own crypto libraries.

Better still, implement one, assume it is broken, and find out why.

That's not a good advice. It is extremely hard to find problems in your own implementation, even if you're experienced in doing that.

Better advice: Find a mate (or a group), and find out why the other's implementation is broken. And go through some case studies first (see e.g. colin percival's postmortem in http://www.daemonology.net/blog/2011-01-18-tarsnap-critical-...)

For anyone who takes him up on his Datalog suggestion, this (http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.h...) is a pretty good standalone implementation. Free (LGPL), in a mix of C and Lua.

For Prolog, try GProlog (http://www.gprolog.org/) - it has good constraint programming support.

Mercury is a modern logic language. It takes the statically typed approach


Or, learn both! Mercury will teach you different things than Prolog.

(I've read about Mercury, but never really used it. I'm most interested in constraint programming, which doesn't seem to be part of it.)

I have a couple of contrary suggestions with respect to health.

    1. Don't follow the conventional wisdom on RSI
I struggled with RSI for years, and did all the usual things (warmups, exercises, braces, a Kinesis with modified key layout, etc.) Then, in early 2010, I read (at Aaron Iba's suggestion) The Mindbody Prescription by John Sarno. Within a couple of days, I saw remarkable improvement; within a month, I was symptom-free. YMMV, of course.

    2. Don't wear a brace of any kind.
I question the advice to wear a back brace. Over time, this leads to muscle atrophy and causes or exacerbates the very problem you're trying to solve.

I don't warm up, don't wear braces, and have switched back to a Qwerty layout. I stay strong and healthy other ways, but I now ignore all RSI-related advice that doesn't acknowledge the "mindbody" nature of the problem. I've been symptom-free for more than a year. (This is an anecdote, so take it for what it's worth. The book's like $12, though, so you don't have much to lose.)

> The Mindbody Prescription by John Sarno

The central claim of this book (from reading Amazon reviews) seems to be that chronic pain may be caused by mental/emotional distress. To me, this seems like a remarkable claim, and I'm super-skeptical without some kind of evidence.

Out of curiosity, does the author offer any such evidence in the book? Are there other books on the topic?

Exactly. I was so desperate, I would have tried anything. But, I could not finish The Mindbody Prescription. General non-scientific fluff, and a lot of complaining about Freud not being taken seriously these days. No real evidence, although I only got through a few chapters.

However, despite me thinking the book was rubbish and tossing it shortly, my RSI problems disappeared. I guess the suggestion that pain wasn't actually physical in source was enough for the pain to stop.

I've gone from being dominated by RSI problems to not giving it much thought at all.

The placebo effect is real, sometimes even when the patient is aware that it's a placebo.

Note: I don't think the book is correct. There are plenty of phenomenon that we don't understand, and not having a real explanation is not reason to just make one up and assert its correctness without evidence.

> The placebo effect is real, sometimes even when the patient is aware that it's a placebo.

I actually think Sarno explains quite well why the placebo effect works in many cases. It works because the pain is caused by psychological issues to begin with, so when you receive a placebo, your mind knows to make it go away and shift to a different problem. He actually calls it a "nocebo" because it doesn't actually make it go away. For example, you may have back pain, do some kind of therapy to address it (whether it is chiropractic adjustments, massage, medication, cortisone injections, or even surgery); it goes away, but then a week later you start having wrist pain, and the cycle continues (maybe with the back pain coming back) until you address the underlying repressed emotions.

It's good that your wrists are recovered. I think folks need to look at other environmental factors: how you close wrist joint when you're driving, riding a bike, playing guitar, holding a baby, using power tools etc

Aaron's post on The Mindbody Prescription covered some of these issues.


I'm a skeptic myself, trained as a scientist with degrees in physics from Harvard and Caltech. The technique from the book seems like it couldn't possibly work, but it did. As noted before, YMMV.

Back pain used to be difficult to medicate. Then they found out that many cases of back pain showed operable anomalies in their lower spine. Surgery usually lifted the back pain. They thought they found the reason and cure for back pain.

Then however, they found that actually, those anomalies were just as likely in people experiencing back pain as in people with no symptoms at all. Now they were back to square one and did not know where back pain actually came from.

Funny enough, back pain can most reliably be lifted by seeing a doctor. It does not matter whether the dictor prescribes some medication, arranges for surgery or does nothing at all.

In many cases (not just back pain) simply seeing a doctor increases your chances of getting better way more than any particular therapy. Humans are weird animals.

Sarno's book is part great and part fluff, but the idea that stress/ideas play a big part in chronic pain is not controversial among pain scientists. Explain Pain by Butler and Moseley is a great book about this, but unfortunately it is rather expensive. The latter part of this blog post gives a summary: http://changeyourpain.com/2011/03/03/what-was-that-about-chr...

This is a TED video by Moseley: http://www.youtube.com/watch?v=gwd-wLdIHjs

And this is a good summarizing post about pain science: http://www.bettermovement.org/2010/seven-things-you-should-k...

Sarno's book is a… difficult read for a person inclined to think rationally.

I recommend reading the entire contents of conquerrsi.com (gone, but still accessible on archive.org), thinking about that while your read sarno.

I also conquered "RSI" by reading Dr John Sarno's book (after trying everything else I could for over a year and a half). This was back in 2002 and I haven't problems since (11 years); and the problem went away in a matter of weeks. Now I type on a keyboard all day long, play guitar, bass guitar, drums, and sometimes keyboards without worrying about taking breaks or ergonomics. I do have an ergonomic computer setup (keyboard tray), but it's mainly just for comfort and speed.

I do think what Sarno writes is what is really going on in most cases of "RSI" and other types of chronic pain. It makes complete logical sense to me and makes sense of everything I experienced, even going back before I had the wrist pain (occasional unexplained back pain, neck pain, etc that would last for weeks - which I no longer have now).

Tips for completing resolutions, such as these 12:

a. Have a plan with dates, milestones and accountability mechanisms

b. Start small (Instead of one month using a different OS, how about day and go from there)

c. Make it meaningful, Know why you're making a Committment, Be Selective (Have an intrinsic motivation to make a change in your everyday life)

d. Stay the course (If you get off track, get back on)

edit: formatting, typo

That is a good idea, make a plan and try to stick with it. BTW, I find Google Calendar to be good for posting reminders to myself to do different things throughout the year: quarterly taxes, contacting people in a few months to check on how their project, etc. is going, delivery milestones, etc. I like Google Calendar because event alerts also hit me on my Droid and iPad.

An extention to this is to use email alerts. It's too easy to dismiss an alert and forget about it.

For example, I might but an email reminder 4 weeks in advance, 1 in advance, and 3 days before for an important deadline.

thanks for the tip

If you're in a startup that is up for trying new things, I think having a group of developers working together on these resolutions would be a great idea. Let them take 5-10% of their time during the day to work towards these resolutions. Happy developers == healthy developers == productive developers.

Plus, working together with other people always gives you motivation to complete tasks, whether it be working out at the gym or learning a new programming language.

Systemizer, why do you think that is that working with others helps us achieve our goals?

I have generally believed that, too. But, on second thought, wouldn't having more people complicate planning thus thwarting progress?

Good point. I think it breaks down to accountability.

If you work with 10 people on a project, you are not as accountable because everyone else is responsible for the project as well.

However, if you are working with 1 other person, that person holds you accountable for everything; you have no excuses to not complete the project.

Finally, if you are working by yourself, you are only holding yourself accountable; this is bound to fail. You need some external influence of motivation to continue on, and oftentimes you need more than your own motivation.

Taking it to the extremes, if you work with 100 people to lear, then you probably won't have the motivation to do it. There are many reasons why, but to make a simple argument: the more people, the worse. However, if you work with just your friend, then you rely on one another to complete the goal. It is ment

I feel dirty trying to hawk my blog post, but I wrote one a few days ago about setting yourself up for success with New Year's Resolutions:


tl;dr is "pick measurable resolutions, try a bunch in a staggered manner starting with the most achievable first to gain momentum, don't be afraid to cut and run if some resolutions aren't making sense as you try to incorporate them into your life"

A nitpick: the amount of sit-ups you can do does not correlate well with the six-packness. At 20ish% body fat it's possible to train yourself for a huge amount of sit-ups, but your abs still would not be too visible.

If you have an ability to track your body fat with a decent precision, that would be a better metric.

You're absolutely right. As another friend asked, "is the goal to actually increase ab strength or to receive an unprompted compliment from your girlfriend?" This resolution had what I felt was the least well defined goal/metric and will probably take some refining if I want to "succeed" at it.

To my downvoter, just curious: why? I thought my blog post was relevant, and it seemed better than taking 30 minutes to re-hash my thoughts into a HN comment.

"Going analog" is something I have really tried lately. The more I find myself into tech, the more I appreciate not being around it.

I really want to give woodworking a shot this year.

I started getting into smoking meats and making my own bacon a few months ago and it's been an incredibly nice break from being constantly plugged in all the time.

I definitely recommend learning about the humanities and other fields outside of technology. For most people, we already know enough about programming, and learning another language or framework is a marginal investment.

But delving into another totally different subject like healthcare, or insurance, or psychology opens you up to a whole set of new problems and ideas. Whereas just learning technology helps you with the implementation side of things, not the high-level problem solving.

Agreed. I thought this paragraph was apt:

"Engineers need to learn how to measure what they can't count, instead of counting only what they can measure."

I was really hoping this would be about screen resolutions. 1920 x 1200 all the way, baby (or failing that 1600 x 1200, which is increasingly expensive to get nowadays).

Though the entire list is pretty awesome but somehow I missed or got overlooked that it does not contain the factor to give time to family.

Most of us, programmers when get busy in work tend to ignore our families unintentionally.This pattern is not different than artists who pain pictures.

After watching the TED Talk by Matt Cutts(mentioned in my last post) and some serious complaints by my wife and kid, I decided to make a resolution of this year to give more time to family than I used to give last year. It's covering few things mentioned in the post:

1- Coming out of comfort zone: When I start coding or doing something relevant of it, I just forget everything and often work in wee hours. Now coming out of it is definitely not comfortable for me but eventually would turn out to make things sane around me.

2- Be social: When one gets social,even with wife and other family member, you got to face things which don't pertain coding. While things like that could be painful at times due to bad situation but it naturally makes your brain cells think about other things as well.

So, I request to myself and entire HN community to give more time to your family too. You never know how such "non-technical" moments make your technical journey more beautiful.

my 2 cents.

You will never be able to accomplish being "Healthier". What is healthier? a little healthier? maybe a little healthier than that? until you feel healthy? eat green stuff?

Try something more concrete like "Eat no more than 2 fast food meals a month".

Basically, your first resolution should be "Set 11 tangible goals".

Great list. This is basically my new years resolution, which is actually a list of things I've wanted to do for a long time that I put together after I lost funding. The most important one being complete a personal project. My list has a few additional items including learn web dev and launch a simple web app and get back into mobile development and release something on Google Marketplace and\or the Appstore.

Other than going to work on time using a Seinfeld calendar ( so that my lax work environment doesn't eat into my evenings ) I'm going with this: https://www.eff.org/deeplinks/2011/12/newyears-resolution-fu...

Good mathematicians make good programmers ... if they want to. but those I work with (Finance) can produce very awefull code.

Get serious with Testing? :-)

Do it! Seriously, it's worth it.

I didn't get really serious about it until last year, but now I wouldn't code without it. The confidence it gives when refactoring code (run the test, see if you broke something) is pure gold. Plus, just writing the tests puts you in a frame of mind where you're questioning a lot of your assumptions, and you often discover flaws in your architecture that would be painful to fix if discovered later.

I really like the suggestions. So, January is analog. Time to buy myself an XBox Kinect and try and high score Virtual Dance Off High School 8.

3. Embrace the uncomfortable. How about quit Facebook...

Could be worse, for me it would be to join Facebook. :/

Well I have tried to put my money where my mouth is in ref to this, just ordered the following from amazon.

SICP (Wizard book),

Practical Electronics for inventors,

Code Complete,

Javascript: The good parts,

Programming Android,

Arduino Cookbook

Now the question is , what order to read them in?

languages: I'm going to give F# under mono another try, in the spirit of other langauges suggested (haskell, ocaml, racket)

I would really like to hear progress reports on that one. Does F# Mono now correctly implement tail recursion? The most recent release notes suggest it does.

are you talking crash or leak? the one ticket was fixed pretty fast


I've only followed F# Mono from afar as an academic interest, but I've seen comments about tail recursion causing stack overflow, while in .NET I've easily calculated the millionth power of 2 and very large fibonacci numbers with simple recursive algorithms (i.e. it really did recurse a million times).

Another one:

Meditate Regularly

This, to most people, is too vague on its own, because the concept of meditation tends to fit certain lifestyles, such as those that go Yoga or follow some form of Buddhism or other spiritual practice. This really deserves a few paragraphs at minimum for most people to even consider taking it seriously.

That said I think meditation would benefit a lot of people more than they realize, but they really need a proper introduction and guidance to actually do it in a way that is beneficial. This is extraordinarily hard to do on your own. (I started in my 20s and got a lot of out actual instruction at a retreat center).

I've had great success with the book "8 Minute Meditation." It's a pretty good primer to what meditation is "all about."

13. browse stackoverflow daily

Love the list. Favorited that for future-use with spicing up my life.

A toc but no links, maybe you need to add: learn usability

+1 for trying the vegan diet

If you do this, please go to restaurants and request a vegan meal. The environmental benefits of the vegan diet are well-documented.

The best way to enact change is to get restaurants to start listing vegan options.

I do not believe that Veganism is healthy at all. Vegetarianism with a correct diet (and only then) can be, but the human body isn't fit for a vegan diet in the long run. I respect your choice if you do it, but at large it's just not reasonable.

Oh, and something slightly offtopic: if you have children, do not raise them with a vegetarian or even vegan diet. That should be classified and punishable as child abuse.

> if you have children, do not raise them with a vegetarian or even vegan diet. That should be classified and punishable as child abuse.

That's ridiculous. Would you not agree that vegetarian people are likely to be more conscious of their nutritian than the average person?

Here's an anecdote. I know three children brought up in vegetarian* family. All three were high achievers academically and athletically. It's worth noting that their mother was very conscious of nutrition, and did give them supplements.

*Pescatarian, actually. Though many pescatarians call themselves vegetarian, including this family.

>Would you not agree that vegetarian people are likely to be more conscious of their nutritian than the average person?

That's certainly true, and actually a necessity for vegetarianism to be healthy in the first place (just removing meat from your meals isn't going to magically be more healthy, it's actually the opposite). It's still pretty much impossible to supply a growing child with the needed nutrients on a purely vegetarian basis. While it's of course possible for children to grow up into healthy adults this way, it's still not without heavy risks to the child's physical development.

People who say it's a dangerous diet without any sources are only spreading FUD. Of course you don't just remove the meat, you replace it and get your nutrients elsewhere. I have a three-year old vegan daughter that is thriving, and we spent New Year's with two families, each with vegan one-year olds.

If the above children are still too young for the alleged negative health effects, read up on older vegan children at [1]. If you want the American Dietetic Association guidelines [2]:

"Well-planned vegetarian diets are appropriate for individuals during all stages of the life-cycle including pregnancy, lactation, infancy, childhood and adolescence and for athletes."

Instead of "pretty much impossible", I would say it's quite easy to provide all needed nutrients. All parents, not just vegan parents, should read up on childrens' nutritional needs. But it doesn't matter if the protein comes from meat or kidney beans, or if the B12 and calcium come from cow's milk or fortified oat milk.

[1] http://veganhealth.org/articles/realveganchildren

[2] http://www.eatright.org/Media/content.aspx?id=1233

All of the above assumes parents are very well educated (and can properly monitor) about the needs of their vegetarian kids.

It seems to me that that kind of diet is not appropriate for the majority of the population.

> Oh, and something slightly offtopic: if you have children, do not raise them with a vegetarian or even vegan diet. That should be classified and punishable as child abuse.

Why? A good number of children in India are raised with a vegetarian diet. Of course, Indian cuisine has a large number of diverse and flavorful vegetarian dishes (unlike most other countries) The lack of availability of good vegetarian/vegan food could also be a concern, but again, that does not hold true in India. In fact, there are diets way more stricter than just vegan/vegetarian which are fairly common as well. http://en.wikipedia.org/wiki/Jain_vegetarianism for example.

Not a vegan or vegetarian here, but I have a hard time believing that even a strict vegan diet could be worse than a diet with an excess of saturated fat, growth hormone and estrogen from commercial beef, chicken and pork. And if we want to talk about abusive diets, let's not forget about fast food (including Applebee's, et al.).

Amazing list. I'm gonna follow every month.

me: talk more.

Programmers stuck inside who need fitness ideas get out and meet people. Go to meetup.com, type in your area and type in running, health and fitness. Find a running club where you meet up somewhere and run around a loop, trail, or city area. I found that extremely rewarding. It is a filter to screen out the fraggles from the doozers.

Another sport I would highly recommend is rock climbing. Most cities have an indoor climbing gym and on the whole I've found other climbers to be very friendly and helpful to people just getting started.

There is also this whole puzzle solving aspect to rock climbing that I was unaware of before I started climbing. You can mostly brute force your way through a route if you are strong enough but there is always a more efficient way to do it that uses a fraction of the energy. Figuring out the right way to do a route is very satisfying to my inner nerd.

Agreed. I boulder daily. It is one of the most rewarding forms of exercise on many levels. And if you get involved with it on a serious level you will see fast results.

What is it that makes people assuming exercise -> running? It has all the unpleasant effects of exercise + it destroys your knees and you still don't have a sixpack.

> It has all the unpleasant effects of exercise

That's subjective; I like running outside. It lets me clear my mind like no other form of exercise. (I hate running int he gym, though)

> it destroys your knees

Only if you do it wrong. Unfortunately, 99.9% of the people do it wrong. I had started to develop some knee pains (only while running) after a healed knee injury. And then I discovered the Vibram Five Fingers, and after two weeks the knee pains were gone for good.

They take a while to get used to, but they're worth it.

It's not the shoe that's solving your problem, though. The trick is to run on your forefoot and roll back to your heel. That's it. That said, it's true that the key difference in the average running shoe and the Vibram line is the lack of heel-cushioning, which as a result encourages correct running, but I felt it pertinent to clear that up.

tl;dr run with an impact front-to-back, toe-to-heel.

That's right. I knew that long ago, but I was unable to maintain that pose while running 10km -- old habits die hard. After about one month of walking and running with the Vibrams, my step changed from heel-first to front-to-back, as it should -- and it stays that way even when I don't use the vibrams (I hardly use them at all during the winter -- they're not good for running in city puddles)

front-to-back toe-to-heel is the key. The vibram is a way to get there.

Wouldn't any shoe with no heel cushioning be a way to get there?

One required feature is the flexible toe-ball connection (so that you can comfortably use the toes to balance when the weight is on the balls of your feet), which not every shoe without heel cushioning will provide, though some probably will.

The other important feature is "high-resolution" impact transfer - you need precise ground feedback for your muscles to compensate for an uneven terrain.

If you have (as an extreme absurd case) a super-hard graphite/plexiglass sole, then you have no cushioning, but are not likely to avoid delivering impacts to your knees even if you run on the balls of your feet.

Supposedly, Vivo Barefoot, Nike Free and Newton are as good. But I only have experience with the Vibram FiveFingers, which is why I recommended it.

I own a pair of the Merrell True Glove trainers and love them. I thought they used basically the same sole as the VFF, although obviously not with separate toes. I just couldn't buy into having plastic between my toes, or not having option of wearing some liner/socks, also since mine look more "normal" or let's say less "goofy" I can confidently wear them in any environment.

Never heard of these - I will look them up.

> I just couldn't buy into having plastic between my toes

Me neither, but I just had to try, and I actually like it, even though I don't like "toe socks" inside a regular sneaker.

> or not having option of wearing some liner/socks

There are injinji socks; but I prefer the VFFs unsocked if I can properly wash and dry them (I use socks when I don't have wash-and-dry facilities).

> since mine look more "normal" or let's say less "goofy" I can confidently wear them in any environment.

That's a definite plus. (On the other hand, if you're looking for a conversation starter, the vibrams are hard to beat!)

+1 for the Vibram suggestion. I had a similar experience, and running barefoot-style is a world away from hammering along pavements

It also has a lot of advantages:

- all you need is a pair of decent trainers and shorts

- you don't need a partner

- you make obvious and steady progress

- most people unused to exercise need to work on cardiovascular stuff, not six packs

- you get to go outside, not stuck inside a hall or somewhere

> ... and you still don't have a sixpack.

Most forms of exercise will not give you a visible sixpack. The biggest thing that matters for a sixpack is body fat %, which requires a healthy diet more than anything else.

Rock Climbing is probably a better plan then. It is fun in the way that you're not supposed to be having fun anymore at your age, to the point where you find yourself rearranging your schedule so that you can do more of it. And it absolutely will give you a sixpack by the time you're any good at it.

The only downside is that it won't actually get you fit in the traditional sense. I can pull into a front lever using two fingertips, but I can't run a mile to save my life.

Still, it's exercise that you'll actually do. And unless you live in Nebraska, there's a climbing gym within a 20 minute drive of you right this minute.

Rock climbing is fantastic, but as your claim that it doesn't make you 'fit' are a bit misleading. As with anything there are correct techniques and if overall 'fit'ness and being able to run a mile are related then you're doing it wrong in respect to your goal and you've probably chosen the wrong form of exercise.

Continuous bouldering again is a great way to work your cardiovascular while also stimulating your core. Slow top roping on the other hand won't be the same.

As seems to be the grandparents goal, you will definitely get a sixpack from rock climbing.

For cardio, you could also do top-rope laps. Pick a route slightly below your peak, climb it, descend, climb it, descend, climb it, descend. It's fun to see if your technical improvement by the third time compensates for climbing slower because you're tired.

And FWIW, I've been climbing 2 times/week for 3 years now and have no where near a six-pack :)

The problem^ is that the biggest predictor of knee pain/problems is previous knee pain/problems. So you could run for years (or even decades if I recall the research) with no problems but once it occurs it can be hard to recover from or avoid in the future. As someone with plenty of metal in my legs and interior surface damage to my knee joint, I'm acutely aware of my need to find non-running exercise.

^ as I understood the paper I read last year, which I now can't find but it might have been mentioned in the NYT

Agree. I'm very active but don't do any cycling/running/gym work. I participate in sports for the enjoyment and adrenaline of the sport itself. Way more addictive - no need for training schedules and the like. I just HAVE to get to the beach when the wind is right.

Still, that's not taking away from running, many people really enjoy it and there is no denying it a cheap way to get fit.

I just like to go places on a bicycle. Not Lance rides, just use it to get stuff done; it's very good for people with knee problems because it strengthens your knee ligaments, as far as I know. And it's been a good way to stay in shape!

I'm not a runner, but I do enjoy a brief walk when I'm stuck on something, feel uninspired or just feel like my brain is slogging. The break away from the screen is really welcome.

At the moment I usually walk up, across and down a few floors in my building.

I agree... to each his own, but I find running very boring. If you're into the Paleo movement, it's recommended you focus more on slow movement such as walking, hiking, biking as well as full body exercises: squats, pushups, etc. Running for prolonged periods of time regularly can do our bodies more harm, especially if we're unfit in the 1st place. So it's just not a sustainable form of exercise. Better find an activity that's less stressful and more fun.

I'm a Paleo guy, though I typically suggest that people should do whatever physical activity they actually enjoy. Paleo's recommendation of functional training just happen to coincide with what I like.

As for running, I HATE running for any significant amount of time, and I chalk this up partially to my body-type - I'm very good with short sprints and have large muscle mass in my legs, which is the opposite of most serious [distance] runners who have leaner legs, but similar to track stars who do the 100M and such.

There is plenty of evidence that running is good for your knees as long as you aren't making an injury worse.

Also the only way to have a six pack is have low body fat, one of the many ways to achieve that is through running.

I don't think one should assume exercise means running but your points against running are wrong as well.

Great idea. I belong to two different hiking groups so I have scheduled hikes every Monday and Thursday mornings. I find that when I am really busy (usually writing code) that having scheduled breaks helps a lot; same comment for scheduled dinner parties, lunches out, and other social events.

i would recommend tango dancing (!= ballroom). Alot of engineers, scientists, etc. really get it. It's not about memorizing moves, it's about learning a logic, learning how to think with four legs. It's alot of fun. Oh and there's babes too.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact