Ten Months of Programming – Months 4 to 6

June 6, 2013

Just yesterday I passed the 250 hour mark which means I have completed half of my total target hours. This, of course, is a great reason to finally (!) write the update post on my last three months on the project.

The last three months have been very busy. In March and April, I was mostly focused on writing some academic papers at UCL. Wedding preparations also took up a decent amount of time in April as I got married at the beginning of May. That was followed by a short honeymoon, two conferences, moving to Berlin and finding an apartment there.

Suffice to say, I am behind my schedule. But let’s get into the details.

How I Spent my Time

In total I spent 121 hours programming in these three months. This broke down to 57.5 hours in March, 34 hours in April and 29.5 hours in May. As you can see from the Beeminder chart, there were significant periods in these months when I did no coding at all. This was particularly true at the end of April, just before my wedding, and in May when I was traveling constantly.

 

Beeminder Progress May 2013Projects

I worked on a number of different things in these three months.

Willpower App

At the beginning of March I worked on the application that I’m building to run the psychology experiments for my dissertation. I mainly did some jQuery and set up cookies to track the different blocks of a user’s experiment.

Test-Driven Development

In the middle of March, Harry Percival showed up at my Django Coding Meetup in London and ran us through a tutorial he created on Test-Driven Development (TDD). I had heard of testing and but had only ever written a few tests when going through Learn Python the Hard Way when I was completely new to programming. But after that I quickly forgot about testing.

Harry’s tutorial was quite eye-opening for me and I was amazed at TDD. He also written a book Test-Driven Web Development with Python. After the tutorial I spent a lot of time working through the initial draft of his book. This was very interesting and I can highly recommend the book.

I then went back to my psychology app and tried to write tests for it. This was moderately successful and very time-consuming as I’m still struggling with writing tests.

Stroop App with Matlab

In April, I focused on writing an app that runs the Stroop task (a psychological task). It had a graphical interface, would divide participants into conditions, select random stimuli, give feedback for one condition and record the answers.

This was a project I had to do for the programming for psychology class that I did at UCL. We were required to use Matlab and I was initially not happy with Matlab at all. I find the syntax very messy and unclear. It has none of the elegance and coherence that I find in Python.

Yet, I must say that development with Matlab, which also comes with an integrated development environment, was very fast and effective. Part of this is because of an excellent library called Psychtoolbox that is very simple to use and can generate stimuli and record user responses. Matlab also has his own graphics library that is extremely quick and easy.

It has been quite striking how much simpler it was to get good, interactive graphics compared to the willpower app where I need to do some of the same things and where this requires using Python, Django, HTML, CSS, Javascript and jQuery.

Overall, this was a satisfying project, particularly since it required three weeks of intense coding and then I was done with it.

DjangoCon in Warsaw and now a Django core author!!

After the wedding, we went to Amalfi near Naples for a few days for honeymoon. The next weekend I attended the Quantified Self conference in Amsterdam.

Then it was time to head to Warsaw, Poland go to my first tech conference DjangoCon Europe. The conference was quite long with three days of talks and two days of sprints and I stayed for the whole time. The location was absolutely amazing as they rented a circus tent in a big green space and as the weather was beautiful we could be outside a lot and enjoy the sun as well as the talks.

However, the conference itself was of limited use for me. The talks were very short, just 30 minutes each. The speaker would make some argument and show some code, but with many of the areas I was unfamiliar with and then it was too little time to get into it and I didn’t have much of a basis to evaluate what they said. Overall, I feel I could have learned much more if I had just programmed on my own for a week.

The sprints on the weekend were much better. I participated in a workshop in the morning on contributing to Django core. Afterwards I worked on improving the documentation for upgrading one’s version of Django. In the end, my pull request was accepted and you can find the improved documentation here. Of course, this is pretty awesome as I am now officially in the list of Django core authors!!

Data Analysis and Learning R

After DjangoCon I went back to Switzerland to get my stuff and then I hopped on the train to Berlin, where I will be living for the next three months or so until I plan to go to New York for Hacker School.

Since arriving in Berlin, my main focus has been on learning R and better Data Analysis skills. The reason is that I have conducted a psychology experiment along with Yoni Donner and Anne Hsu. Yoni is the creator of Quantified Mind, a former AI researcher at Google and now a PhD student at Stanford. We designed an experimental design together and recruited some participants.

The challenge now is to make sense of a large data set and although I have had quite a few statistics and econometrics classes over the years, I have no skills working with actual data. Yoni has done some great analyses already so I have tried to catch up to what he is doing and learn enough R to contribute to the analysis myself.

While I have enjoyed R greatly and learned much, I’m still some way from being able to replicate what Yoni’s done not to speak of building on top of it. But hopefully, I will get to that point in the next weeks.

Anki

Finally, I have been using Anki extensively again over the past months. Kevin de Baere, a super talented, self-taught programmer and great entrepreneur, who I know from my London Django meetup instigated me to start again and shared some of his decks with me as well.

Using Anki has been awesome and in retrospect I should have kept using Anki all the way through this project…

Recap

Looking back on the past three months, makes me realize how much I have done and I am very satisfied with that. While I still often feel like a beginner, I am at a very different point than last November and even than three months ago.

That being said, at the start of June I was 75 hours behind schedule. That is a lot of time. I will not travel very much in the next months and I should be able to make up part of this. Specifically, my goal is to get to 310 hours by the 28th of June which would be reducing the lag to 65 hours. That being said it looks likely that I will fall somewhat short of the 500 hour goal I set myself for mid-September…

What Projects Lie Ahead

At the moment, my focus is on R and data analysis and that will remain so for much of this month. I also plan to write a Python version of the Turkish card game Pishti. Apart from being a great learning project, Hacker School asked applicants in their last application to submit a program they wrote from scratch without using any frameworks. Since I have mostly programmed in Django, I plan to submit my Pishti game for that.

Previous post:

Next post: