100 Days of Code

I like learning. It’s one of the reasons I stayed in tertiary education; I’m essentially a professional learner. One of my great joys of the last few years has been learning programming. But after being so busy with teaching since July 2016, I feel like it’s time to spend some time deliberately practicing and learning programming again.

There is something deeply satisfying about solving a problem or completing a task programatically. I love writing scripts to make things easier to do. While I can’t claim to be an expert in any sense of the word for either `R` or `Python`, the two programming languages I have used most, I know how to get around. What I realise I am lacking, however, is a deeper fluency. I know where to go to learn things, but I haven’t yet absorbed the knowledge so that programmatic choices are second nature.

Recently I stubmled across the 100 Days of Code challenge. Having done my own running version over the summer I could see the value right away. Essentially, you commit to spending 1hr a day writing code, and as a result coding choices (syntax, function names, etc.) should become more second nature. But what makes the challenge for me is that it’s turned into a bit of a social movement. Two of the three rules for the challenge are about sharing the experience with others by tweeting about it and by reaching out to others doing the challenge. Being a fan of socially-connected learning, this sounds pretty cool, to me.

The projects I have in mind for my 100 days are:

  1. A function to take FOR Code data from grant applications, intitutional metadata appended to publications, etc. and make network graphs to connect them across similar instances. For example, a network of FOR codes for articles published by Western Sydney University staff in 2017.
  2. A function to email a list of people with a combination of unique and identical attachments. `Mail Merge` in Outlook can’t do this - it can only do the same attachments for everyone. I’ve already got an ugly, hacky version of this, but a) it’s not a function, just some script at the moment, and b) why not?
  3. General statistical thinking - I’ll work through Roger Peng’s Exploratory Data Analysis and Hadley Wickham’s R for Data Science books.
  4. I also want to skill up in Git and Shell, so I’ll be looking into some courses for those.

That should be plenty for 100 days. I’ll tweet as I go, as per the rules, and probably report back here and on Github for anything I create.

—Alex Norman
Gadigal Land
27 May, 2019