
Resolutions for programmers - fogus
http://matt.might.net/articles/programmers-resolutions/?utm_source=twitterfeed&utm_medium=twitter
======
parfe
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.

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

~~~
Groxx
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?

~~~
mahyarm
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?

~~~
Groxx
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 :|

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

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

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

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

~~~
beagle3
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-...](http://www.daemonology.net/blog/2011-01-18-tarsnap-critical-
security-bug.html))

------
silentbicycle
For anyone who takes him up on his Datalog suggestion, this
([http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.h...](http://www.ccs.neu.edu/home/ramsdell/tools/datalog/datalog.html))
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.

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

<http://www.mercury.csse.unimelb.edu.au/>

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

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

~~~
AlexandrB
> 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?

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

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

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

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

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

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

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

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

~~~
pw
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."

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

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

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

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

------
eliasmacpherson
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...](https://www.eff.org/deeplinks/2011/12/newyears-resolution-full-disk-
encryption-every-computer-you-own)

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

------
fredus
Get serious with Testing? :-)

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

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

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

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

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

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

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

<https://bugzilla.novell.com/show_bug.cgi?id=693905>

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

------
sidcool
Another one:

Meditate Regularly

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

------
zerop
13\. browse stackoverflow daily

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

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

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

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

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

~~~
slowpoke
_> 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.

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

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

------
g3orge
Amazing list. I'm gonna follow every month.

------
mathgenius
me: talk more.

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

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

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

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

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

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

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

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

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

