
You aren't getting any better - robheaton
http://robertheaton.com/2013/03/04/you-arent-getting-any-better/
======
przemoc
"My limited and very biased samples suggest that hackers have a much greater
intrinsic desire to improve their skills than those in other professions. We
want to be ninjas not just because it will mean better-paying and more
exciting jobs, but because there is something innately cool about knowing how
to properly wield Javascript, Erlang or Clojure."

ENOPARSE. Beginning looked promising, but examples of what is cool quickly
spoiled it completely. Hacker is most likely a good programmer, but even very
good programmer doesn't have to be a hacker. Seriously, using HTML+CSS+JS,
while making over 50% (80%?) of HN content, isn't hacking-related stuff at
all. Heck, you can "hack" some HTML/CSS/JS platform differences in particular
browsers with some workarounds, but it doesn't make you a hacker. If the
things will go on, it looks like a hacker term may become a synonym of the web
developer. Or programmer using lesser known languages too. It would be huge
slap in the face of real hackers.

Hackers are behind stories like:

\- X86 MMU fault handling is turing complete --
<https://news.ycombinator.com/item?id=5261598>

\- The 8085's register file reverse engineered --
<https://news.ycombinator.com/item?id=5314442>

\- Dalvik patch for Facebook for Android --
<https://news.ycombinator.com/item?id=5321634>

to name a few recent ones.

~~~
coldtea
> _Hackers are behind stories like_

You are probably a little behind the times. Like 15 years. The term "hacker"
has stopped meaning exclusively these kind of guys for agres...

~~~
przemoc
> _You are probably a little behind the times. Like 15 years. The term
> "hacker" has stopped meaning exclusively these kind of guys for agres..._

No. What we're dealing here actually is the effect of the urge of wannabe-
hacker kids using inflected forms of "hacking" in unheard before ways next to
achievements often barely worth mentioning, especially under the "hack" hat.

I'm hacking new code - I'm programming new code.

I'm hacking in a new language - I'm learning new language.

I'm hacker - I'm a bit above average programmer/web developer/whatever.

...

I simply cannot agree to these alleged redefinitions. To be honest, I also
don't care if it feels so-15-years-old or so-70s. HN as a community is the
last place I would like to see wholeheartedly accepting casual things as
hacking. Hacking is about deep, profound understanding of computer-related
stuff and things (far from trivial) you're able to achieve thanks to that.

~~~
coldtea
> _I simply cannot agree to these alleged redefinitions._

How about the most blatant redefinition -- from "a guy hacking trees with an
axe"?

> _HN as a community is the last place I would like to see wholeheartedly
> accepting casual things as hacking._

Well, Paul Graham might have been a great hacker (and Robert Morris!), but HN
was built more around an entrepreneurial community (YC et al).

As such, a lot of people here don't do deep hacking stuff. They do simple web
services (and sometimes, reading some articles they make it sound like they're
doing rocket science). Even the most celebrated of them, Facebook, Instragram,
Groupon or what have you, are dead simple stuff, CS wise. There might have
been some difficulty in handling their scaling, but that too is hardly a hard
problem. (Stuff like what Google and Orbitz do are another matter entirely).

So, seeing that HN has tons of introductory or trivial Node, Mongo and similar
articles, why should you expect to see the "old meaning" of hacker here? It's
not like it's Lambda the Ultimate.

~~~
przemoc
> _How about the most blatant redefinition -- from "a guy hacking trees with
> an axe"?_

I'm not saying that words cannot get new meaning in some new emerging
contexts. Languages evolve, that goes without saying. But when people start to
deteriorate their meaning within the same context, mostly to be able to use
these terms themselves, thus feeling a bit better or cooler (because these
terms used to describe exceptional people), then something wrong is happening.

> _As such, a lot of people here don't do deep hacking stuff. They do simple
> web services..._

