Link: The Case for Working With Your Hands

The NYTimes re­cently pub­lised a long semi-au­to­bi­o­graph­i­cal ar­ti­cle writ­ten by Michael Crawford, a Univer­sity of Chicago Phd grad­u­ate who is cur­rently em­ployed as a mo­tor­cy­cle me­chanic. The ar­ti­cle is par­tially a some­what stan­dard lament about the aliena­tion and drudgery of mod­ern cor­po­rate work. But it is also very much about ra­tio­nal­ity. Here’s an ex­cerpt:

As it hap­pened, in the spring I landed a job as ex­ec­u­tive di­rec­tor of a policy or­ga­ni­za­tion in Wash­ing­ton. This felt like a coup. But cer­tain per­ver­si­ties be­came ap­par­ent as I set­tled into the job. It some­times re­quired me to rea­son back­ward, from de­sired con­clu­sion to suit­able premise. The or­ga­ni­za­tion had taken cer­tain po­si­tions, and there were some facts it was more fond of than oth­ers. As its figure­head, I was mak­ing ar­gu­ments I didn’t fully buy my­self. Fur­ther, my boss seemed in­tent on re­train­ing me ac­cord­ing to a cer­tain cog­ni­tive style — that of the cor­po­rate world, from which he had re­cently come. This style de­manded that I pro­ject an image of ra­tio­nal­ity but not in­dulge too much in ac­tual rea­son­ing. As I sat in my K Street office, Fred’s life as an in­de­pen­dent trades­man gave me an image that I kept com­ing back to: some­one who re­ally knows what he is do­ing, los­ing him­self in work that is gen­uinely use­ful and has a cer­tain in­tegrity to it. He also seemed to be hav­ing a lot of fun.

I think this ar­ti­cle will strike a chord with pro­gram­mers. A large part of the satis­fac­tion of mo­tor­cy­cle work that Crawford de­scribes comes from the fact that such work re­quires one to con­front re­al­ity, how­ever harsh it may be. Real­ity can­not be pla­cated by hand-wav­ing, Pow­er­point slides, ex­cuses, or sweet talk. But the very harsh­ness of the challenge means that when re­al­ity yields to the fi­nesse of a crafts­man, the re­ward is much greater. Pro­gram­ming has a similar as­pect: a piece of soft­ware is ba­si­cally ei­ther cor­rect or in­cor­rect. And pro­gram­ming, like me­chan­i­cal work, al­lows one to in­ter­ro­gate and en­gage the sys­tem of in­ter­est through a very high-band­width chan­nel: you write a test, run it, tweak it, re-run, etc.