
Older Programmers are Faster Programmers? - lupin_sansei
http://www.webfoot.com/blog/category/programmer-productivity/
======
mdakin
It does not surprise me that the research is in conflict.

It makes sense that as programmers age they either become better programmers
(through experience) OR they stop programming (the bad programmers flux out of
the field with time). These two factors combined will tend to make older
programmers as a group look better than younger ones.

But there are hypothetical factors that can work against older programmers as
well. For example, if the older programmer has not bothered to keep learning
new things he will be locked into one domain where his expert skills are
useful. This will cause trouble if he ever needs to work on different types of
systems.

------
brlewis
Permalink:

<http://www.webfoot.com/blog/2007/06/12/productivity-factors/>

------
elq
hrm. Perhaps someone should send the paper referenced in this post to
Zuckerberg, though I doubt it would change his mind.

------
lupin_sansei
Seems correct to me. I am a much better and faster programmer at 32 than I was
at 22,

~~~
nostrademons
I actually have the opposite experience - I'm slower at 26 than I was at 19.
Or so it seems, at least - perhaps I'm just taking on more ambitious projects
(though if you believe tx, the desktop apps I did at 19 must be much harder
than the webapps I'm doing now).

In my experience, raw speed starts out slow when you first learn a
language/platform and quickly accelerates as you memorize & internalize the
details of your platform. Every master programmer will tell you that the
secret to high productivity is being able to keep the whole program in your
head at once. I can program as fast as I type as long as I've got all the
language syntax, API details, previously-written functions in my head. If I
have to look anything up, it slows me down significantly.

But it only takes me about a month or two to reach that level of fluency.
After that, it's downhill as new knowledge crowds out working knowledge you
need for your day-to-day programming.

I found that my Java productivity took a _major_ hit after I learned Lisp, for
instance. Why? Because I kept wanting to use closures every time I had my IDE
auto-generate a new Runnable. Because I kept wanting to use closures every
time I created a new private class that was only used in one place. Because I
kept wishing I had CLOS accessors every time I had my IDE autogenerate getters
and setters. I think I spent far more time angsting over how much Java sucked
than actually programming Java.

The real benefits of experience seems to be in knowing when _not_ to program
something. At my first job, I spent a week rolling my own encryption algorithm
for passwords (why oh why did the experienced programmers I was working with
not tell me this was a bad idea when I asked?). Now, I'd just reach for a
SHA-1 library and one-way hash the passwords instead of trying to bake a
reversible algorithm myself. I spent a long time typing up getters and setters
for my classes then - now I'd autogenerate them with my IDE, or rearrange my
methods so they aren't necessary at all. If I were in a position to use Lisp,
I'd use it instead of worrying about how much Java sucked (okay, I use Python
for my startup, but the point stands - no Java).

------
ivan
I agree, grand pas club performs very well :)