And it's fine, really. I'm not bashing HN community for submitting stories not
worth of "hacking" (according to "old meaning", as you named it) emblem (it's
really nice when such stories appear, though), because on-topic is "anything
that gratifies one's intellectual curiosity". I'm criticizing overuse of all
hack* nouns, adjectives, adverbs, verbs and what not. I believe that most
people here can tell the difference between slick and shiny CSS date picker
and system emulation done using JS for instance (to stay in the browser
realm). Not everyone is like Bellard, but does it mean we need to redefine
"hacker" to allow its wider use and prevent covering this term in dust as the
time goes? Hell no.

> _So, seeing that HN has tons of introductory or trivial Node, Mongo and
> similar articles, why should you expect to see the "old meaning" of hacker
> here?_

Because it's part of computer-related legacy.

Doing fun things (everyone perceive "fun" differently) doesn't need to be hard
and is quite healthy. Sharing and spreading the fun is definitely ok too. But
let's not pretend that doing anything fun in CS field is immediately hacking,
because it's not. HN is thankfully full of people aware of it, so I'm not
afraid about HN future, yet.

------
ebbv
Not a fan of this post. Link bait title followed by almost zero substance.

Stockbroker performance would be an ok point of comparison for another non-
deterministic profession, like an athlete. But programming is deterministic.
Your code either performs the desired function in the desired way or it does
not.

Additionally, there are clear skills you can pick up. You either know these
things or you don't.

You really can objectively improve at programming, without room for any
interpretation or argument. There's no randomness involved.

With being a stock broker, there's a luck factor. Your pick may have been
based on sound objective reasons. Made better by more thorough processes than
picks you made in your 20's. But natural disasters or internal corruption
which was not disclosed may cause an outcome completely against what
everything else predicted thus ruining your performance.

Unpredictable disasters for us can be setbacks, but they don't ruin our
performance as developers.

~~~
jrajav
I think you're making a dangerous correlation between the determinism of
software and the supposed determinism of skill at software development. Yes,
one of the most important aspects of software development is making code that
runs correctly, but that is not the only aspect. Even if we focus on that
alone, we run into many issues:

\- How do we determine whether anything but the most trivial program is
correct?

\- Are the specifications so clearly defined that you could actually say your
program is "correct" assuming that you could reason perfectly about its
behavior? If you are the one writing the specifications, you know that the
preceding question has no answer, because the specifications are just as hard
to match to the problem as the program is to match to the specifications.

\- Can a program be said to be complete and production-ready if both it and
the specifications are correct? What about security, performance, legacy
support, and other concerns?

Correctness, even if you take that alone, is not so simple. Even if it was
simple, that's not the only metric for measuring skill in software
development, and it's not the only (or even most) important thing to focus on.

~~~
ebbv
You missed my point. Of course there are subjective qualities to code. That's
irrelevant to my point.

Which was that a stockbroker is a bad analogy because he can be 10x better
than he was in his 20's and bad luck can negate all his skill and effort.

That doesn't happen with programming. There's not that luck factor. Even to
the subjective aspects.

------
edw519
After 34 years, my recipe for the best way to get better:

Find customers. Satisfy them. Repeat.

They will pull you kicking and screaming into your excellent future much
faster than you can ever do it yourself.

~~~
Dn_Ab
After 15 years, my recipe for getting better.

Remain curious and constantly confused.

Do not use 'to be' verbs when describing interests or skills.

Oh and most important. To do it all for fun not because you want to 'improve'
yourself. The rest follows.

~~~
happimess
I'm curious, would you elaborate on your reasons to avoid "to be" verbs?

~~~
Dn_Ab
There is no science I can point to but I feel using language that way makes it
as if the skill has become part of your identity. Makes it hard to detach. So
that I insult Ruby or Apple and now I am insulting you. Google is dying means
a big part of your self is becoming obsolete. I am a
"pythonista/rubyist/haskeller" encourages tribal thinking. Them vs Us. I find
this also explains much about flamewars. I don't like.

To avoid that I prefer to say I know Z. I use X instead of I am a X user. I am
most skilled in Y not a Y'er. I really like A. It is still hard to see A die
but I don't need to defend every affront as if I was the one insulted. I allow
only a few things to help define part of my identity. Doing this actively,
also triggers to conscious how much I don't want to slip into tribalism or
stagnation.

