I'm starting my second month at Hacker School, a sort of ripening cave for cheeses of the programmer variety.
I'm hard put to sum up the experience in a few words, but I will say that it has been the most intense episode of independent learning I have had since my first year of fieldwork in China. (I found myself in the mountains of Western Fújiàn without supervision and learned how to do linguistic fieldwork by myself with real Chinese farmers and working people in their own environment.) "Independent learning" does no justice to it, though, because while I spend most of the day under my own direction, in one respect it is as though I am in an apprenticeship — albeit one whose terms are constantly shifting. There is a huge range of knowledge among the 44 or so members of the current "batch", and I can easily get advice or instruction on almost anything I have trouble with.
More useful than advice or instruction, however, is constructive prodding. Hacker School has a system for encouraging that, called pairing. Pairing is when two people work "together" — on a single computer, with only one person at the keyboard, but both involved in the coding or whatever is being done. There is an element of dialectic, negotiation, Talmudic disputation, or call it what you like from among the familiar models of this kind.
On our first day, a month ago, Nick Bergson-Shilcock spoke to us about philosophy, and among his points was that “pairing” is the thing that members of past batches most often say they wish they had done but didn’t, or didn’t until too late. I'm feverishly self-directed by temperament, and there were projects I knew I wanted to do, and to conceptualize on my own. So I didn't exactly see how I would find a comfortable way to start pairing. But it was "easiest" just to jump into it rather than worrying about being comfortable. I've now had about half a dozen pairing experiences and am fully sold on its utility. And on its comfort, too — it's quite pleasurable, and the learning that happens in the encounter extends deeper into my mind than if I pursue self-absorbed work alone.
I am confident I can learn anything, but the one thing I really lack is experience. Yesterday I "apprenticed" myself to a far more proficient programmer, volunteering to write two web applications for his use, to save him some time in a project. In the end he substantially rewrote my code, and for me that was a great gift — a chance to see a more expert solution to a problem I had attempted, and to observe any number of efficiencies and best practices.
Night sends me to bed tired but full of unspent emotional energy; in the morning I find I have usually only had four or six hours of sleep but have trouble restraining my drive to get back to work.