My stint in the sixth "batch" of Hacker School begins on 11 February, four days hence. I anticipate three months of intense growth as a programmer, and "reticulation" with a great many interesting souls.
Hacker School is not a school but a dojo for programmers at all levels. It also functions as a recruiter for the lively tech industry in New York. I know much less about it today than I expect to next week or in the summer, but these two facts are clear. And both make it seem an experience not to be missed. I have been studying Computer Science part-time at City College for three years and have just finished the six courses making up the undergraduate minor — Hacker School appears to be an ideal next step for me.
I submitted an application as soon as the current competition opened and was interviewed twice for it, each time by just one person: first, I had what seemed to me an interview exploring my personality and public voice, and not long after that, one dealing more directly with coding. Neither was in any way stressful. Both interviewers had conversation styles that invited me to listen and to speak, and both seemed attentive to what I had to say. The interviews took place over Skype.
For the coding interview I had sent Hacker School a little progress-bar class I had written quickly in Python at the end of June and early July, just after the Manchu dictionary was done and while my teacher was in his brief last illness. It had been my first foray into what passes for multiprocessing in Python. I had left the project, I recalled, in a working but highly inefficient state and I thought it would be a good subject for a refactoring session, which is what the second interview was supposed to dance around.
About half an hour before the interview I decided to make sure the code actually worked. It did not. So rather than going calmly into a refactoring session, I was in high debug-mania when the interview started. By then I had already identified and fixed two principal bugs, and my mania had helped me to review the details of the code far better than I had managed just by reading over it a few times on the subway. The conversation was fun, and I knew I would be lucky — really graced — to be accepted, if only for the pleasure of working with my interviewer again. The original plan had been to work on the code using PiratePad (a site that allows synchronized text-editing by multiple users), but the interviewer and I conducted the whole discussion by voice, each of us looking at the same code on our separate machines. It couldn't have gone more smoothly, and she left me with a good question to ponder about my project.
I was notified of my admission before the end of the day of the second interview, and rather than being excited I felt intense gratitude for the invitation to be part of this unusual project.
The practice seems to be to refer to batches using array-index notation: batch 6 is called "batch".
Applications closed on 22 January, a week later than advertised. A mailing list was set up the same day, and threads quickly opened on housing, insurance, and self-introductions. I suspect interviews continued for some days after that, but recently we were told there were 45 of us in the current batch. We've heard that an introductory document is in the works, but apart from a somewhat stern reminder not to be obnoxious ("lightweight social rules" — "no subtle sexism" is perhaps the least lightweight of them, considering Hacker School's mission to guide more women into the aggressive world of coding), nothing of a general nature has materialized — do I sound as though I'm complaining? there's no rush, of course. The organization has, for the first time, found semi-permanent space for itself near the Canal Street station of the West Side IRT, which will speed my commute. I can see that a lot of work is going on behind the scenes.
In the past eight days I've met five other members of this batch one-on-one, each for long enough to talk about serious things and get a good taste of their temperaments. All seem to me to invite more of my time in conversation. One is only minimally experienced at coding. Another has a coding background not far from mine — experienced, but not very, and in need of more intensive exposure. And the remaining three have been working for some years as developers. I suppose these are the three main types of background I will encounter.
I have thought hard about what sorts of projects to work on over these three months. Although many of the advanced batchlings seem to be interested in working through an on-line algorithms course or in Clojure and other functional languages, I feel the need to get more practice at tools I have already been exposed to but have not used extensively. As a teacher I always place proficiency as my highest goal, and if I had one disappointment in my City College education it was that proficiency — in math and in coding — was not first among the program's goals for me. I originally mentioned "more practice with familiar tools" in my initial interview, when asked what I might spend my time on, but now after considering the alternatives named by other people I feel much surer that doing this is the best plan for me.
I will aim for greater mastery of the whole web-dev/SQL/scraping stack surrounding Python. As of today, I envision starting by building a scraper feeding a simple SQL database, then rebuilding my http://yintong.info site using Python and PostgreSQL (as I have long wanted to do), and finally building a more elaborate NLP project featuring web-scraped Chinese sentences and a parser. If I can get these three projects running smoothly with time to spare, it would be interesting to build parallel versions in some second language, such as Ruby, which is so popular in New York right now.
But I hope I am ready for unexpected changes in direction, too.
I have prepared a VirtualBox installation of Ubuntu 12.04 server as my working environment, and am hurrying to get an old MoinMoin wiki restored for use as an on-line notebook.
It's my intention to record my impressions of this experience on this blog, too.