Around late November, 2015, I made the somewhat arbitrary decision to commit something to Github every day. Iāve stuck with that habit for ~100 days now, which I think merits a bit of reflection as to how itās affected my workflow and coding habits.
What were my goals?
I decided to go on a ācode everydayā regimen to increase the quantity of code I write, and the diversity of my projects. Before this, I had a cycle of feeling the desire to work on a project, or get something really substantive down in code, but then not having an in-progress project to contribute to. Starting is very often the hardest part, and without having a lot of ākettles in the fireā, I found it difficult to produce something tangible in half an hour. Iād spend that 30 minutes of coding time I could cut out of my day researching APIs or Frameworks, instead of actually creating something. To be fair, thatās not always wasted time. But, it was discouraging to go a week or two without feeling a sense of progression in at least one of my projects. I hoped that by doing somethingāāāeven an insignificant additionāāāwould lower the bar to āgetting stuff doneā and would allow me to branch out a bit more in terms of the types of projects I was working on. Many of my pre-November projects were mostly scripts, which reflected where I was as a programmer. Competent enough to write one-time procedurals, but still uncomfortable with establishing a more robust project.
Was this successful?
Well, like many things, yes and no. It was successful in getting me to think about a coding project at least once a day, which was really powerful. Though I wasnāt spending all that much more time coding, I was allocating my time more evenly across my week which lowered the amount of time I had to take to ārelearnā my previous code. It also allowed me to feel comfortable diversifying the types of coding I was doing. In December, I did the āAdvent of Codeā, which was a light-hearted daily coding āchallengeā. I also did a bunch of Project Euler problems, which strengthened my ability to think algorithmically, instead of always being focused on an end-product. However, I often struggled to think of something small enough in scope, yet substantive to be done in a solid ~30 minute chunk. So, some days my commits were fairly lackluster. Changing the formatting of my website, or making syntactic edits shouldnāt count, and I wasnāt really strict enough with myself to refrain from cheating a bit here or there. What I was most happy about over this time period was the OSX applet I made, TubeSync. It was a great project because it mapped a lot of the interest that I had in Python scripting to a usable desktop app. Also, it was the first project in several years that Iāve actually slapped a version number on and released as a binary for whomever wants to use it, which was gratifying.
Looking Forward
For the time being, Iām going to try to maintain the habit of doing something coding-related everyday. I think Iām also going to try to branch into contributing to open-source projects as a way to further diversify what Iām working on. Just in the past week, Iāve opened issues and pull-requests in a few open-source projects, and one has already even been merged. I think Iāve reached a technical proficiency where I feel personally comfortable working on small-ish FOSS projects without being too intimidated, and itās gratifying to feel like your ability is being put towards a public good. So anyways, Iād say that the āCode Everydayā regimen has been a net positive. Itās been a fairly productive and fun 100 days!