And by being ok with confusion it means I don't fear new things, by being
confused it means I'm learning, by being curious I'll actively seek to put my
self beyond my ability.

~~~
networked
>I am a "pythonista/rubyist/haskeller" encourages tribal thinking. Them vs Us.
I find this also explains much about flamewars.

PG talks about exactly this point in _Keep Your Identity Small_ [1].

[1] <http://www.paulgraham.com/identity.html>

------
Tichy
Stock brokers are a bad example, because that is essentially gambling.

Also playing around with some API will make me better in using that API.

What are some meaningful metrics for becoming a better developer?

Personally, I'd like to launch more.

~~~
n3rdy
Came in to post this point as well.

Even if you don't consider it gambling, you judge a stock brokers talent based
on their average return of investment for their portfolios.

Unless that average is increasing every year, its hard to say they are
improving their talent.

Not many brokers and traders work on improving their ROI, they focus on
compounding the capital they have at targets like 1% to 3%.

The law of diminishing returns also plays a big role in a stock brokers
career, there are swing traders who may make only a few transactions a year,
then there are day traders who make hundreds of trades a day. There isn't a
strong correlation of hours trading to profits.

Comparing this at all to programming is like comparing apples to kittens.

------
digitalengineer
As we're getting older we simply can't keep getting better in _at the same
speed_. If you're a mentally balanced person your live will contain more and
more unpredicted variables like a partner, kids, older parents and family
members, health issues and what not. Things beside your work that require your
time and attention.

~~~
robheaton
Absolutely - I feel it's then still important to be honest about what you
_are_ doing and whether or not it's helping you in this way if that's what you
want it to do. If you want to focus on other things then that's great and
healthy, but recognise that flicking through Rails blogs and noodling around
with ideas is what you do for recreation, and has very little impact on your
professional development.

~~~
digitalengineer
Totally agree. Nowadays I try to be laser-focused about what I do in my 'free'
time. The bar is set much higher than when I was younger. It's not so easy to
stay focused though with all the high-quality distractions these days.

------
kator
Clarke's third law:

    
    
      Any sufficiently advanced technology is indistinguishable from magic.
    

If it feels like magic then you don't understand it well enough. I always push
myself to understand the "magic". I've been at it for 30 years and I'm fairly
good at a lot of stuff. That said I do think the basic problem solving skills
I learned 30 years ago are much the same perhaps a bit more honed by a lot of
experience. I used to fear getting older, and I am sure I don't learn as
quickly as I did 20+ years ago. That said my experience is very broad and my
discipline combined with that makes me fast to solve problems the fast
learners are just now trying to understand.

Most importantly how do you define "Better"?

------
ajb
Article title: 100% manipulation, 0% information. Please don't upvote these.

------
define_eprime
_Whilst you are unavoidably picking up points on your CV with every project
you complete and every line of code you write, you may not, and indeed
probably are not actually getting any better._

I think I understand the gist of what he's trying to say: you can only know
you've improved if you know what you're trying to achieve and measure what you
do. By that measure doing arbitrary things "to get better" won't lead to
improvement.

I think he's wrong in two ways.

First, he ignores a situation I've experienced many times - getting "stuck" in
a point of stable local maxima after finding a less than perfect solution to a
problem. Playing around with new and unrelated stuff occasionally helped me
identify something I initially overlooked in my initial problem and lead me to
something better.

Second, and perhaps more important, I believe the simple unconscious act of
learning and sharing new things can lead many to live longer, happier and
arguably better lives.

------
kristopolous
I'm sorry but I am too getting better.

It's just that getting better is a draining, exhausting, humbling, confusing,
difficult, pain in the ass process where your effectiveness goes to 0 for a
while as you do something new.

I think the reality is that people avoid getting better because the process to
truly make such strides is a horrible experience.

For instance; after 12 years of vim I'm trying emacs ... intensively; and it's
overwhelming. I want to do things in vim but I'm forcing myself to learn the
other side of the fence. And you know what? It has been truly invaluable.

Next time you get an idea tell yourself: "I'm going to write this in (pick a
random language, like prolog, or ocaml that you don't know)."

