Atlas · Details
Practicing Programming
Author’s note
Surprisingly, this one stands the test of time. It's essentially all still valid advice today, if you want to get better at programming, even with AI agents.
AI Notes
A January 2005 follow-up to an earlier piece in which Steve had claimed — with no evidence — that most programmers, unlike musicians or athletes, never practise their craft in any disciplined way. The thesis: merely doing your job isn't practice (going to meetings isn't practising your people skills), and great engineers are great because they practise constantly and deliberately. Steve draws the case through music. As a self-taught guitarist he played 6 to 8 hours a day for five years and only got very good at being sloppy, because "practice makes perfect" is wrong — perfect practice makes perfect, and that takes instruction, theory, and dissecting a piece into tiny components rather than playing it start to finish. Programmers have the same resistance to lessons ("I'm already great at Perl") that he once had to guitar teachers. Because skills have a shelf life — only math, CS, writing, and people skills are roughly timeless — programmers have to take training into their own hands. The essay closes with about a dozen concrete drills, from rating every skill on your own resume to sitting in on other people's interviews.
The "programmers should practise like musicians and athletes" framing predated the code-kata movement by years, and the drills themselves are still directly usable two decades on.
Related listings
-
2008
Programming's Dirtiest Little Secret
The same craft argument, narrowed to one skill. Practicing Programming is the whole training programme; touch-typing is its cheapest, most concrete drill — and that essay even teaches it with a musician's fast-slow-medium practice loop.
-
2008
Get That Job at Google
Get That Job is the cram session; Practicing Programming is the long game underneath it. Its mock-interview and resume-screening drills are exactly the kind of deliberate practice this essay says programmers should make a lifelong habit.
-
2007
Rich Programmer Food
Two essays in Steve's pure teacher mode. Practicing Programming is the habit — train yourself, deliberately, forever; Rich Programmer Food is the assignment — go and learn how compilers actually work.
Where it was argued
- Hacker News Jan 2015
From the peanut gallery
Read the rest of the thread · 1 more
-
Dave Thomas has a long blog thread on practicing programming. This gives 21 suggested exercises, or 'code kata'.
http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Practices/Kata
On the music side of things, I'm learning to play piano, and teaching myself because two years of lessons did nothing but lighten my wallet. It seems that practicing techniques are still fairly hotly debated even now; some people maintain that non-musical drills such as those by Hanon and Czerny are worthless; it's better to use, say, Bach Two Part Inventions or Chopin Etudes, because technique should never be divorced from music.
Personally I found this free online book immensely helpful: http://members.aol.com/chang8828/contents.htm
(He has a good reviews second, where he recommends other materials; I went with Seymour Fink's book, and I'm about to buy the 'Freeing The Caged Bird' video.)
Also, I found this book reading this book right now, which combines elements of Tai Chi and Feldenkrais and an apparent unification of the arm-weight/finger-movement schools. The author is a bit full of himself, but the first couple of chapters (on the bus this morning) were good. I guess I should blog this...
Another article worth reading along the same lines is Peter Norvig's Teach Yourself Programming in Ten Years.
— Daniel C · February 4, 2005 11:46 PM