Aug 14, 2016

Nanodegree postmortem

In my recent Year In Review, I wrote that, though I was deprioritizing technical learning, I was going to continue working on my Udacity Nanodegree:

On the object level, this means stopping all technical learning I feel that I "should do," while continuing to learn things that grab my attention. One exception to this: I want to finish my Nanodegree by the end of August – towards this end I'm going to block off my Sunday mornings to work on the Nanodegree, either until it's finished or September arrives, whichever comes first.

I'm writing this on August 14th. I haven't finished the Nanodegree and September hasn't arrived, but this morning I ended my Nanodegree enrollment. So that's another plan that ganged agley.

I began the Nanodegree last September. During the previous summer, I had struggled through the first half of Joe Blitzstein's Statistics 110: Introduction to Probability course, which turned out to be very difficult, despite the low course number and friendly sounding title. I had been turned onto Blitzstein's course by Ben Kuhn's recommendation (a), which was backed up by Andrew Gelman (a) when I wrote him asking for advice. (Gelman's blog has a long lead time – I wrote him in June 2015 and his reply wasn't posted until February 2016, though he did reply to my email right away. Also, sending a thoughtful reply to an unsolicited message was very nice of him, given what must be a massive email burden.)

A moment of clarity came when I sat down to self-administer the midterm from Blitzstein's course. I found that I couldn't confidently solve any of the problems without referencing the answer key. This was discouraging – I gave up on the course after that.

I still had a desire to "tech up", so I decided to enroll in Udacity's Data Analyst Nanodegree after reading about it in the Times (a). The Nanodegree promised more pragmatic technical learning than the probability course, which was focused on fundamentals. In addition, Udacity would bill me $200/month for the Nanodegree, which I hoped would function as a strong accountability mechanism.

I had better success with the Nanodegree than with Blitzstein's probability course. The Nanodegree presented content as short videos in a sequence, interspersed with problems to solve. In general, the concepts presented in the videos were very straightforward, sometimes feeling too simplistic, which led me to move through the video sequences quickly. After each "course" of sequences, I was given a freeform project to complete. The projects were the meat of the program – a human reviewer would grade each project submission, and only projects that "met specifications" (i.e. passed all the requirements on a rubric) would be accepted. The Nanodegree was completed by meeting specifications on all seven of its projects.

At first, this seemed eminently doable, and within a month I had met specifications on the first project (in addition to completing the optional introductory project). But I soon became less conscientious, shifting from working on the Nanodegree a little each day to working on it a couple of times a week to working on it on weekends, sometimes. By December, weeks had gone by without forward progress.

When home in Michigan for my winter holiday, I sketched out a plan to knock out the remainder of the Nanodegree during my vacation. On reflection, this was obviously naïve. But the plan encouraged me to work, and I met specifications on another project over the holiday.

My interest flagged again in early 2016, and again weeks were going by without any progress. This stagnation was painful – every month was costing me $200, and every derailed work schedule made me feel bad about both my ability to make reasonable plans and my ability to execute on goals.

I rallied again in late March, knocking out one project and diving into another. But I got bogged down while working through Udacity's Machine Learning course in preparation for the project, an ML investigation of a dataset of Enron emails. The sequences of videos & questions were straightforward enough, but they felt detached from the underlying work that the machine learning models were doing. I was learning how to direct these models but I had no idea how they worked, just like learning to drive a car doesn't teach you about what makes it go. This was frustrating, as I've always craved understanding of fundamentals.

I'm not sure if this disconnect was the blocker, but I never really gained traction on the machine learning project. I entered another long stagnation, which, apart from a couple of desultory jabs at a project using SQL to parse and clean data about my hometown pulled from OpenStreetMap, brings us to today, when I decided to cancel my subscription.

I completed about half of the content necessary to obtain the Data Analyst Nanodegree. I "met specifications" on three of the seven projects necessary to obtain the degree, and made some progress on two of the other projects.

It's possible that had I really buckled down, I could have finished the program by the end of August. There really wasn't that much work left, probably 50 focused hours worth, which would have made for an intense yet manageable three weeks. But I had little desire to do this, and the desire I did have came from a bad place. I didn't want the Nanodegree in order to acquire the skills necessary to answer some pressing question I had, nor did I want it to secure a well-paying, interesting job. Rather, I wanted the Nanodegree for some mix of pride, credentialism, and curiosity. I did find the topics interesting, but as I wrote recently:

I would classify my interest as casual, an "oh, that's interesting, let me poke around for a while" rather than a "wow this is the coolest thing and I have to learn everything that has ever been written about it."

I don't have much regret now that I've cancelled my subscription. I regret that my indecision and impotent ambition delayed cancellation by a few months, which cost me several hundred dollars. It was pretty clear by March that things were not going particularly well and that something would have to change. Hell, it was pretty clear by December. But I'm quite good at ignoring unpleasant truths about myself.

What did I learn from this episode?

I learned that it is difficult for me to learn things when driven by abstract reasons. It is much easier to learn things when I have a concrete problem or interest to pursue. For example, I learned much faster when writing about a potentially overvalued prediction market on Trump (and later revisions to this post) than I did when halfheartedly struggling through Blitzstein's probability course. I often can't get invested in abstract problems or puzzles. I don't know why I'm wired that way, but I am.

I learned that I want to be viewed as a technically competent person much more than I want to actually spend time solving technical problems. This isn't a pleasant fact about my character, but I think it's true.

My discernment about what I'm genuinely interested in improved as well. Writing gives a clear contrast here – I have spent the last two hours writing this post and only noticed the time because I had to calculate it to make this point. I can't always get into a good flow when I try to write, but more often than not I can. And I enjoy it. I don't just enjoy experiencing the final product, and I don't just enjoy being viewed as a person who writes well – I enjoy the process as it occurs (though I enjoy those other aspects as well). I haven't experienced the same degree of enjoyment of process with the technical learning I've done so far. I think this is a strong signal about how I should spend my time.

Oh, I actually did learn some coding and statistics as well :-)

[rereads: 2, edits: tightened up language]