Practicing Programming (2005)
From the article that he quotes at the start:<p>&gt; But it&#x27;s not just team sports. Anywhere there&#x27;s competition, there&#x27;s practice. Musicians, golfers, skiiers, chess players, martial artists -- everyone who practices some difficult art or craft, practices it.<p>&gt; Even where there&#x27;s not overt competition, professionals still study and practice. Doctors and pharmacists have to continue their education throughout their careers. Writers, painters, composers and other artists practice their tools and techniques, and they keep abreast of the trends in their profession.<p>&gt; Virtually all professionals start by attending school to receive education in the theory, history, and practice of their profession. Many do an internship, apprenticeship, or residency as part of their education. In some professions, the education is required, and some even make you pass a test (e.g. the Bar exam, the CPA exams, etc.) in order to be a member of that profession.<p>&gt; I have trouble thinking of any modestly difficult profession in which continuous study and practice aren&#x27;t the norm. Fighter pilots train in simulators before getting into the latest jet. Actors and politicians practice their lines and their smiles. Opera troupes do mock performances before public appearances. Writers, poets, and artists attend workshops, and study the work of the Masters.<p>&gt; Everyone practices -- everyone, that is, except for us. We just grind stuff out, day in, day out. Are you as embarrassed about the state of our profession as I am?<p>This is mixing lots of things together to say &quot;everyone practice, except programmers&quot;, which I think is wrong. First, what is meant by practice? For doctors and pharmacists, it&#x27;s &quot;have to continue their education throughout their careers&quot;. I, and most programmers I know, do this at least every week. Not in a formal way, but it&#x27;s built into my and our workflow. For example, I do a bit of work with JavaScript promises. I struggle a bit, more than I think I should, because my mental model isn&#x27;t good enough. I&#x27;ll spend some time learning more about promises. Another example: someone at work writes some code that accesses a property that might be undefined (still in JS). There&#x27;s a comment on the PR that it might throw an exception (the way it works in many other language). I&#x27;ll take a bit of time to correct that, and point people to documentation (usually MDN) and the Ecmascript standard. Doing this, I familiarize myself a bit more with the standard, and everyone learns something. We even learn a bit about how and where to look for information, which looks like meta-learning to me.<p>Then there&#x27;s another type of practice: &quot;Musicians, golfers, skiiers, chess players, martial artists -- everyone who practices some difficult art or craft, practices it.&quot;, &quot;Fighter pilots train in simulators before getting into the latest jet. Actors and politicians practice their lines and their smiles. Opera troupes do mock performances before public appearances. Writers, poets, and artists attend workshops, and study the work of the Masters.&quot;. That type of practice is close do the idea of &quot;plan to throw one away&quot;, from the Mythical Man Month. The thing here is that there is a big difference between what is considered a &quot;performance&quot; or a &quot;piece&quot; from a programmer and from professions with live performance. When you do a live performance, you have to do it all from the beginning. When you prepare something, you can cut and mix different parts. The original rails presentation is an example of live performance, talks in general are. Programmers often practice their talks so that they will be smooth. Demos are another example of live performance. They&#x27;re often practiced too. But this practice is not the same as a doctor going to a conference to hear about the state of the art on treating X.<p>As for the first line of the essay:<p>&gt; Most programmers have only a vague notion of how competent they are at what they do for a living.<p>That seem to be true for most professions that don&#x27;t involve competition as in sports. In chess you have an elo, in golf you have championships. But who&#x27;s the best singer alive? The best bassist? How good is the drummer from your favorite band? In the top 10%? Top 50%? Top 1%? I have no idea how to evaluate that. How good is your doctor? How would you go about evaluating them? How would they go about evaluating themselves?<p>It&#x27;s also weird that the essay has &quot;This isn&#x27;t just true of programmers, of course.&quot; near the end, only for the other to start with &quot;Back in October I wrote an essay in which I compared programming to other professions. In it, I made the unsubstantiated claim that programming is unusual, in that most programmers don&#x27;t practice their craft -- at least, not in any disciplined or regular way.&quot;. The initial claim of &quot;Most programmers have only a vague notion of how competent they are at what they do for a living.&quot; seem true, but I think it applies to most of the population.