I’ve been thinking a lot about craft lately, and how my relationship with the idea of craft has evolved over the past few years.
When I was doing my MFA at NYU, I took two types of writing classes: workshops, which focused on writing and critiquing the work of my peers, and craft classes, which focused on learning to write by studying the works of well-known poets. The general idea was that you had to approach mastery from two directions at once, as both a practitioner and as a critic/theorist. Without sufficient understanding of the underlying theory, you lacked the mental models and language to draw generative comparisons and discuss your ideas; without actually, you know, writing poems, you lacked the experience necessary to not only do good work, but to make relatively quick aesthetic or technical decisions that less experienced writers would make incorrectly, slowly, or both. Knowing what and knowing how—propositional versus procedural knowledge—are not only two sides of the same epistemological coin, but complements in the pursuit of mastering a particular craft.
More recently, I’ve been thinking about craft as it pertains to programming and software engineering. The Greek word for craft, τέχνη (tek-ni) is the root of the English words “technical” and “technology,” and articles on the role of craft in programming have been cropping up on my radar here and there. This article by Peter Norvig from 2001 caught my eye recently, and while it apparently makes it to the front page of Hacker News every once in awhile, I don’t think it was this article that brought the “10,000 hour rule”—that is, the idea that one must practice a skill for 10,000 hours in order to become an expert—to my attention. (I think it was actually Malcolm Gladwell’s Outliers.) Regardless, the number has been oft-repeated and seems to have at least some vague scientific basis, so I’ll treat it as more or less correct for the purposes of this post.
I’ve been writing poems for ten years; in order for me to have hit the 10,000 hour mark, I’d have had to average around 19 hours a week writing/working on poems. (This was probably about right in college and right afterward, and my average was much higher during my MFA.) I’m very comfortable with the idea of mastering programming (insofar as you can master a discipline like poetry or programming) in 10 more years, but I’d love to be a thoroughly competent—even very good—programmer in the next couple of years. I’m truly excited by the idea, and not only the specific goal of becoming a good programmer, but by the idea that, given a few years, you can become really good at something you haven’t done your whole life or earned an academic degree in.
I’m reminded of this Saturday Morning Breakfast Cereal comic by Zach Weiner. I feel a sort of cosmic kinship with Zach, who studied literature before going back to school to pursue a degree in physics. I think having a deep understanding of an artistic and scientific discipline allows for a more nuanced and comprehensive understanding of both—each informs the other in really surprising and stimulating ways. And whether it’s seven years or ten years or ten thousand hours, whether you earn a degree or take online courses or just practice incessantly on your own, I’m heartened by two things: that I’m fortunate to live in the age of the Internet (probably the greatest time to be an autodidact in the history of mankind), and that it’s never too late to take up a new craft. Looking back on my experiences of learning to read, appreciate, and write good poems, I can’t wait for the discoveries I’ll make writing software.