|
Wednesday, March 19, 2008
|
|
|
Secret Teachings: The Programmer's One Inch Death Punch
How do programmer's get better at their job? Few programmers think of programming as a true profession. For most it's just a job. They go to work, do what's asked, and go home. They don't read. They don't attend conferences. They don't train. In fact, the training business for software is pretty much dead and has been for years.
Other professions have different attitudes. Professional athletes train constantly to improve their skills. Even doctors and accountants have stringent continuing education requirements so they stay current.
What can we programmers do? Let's first look at how expert performers are created in the first place. That might help us figure out how we can become better. Time in an article called The Science of Experience has a lot of potentially fruitful ideas:
- The number of years of experience in a domain is a poor predictor of attained performance.
- Rather than mere experience or even raw talent, it is dedicated,
slogging, generally solitary exertion, repeatedly practicing the most
difficult physical tasks for an athlete, repeatedly performing new and
highly intricate computations for a mathematician, that leads to
first-rate performance. And it should never get easier; if it does, you
are coasting, not improving.
- They key is "deliberate practice," by which is meant the kind of practice we hate,
the kind that leads to failure and hair-pulling and fist-pounding. You
like the Tuesday New York Times crossword? You have to tackle the Saturday one to be really good.
- Great performance comes mostly from deliberate practice but also from another activity: regularly obtaining accurate feedback.
- Experts tend to be good at their particular talent, but when something
unpredictable happens, something that changes the rules of the game
they usually play, they're little better than the rest of us.
- Entire classes of experts — for instance,
those who pick stocks for a living, are barely better than novices.
(Experienced investors do perform a little ahead of chance, his studies
show, but not enough to outweigh transaction costs.)
- Researchers found that élite skaters spent 68% of their sessions
practicing jumps, one of the riskiest and most demanding parts of
figure-skating routines. Skaters in a second tier, who were just as
experienced in terms of years, spent only 48% of their time on jumps,
and they rested more often.
- Experience is not only insufficient for expert performance; in some
cases, it can hurt. Highly experienced people tend to execute routine
tasks almost unconsciously. Experience in a particular task frees space in your mind for other
cognitive pursuits, wondering what's for dinner, answering your cell,
singing along with Justin Timberlake, but those things can distract
you from the accident you're about to have.
- Experience can also lead to overconfidence: a study in the journal Accident Analysis & Prevention found that licensed race-car drivers had more on-the-road accidents than controls did.
None of this trips my BS meter. It makes a lot of sense and jibes with experience. We all know people with 10 years resume experience in X who couldn't program their way out of a paper bag while someone with just 1 year of experience continually delivers quality results. And I know I've grown the most when truly challenged to solve new problems.
Given the science of experience article I think Coding Dojos seem like a potential solution to the programmer training dilemma. A coding dojo is "a meeting where a bunch of coders get together to work on a programming challenge." It's a form of deliberate practice, which is "not the same as experience gained while doing your job. It is when you
actually seek out experiences that will stretch your skills just the
right amount, and give you feedback that enables you to learn."
For thousands of years martial arts have been taught in a deep mentoring relationship using a long progression of increasing difficulty and challenge. The path from a white belt to a black belt is long, it's hard, but in the end you learn. You learn through constant practice and challenge.
It would be interesting to consider how a similar infrastructure could be setup to train programmers.
3:53:40 PM
digg
reddit
|
|
|
|
© Copyright
2008
todd hoff.
Last update:
3/19/2008; 3:58:01 PM.
|
|
March 2008 |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
Feb Apr |
|