How to Learn New Programming Skills | The Daily Commit Challenge
Authors write a novel one word at a time, during what many of them refer to as “butt-in-the-chair” time. They know that having a daily routine of sitting down to do nothing but writing is how books get written.
Hemingway’s daily WC (word count) was 500. Michael Crichton’s was 10,000. One of my favorite authors, Stephen King, averages 2,000.
Likewise, new language learners know that the best way to become fluent (or at least proficient) is to spend time with the language every day: not weekends-only or even several hours in class, three days a week. It’s a little every day.
Do you know anyone who is consistently happy with their weight by extreme dieting? Probably not. Because the best way to stay healthy is by developing lifestyle habits that are sustainable over time.
Ok, you get the point. But what does this have to do with programming?
If you find yourself in a position where you’re comfortably coding away in the same languages and systems you’ve been using for years, it’s time for you to take the Daily Commit Challenge.
The Daily Commit Challenge
You might already be making a daily commit–maybe several–in the context of work. But programming–like anything in life–can sometimes find you stuck in a behavioral rut, when you depend on solving a certain type of problem in a certain type of way. You don’t learn anything new, even if a new technology or method would be more effective.
If you want to increase your marketability, breadth, and depth as a programmer, you need to find a side project that requires you to learn a new coding language, develop in a new framework, or build a new tool.
Start by asking yourself, What do I want to learn?
Do you want to learn a new language? Maybe look at some of the most in-demand programming languages in 2018.
What about a new JS framework? Here are my top three picks:
Now ask yourself, What kind of project would be interesting, challenging, and worthwhile?
Here are some examples:
- Program in a mobile environment to build an app that tracks how much water you drink every day
- Learn how to build a home stereo system (like Sonos) using Python
- Develop a workout tracking tool in React that lets you program your own keyboard shortcuts for the most common tasks.
Finally, give yourself a goal.
Once you’ve settled on a side project, give yourself the goal to make a daily commit for 66 days on a version control system, like Git, Subversion, or Mercurial.
Why 66 days? Like successfully writing a novel, learning a new language, or staying in shape, you need to be touching the project every day. Not making a commitment to commit once a day means that the longer you break from the side project, the harder it will be to pick it back up again.
It’ll be easy to make the commits each day when you first begin and feel excited about the new project. It’ll be more difficult when you lose some motivation or inspiration or a new, shiny project idea comes around. But if you want to become fluent in a new language or framework, you must remain loyal to the daily commit, even when you’re not feeling it.
Although many of us have heard that it takes around 21 days to develop a habit, Jeremy Dean, author of Making Habit, Breaking Habits: Why We Do Things, Why We Don’t, and How to Make Any Change Stick, looks at empirical evidence that shows us it take an average of 66 days to develop robust habits like making a daily commit. (Eating a donut with coffee is a habit that develops more quickly, as it turns out.)
Make it easy for yourself by defaulting to the 66-day rule (rather than overthinking a magic number that works for you) and make those daily commits. After a little more than two months, not only will you have developed professionally, you will have completed a project, made life more interesting, and be ready to take on a new challenge!