A true journal of my progress in learning data analysis skills must include notes about failure. Nothing is purely sunshine and achievement milestones, so this is a short write-up of a recent (ongoing) problem I’m having with my data analysis / coding nanodegree.
As I mentioned previously, I’ve been working my way through Udacity’s Intro to Programming nanodegree. The course is split up into stages, and I’m currently working on the final one. You get to choose an area of specialism, and I picked data analysis. The work you do as this final stage actually counts towards the subsequent full-blown data analysis nanodegree.
I managed to get through the first four (actually five, since there’s a “stage 0”) stages in a month or two. It went extremely quickly and while there were challenges, I never felt completely overwhelmed. This final stage, though, is sapping my very life spirit. I work on the lessons for an hour or two, six days a week. While previously I was getting through perhaps half a dozen lessons each day, now I’m lucky if I manage to get through a single one.
This past week, I’ve been stuck on a single lesson for the past three or four days. I’ve written queries on the Udacity forum, where more experienced coders and alumni of the nanodegrees offer support and advice. You usually get an answer within two or three hours, which is excellent. The only thing this time is that I’m finding I don’t understand the answers to my questions.
There seems to be a layer of misunderstanding or some fundamental skill or piece to the puzzle that I’m missing, that means I’m unable to progress through the course. The difficulty level seems to have jumped substantially from one course to the next.
The specifics of the problem are as follows. We’re using Jupyter Notebook to work through a series of problems and questions we have around a data set supplied in the form of several .csv files. At first, we did some formatting changes and converted the data into mutually recognisable formats. Then we’ve slowly been isolating parts of the data so as to answer specific questions. The data set itself relates to the Udacity course’s students – how long people stay enrolled, when people quit, that sort of thing – so for the current question/class I’m supposed to make a list of students who have completed at least one week of the course.
Day one of my struggle: I just got stuck in. Tried extremely hard. Failed extremely hard. This was more of a brute force approach. It had worked on some previous occasions, but after two hours I was still nowhere. I wasn’t entirely sure I even understood the question.
Day two: I wrote up a question on the forum and decided to go back to basics. I had noted that there seemed to be some layer, some skill or fundamental principle that I wasn’t understanding. Given that the class required a good grasp of lists and dictionaries (both Python programming language concepts), I thought I’d go outside the Udacity course and take a few lessons elsewhere. Of course, we’d covered lists and dictionaries in previous lessons, but apparently not enough for me to be confident in their use. I spent a few hours working my way through various courses and their practice examples: CodeAcademy has a useful series of lessons, as does CodeSchool; chapter 5 of “Automate the Boring Stuff” also has a useful section on lists and dictionaries. So I’d worked my way through all this and I felt like I was in a much better place when it came to the fundamentals.
But on day 3: more failure and a lack of comprehension. My frustration was compounded when the response to my query on the Udacity forum made me even more confused than when I started. I feel like I have a somewhat solid idea about what I have to do to solve the problem, but all my implementations of code don’t take me where I expected, and nothing has brought me to the answer to the test problem.
So that’s where I am right now. Stagnation and failure. I’m booked in to chat with one of the Udacity team on a Skype call tomorrow, and hopefully that will set me straight. I’m pretty sure that all of this is something that time and patience will solve, or at least ameliorate, but for now it’s frustrating not to know which pieces of the puzzle I’m missing.