And stick to it until it's done. Pretend like you've never used anything else
and must learn all of it over again.

Then try something else you aren't good at. Spend many hours a day at it.

Ask yourself "If I was 15 ... how would I approach this?" or "If I was much
smarter than me, how would I approach this?". Both systems help you unshackle
yourself from your comfort zone and the latter helps you try to get a better
handle on things you haven't yet.

Dedicating yourself to the learning process towards mastery outside the
institutions of learning takes real dedication and is a pain.

But I certainly write a better parser and lexer than I did out of college. I
certainly write better functional and object oriented code. I certainly
organize my time better. Across the board, I run circles around my 23 year old
self because I continue to endure the unnecessary pains of intellectual
growth.

And one day, I'll finally sit down and figure out how to write a mobile app.
It's up next. I've had a bunch of failed starts, but my next idea will run on
my phone; whether it belongs there or not.

Not because "I can" but because I've told myself that "I will".

~~~
jrs235
I suppose you are correct. Sharpening the saw wears on the saw.

------
pfortuny
The mere fact of understanding what you do and the pitfalls it may be prone to
is a great improvement.

Do not oversimplify life: you are much more than what you do.

------
coldtea
> _Many studies, collected most notably in Geoff Colvin's "Talent is
> Overrated", find that in a wide range of disciplines experience has
> absolutely no correlation with efficacy [1]. Lifelong stockbrokers perform
> at exactly the same level as those in their 20s; or, rephrasing this
> slightly, lifelong stockbrokers perform at exactly the same level as when
> THEY were in their 20s. Despite having overseen numerous trades, been to
> countless conferences and devoted thousands upon thousands of hours to the
> craft of stockbroking, they are not even slightly more skilled that they
> were 40 years before._

Yes, but why draw the bizzaro conclusion that experience is overrated in other
trades too?

This is due to the fact that the stock market is an unpredictable, multi-
variable system based on belief and millions of volatile individual
perceptions, and the "experts" are more or less "farting around in the dark".
But we already knew that about the stock market.

Not to mention that the above "example", also clashes with his advice later
on:

> _If [getting better] is what you want, you have to make a conscious effort
> and chart a deliberate course._

If his own "example" about the traders was universally applicable, then that
wouldn't be possible at all. Or does he think that the traders just didn't
spent "conscious effort"?

------
neogodless
Deep practice (or flow) is being in a state where you have some of the skills
you need to complete a task, but aspects of the task are just beyond your
current skill level. You need to attempt to complete the task, make small
failures, learn from them, try again, and repeat this process until you grow
the skills required to complete the task. Some research says that being in
deep practice for 10,000 hours will take you to the "expert" level. (Or, what
I just said defines itself?)

Of course, don't think that sitting in a chair 9 to 5 will give you the
experience and education you need to become better than you were the week
before. You must be challenged to stretch and grow, and you need some way to
learn from failure. Sometimes you can discover why you failed on your own, and
sometimes you need some kind of external feedback from a mentor or teacher.

In hacking, you can learn a lot from what others have learned and written
about, from other similar problems and solutions, so you can probably consider
a site like StackOverflow.com as one potential source of "external" feedback,
as long as you understand the solutions you find there (and even better if you
discover and solve problems that weren't previously shared.)

------
danielharan
A question for those who are trying to get better: how do you measure
progress?

~~~
VLM
The biggest problem is selling stocks to suckers hasn't changed much in a
century or so. Fred Schwed's hilarious classic shows absolutely nothing has
changed in that business in 90 years other than minor terminology.

On the other hand, other than general job title and being in front of a
keyboard and looking at a screen, almost nothing I did in 1981 is even
remotely similar to what I do in 2013.

I started out with basic and Z80 assembly programming, then 6809 assembly
programming, then OS-9 (kind of like unix, sorta..). Then downgraded to crude
PC and dos generalist stuff in the late 80s to early 90s. I did lots of linux
sysadmin work in the early (well, 93ish onward), mid, late 90s, then I took a
detour for a couple years into being (mostly) a BGP operator at a regional
ISP, then a phase of mostly DBA and data importer/exporter work, then went
thru a CRUD web app phase, etc. Along the way I did a lot of microcontroller
work mostly 68hc11 and a lot of the ancient and current PIC families. I also
had a weird side trip thru the joys of mainframe work circa mid 90s, someday
"modern" PC stuff could catch up to BAU in the mainframe world as of 1994, but
probably not. And I did some microwave RF work which does actually relate to
this discussion when you program a PLL synth using a microcontroller or
implement stupid sequencing tricks or even just monitor a GPSDO. I simply
don't have 32 years experience in anything. Adding to the weirdness I never
really stop anything, I still do enough linux sysadmin stuff to stay current
but probably not advance much beyond where I was which admittedly was pretty
advanced. And I never stop learning, I still think its hilarious to implement
project euler problems in new languages, scala being my amusement of choice
right now. I can't count how many Fred Brooks style silver bullets I've seen,
dodged, or laughed at in the last three decades.

On the other hand if you were a stockbroker pitching RCA in 1923 to rubes, its
not much different to pitch GRPN to rubes in 2013.

~~~
rythie
How does Algorithmic trading fit into this model?

~~~
VLM
Your average 40 year career stockbroker knows there's some young nerds from
the physics, math, and CS departments who were hired into the mostly B-school
grad company, but he doesn't work with them or hang out with them or have
anything to do with them other than maybe 3 or 4 levels up the org chart they
share a boss. So for an upper level manager HFT is a "new thing" in the biz
but not so much a broker. And from an upper level manager perspective they're
not totally new so much as basically expensive automated hyperactive
daytraders.

Yes I'm sure there exist rare individual exceptions but very few experienced
brokers pivoted out of sales and human trading/consulting into algorithm
design.

------
btipling
Link bait title, the post's actual argument is"You aren't getting any better
if you're not doing X."

------
zosima
The article is fluffy and wrong. Writers, composers and programmers all get
better from doing. For each new program written, you expand your style, your
vocabulary and learn to express yourself in a simpler and more precise manner.
This enables you to solve larger and more complex problems. Varying your
environment, genre and language makes this learning even more intense.

In e.g. stockbroking and mathematics, the vigor of youth may very well make up
for lack of experience. But what I've seen convince me that even though the
common perception may be that's true for programming too, it's really very,
very far from the case.

~~~
d23
Of course it's wrong. If you work at something for 40 years and don't get any
better, you have a serious mental deficiency. Hell, even if you do have a
serious mental deficiency, sheer basal ganglian muscle memory will make you
better. This is absurd.

------
JoeAltmaier
Focussed practice is effective; unfocussed practice is useless. No surprises
there.

------
stkni
I'm not sure that the perception that we have continuous improvement is all
that helpful. For one thing there are so many dimensions to improvement, and
some of them are probably competing. To try and chase them all we will
probably just line ourselves up for some break-down of some-sort.

I think understanding what you can and can't do will be far more useful in the
long-run.

Also, a note on the stockbroker example. We're talking about 'average'
performance for stockbrokers in their 20s and 40s. I can quite imagine that
the 'average' performance is the same. But what's the standard deviation?!

~~~
robheaton
Agree 100% that it's fundamentally about understanding what you can/can't do
and are/aren't doing. If you are jamming on what you know that that's totally
fine, but it pays to realise this.

The stockbroker example was slightly poorly chosen - similar studies have been
done on other professions, including physicians, in particular when inspecting
scans for signs of cancer.

------
wheaties
Always good to read something like this every once in a while. Reminds me just
how far i haven't gotten in my short career. Right, I really need to double
down on css.

------
kephra
"We want to be ninjas" _lol_

A ninja coder is a coder with experience in liquidation of companies. I can
claim, that I'm a ninja, because I liquidated 3 different companies in the
last 20 years.

Of course the main work of a ninja starts, after you fired everybody. You need
skills to hack into computers, accounts, databases, retrieve source code, and
try to get a sense of what was going on in a company, without allowing anybody
of the former employed to access any computer.

------
rhapsodyv
The post has his point, but you can't compare experience from stock market
with software development. They are complete different things. Your experience
doesn't help much in the stock market because its random nature. In software
development you really can accumulate knowledge and experience. You may not
remember all things you read and do, but at least you will know where to look
- and this is the key in this world jammed of information.

------
undershirt
I don't take the engineer's and entrepreneur's stance here that every thing
that I work toward have a so-called practical application and measurable
economic value. You can spend your life on something without expecting it to
"make you better".

The efficiency in my craft that I gain may prove to have some value to others
in the "real world", but make no mistake, I'm not driven by anything but my
interest in the craft itself.

------
3pt14159
I know this is false because people that are younger than me are generally
less experienced (and generally know less) and people that are older than me
generally know more. This seems to be a tech phenomena only though. When I was
practicing structural engineering I found that after 27 or 28 people stopped
getting better. Some even got worse (forgetting simple things like sheer
flow).

------
exratione
Market success is a very bad example. Success as a trader is related to
success in games like poker - it is predicated on the ability to act
consistently, against your instincts, and with discipline for long periods of
time. The domain knowledge and hands-on experience needed to run a couple of
successful market strategies is something you can pick up in a couple of
years.

------
UK-AL
It's because you can learn to build complicated systems, advanced algorithms
and data structure but in the end, it isn't going to help you build a simple
crud application any faster than someone who doesn't know these things.

You could be getting better, but it won't show performance wise.

~~~
aviraldg
If you can do all that, you _shouldn't_ be working on simple CRUD
applications.

~~~
carbocation
The tool is not the goal.

~~~
aviraldg
If you were one of a few surgeons capable of performing highly specialised
surgery, wouldn't you leave cuts and bruises for the interns and the nurses?

~~~
carbocation
That's not how capitalism works.

------
shanellem
I really liked this post and completely agree with the message. We tend to
equate each year of experience with "getting better". That's just not always
the case. It has to be deliberate. You have to be curious!

------
hudell
Couldn't force myself to keep reading this after "experience has absolutely no
correlation with efficacy"

------
namenotrequired
"Many studies, collected most notably in Geoff Colvin's "Talent is Overrated",
find that in a wide range of disciplines experience has absolutely no
correlation with efficacy [1]."

You seem to think you're presenting a surprising fact here, but you already
explained this in your very first sentence: "hackers have a much greater
intrinsic desire to improve their skills than those in other professions."

~~~
petenixey
The first sentence seems to be an anecdote based on a specific set of people
whereas the mention of Colvin's Talent is Overrated is a presentation of
evidence and also a more general pattern. Why do you find the two sentences
redundant?

~~~
namenotrequired
Oh sorry, I didn't mean I find them redundant per say - I think they show a
flaw in the main point. The main point seems to be that all the work many
developers do to get better isn't working. But this statement was based on a
study that encompasses many fields, while it already stated that people in
most other professions don't work so hard to get better as developers do. So
it makes sense that overall, people don't get better. That doesn't mean
developers don't either.

------
djunod
it really boils down to work flow---are you actually producing output or
spinning your wheels on unproductive thoughts and actions (reading hacker
news, Facebook, talking on the phone). To get better, you have to maintain a
consistent strong focus on producing.

------
hawleyal
Of course not getting better at your craft.

Just staying on top of new ways to practice that craft.

------
digitalWestie
So what's the advice here, try harder at getting better?

------
radiantradon
This article lost me at "laydeez"

------
cooldeal
Please get some contrast and also test your site on computers that don't have
retina displays or are not Macs.

<http://contrastrebellion.com/>

~~~
gregpilling
I have a Mac and retina display and found the site hard to read. Perhaps one
day, with experience, the site owner can think about and improve his
legibility.

Perhaps I am just showing my age bias, but it seems from my perspective that I
am handling more challenging problems more quickly with 25 years work
experience. I do not have the work ethic (desire to work insane hours) I had
then, but I am more effective now.

~~~
mgkimsal
Could also be the tools and tech at our disposal allows us to tackle larger
problems faster too.

