Ten Months of Programming – Month 1

December 1, 2012

The first month of my Ten Months of Programming has now ended. Next week, I’m heading to South East Asia to travel with my wonderful girlfriend for a while so I’ll have a month-long break from the project. What have I learned these past three weeks? How did it go?

Measurements and Their Use

I set up some very clear criteria to track my progress and to be able to say whether I am achieving the goals I set myself. The most important being the number of hours I actually spend programming. Updated charts with all my measurements can be found here. I managed to be stay on track for all of them.

Unfortunately, while these measurements are very useful and great in holding me accountable they are far from perfect in representing the true extent to which I progressed in my quest to master programming.  So let’s first quickly discuss how useful the things I tracked were:

Hours Programming: This was and is super crucial. It’s the key metric that I use and the whole project rests on it. Massive for keeping me on track.

Technical Blog Posts: I’ve written one (crappy) technical blog post so far which was the minimum goal I’d set myself. I definitely want to focus more on writing blog posts next year. So far, this measure wasn’t instrumental.

Schedule Review: Here I deviated a bit from my original plan. Sometimes I did nothing but review for two hours, other times I was just coding and didn’t review. I also found it quite hard to keep the two strictly apart. This hasn’t been a very useful measure so far. I might have to refine the review & assimilation process next year.

Technical Conferences: Haven’t been to any, so hasn’t played a role yet.

Get up same time: This was the second measure that was hugely useful. I did oversleep twice but made up for it by getting up early on Saturday one week. It has also led me to have a very regular sleeping schedule and I’ve been feeling great and having lots of energy.

No Computer Sunday: The first Sunday I found myself very annoyed that I couldn’t do any work. I debated abandoning it, but then kept it up and did it again the following week. I wouldn’t say computer-free Sundays have changed my life or been very useful in any way, but I’ll keep it in for now.

Inbox Zero: Emptying my inbox every time I log in has become a total habit by now. It’s hard for me to imagine anything else or even to remember the days when I checked my email dozens of times. Very useful.

Schedule Emailing: Same as above. This is one of the most powerful productivity hacks for most of us in the 21st century.

How I Spent my Time 

I kept a log of how I spent my time. During the first two weeks I did the following:

  • Reviewed Django and worked through some of the Djangobook and tutorials in the Django docs.
  • Spent a few hours practicing using the command line and vim.
  • Built a Javascript timer which took me quite a while.
  • Integrated the timer in the Django project and spent a lot of time on getting Django’s static files to work.
  • Reviewed Django’s models and built some models related to the timer into the project and set up the Admin interface.

The first two weeks were relatively productive, even though I spent a lot of time reviewing things that I had already worked on during the summer.

In the third week, I tried to figure out how to get the timer to send and update the django models. This turned out to be much more complicated than I thought. To do it the way I wanted to I needed to use AJAX, which is something that I wasn’t familiar with before. I ended up gravitating between learning more about AJAX and the DOM and thinking of doing an adapted version using a regular form. In the end, I didn’t manage to do either one.

In the end the third week didn’t turn out to be very productive. Partially, this was also because I knew I only had a few more days on it before I would take a break and somehow this worsened my motivation and focus.

Skills and Learning

How much did I learn in these weeks? What contributed to my learning the most? Overall, I think my learning remained somewhat below my expectations. Most of the things I worked on I had learned before and at the end of the summer as I was working on much more advanced things that on what I doctored around with in the last weeks.

One thing that I did find quite useful was using the spaced repetition software Anki. This helped me solidify some of the things I learned and I have been using it every day, particularly when on the London tube (which means a lot!) Thanks to Nick Winter for making me aware of this in his excellent book.

Apart from that, I’m a bit at a loss as to what was particularly helpful. Clearly, reading a lot without actually writing code or executing the examples yourself is not very helpful but I knew that before. This leads us to the next point…

Optimizing the Learning Process

My second big goal with this project is to become a better learner and refine a process to learn new skills very fast. After reading the first part of Tim Ferriss’ new book The 4-Hour Chef, I did a lot of research into this question and tried to apply some of the principles he discusses to programming. I researched what makes a great programmer? I tried to figure out how one could break down those skills in order to learn them faster.

By and large this research led nowhere. There is a lot of information on the subject out there but the opinions diverge hugely and if there is any sort of consensus it is that it just takes a long time and there is nothing you can do about it. Peter Norvig’s ‘Teach Yourself Programming in Ten Years’ may be most representative of that view. I also couldn’t find any useful systems or protocols that people had set up that helped them to learn to learn programming very fast.

Going forward, I’m not quite sure what adjustments to make to optimize my learning process. I’m taking Coders at Work by Peter Seibel with me when traveling. It is a massive tome of in-depth interviews with great programmers. Perhaps I’ll find some inspiration there. Otherwise, I might look into some specific learning techniques in January and how I could apply them to my project.

The Months Ahead

Overall, it was a successful first month and I’m looking forward to continuing the project next year.

  • Chelz

    What happened??

Previous post:

Next post: