It’s that time of year again. The time when some people are taking a long hard look at their lives and trying to decide what they want to change about themselves over the course of the next year. Some of us want to lose weight, or exercise more, or spend more time with our kids. The trouble is only about 9% of these resolutions actually happen.
In 2017, I was part of that 9%. Until this past year, I never really made New Year’s resolutions. Occasionally I’d joke about something, like “This year I resolve to become a billionaire!”. Of course those never happened. This year was different because I picked something I knew I could do. Something I would do daily so I never had an excuse to put it off until tomorrow. Something doable.
I’ve learned that’s the secret to succeeding with your Resolution. It needs to be something you can do daily, and something you can easily measure your success in. Otherwise, you’re going to resolve to lose 50lbs by 2019, and on December 19th at 11:23PM you’re going to realize that you’ve actually gained weight over the course of the year, and you now have 11 days and 37 minutes to lose 72lbs.
That brings us to today.
This year I want to learn Python. That’s my Resolution for 2018. So, how do I go about doing this? I’ve tried to do this before and I’ve gotten a little ways into it and I always lose focus. There are two reasons for this.
1. Book learning a language is not the same as use learning a language. I’ve taken Python classes and I’ve read articles and books, some of them very good and informative. But I never used the language for anything so right now I couldn’t Python my way out of a wet paper bag.
2. There’s no real regular accountability for just learning a language.
If I’m going to be successful this year with my resolution, I need your help.
Here’s my idea: I need 12 projects. All of them relatively simple. Something that could be completed with a couple hours a week of coding over the course of a month. It needs to be more complex than Hello World, but not like rewriting the Linux kernel from the ground up. I’ll take one project per month and learn what I need to learn to complete that project. Once I’m done with that project, I’ll post the code for any and all to critique out on GitHub.
I’m hoping by keeping the projects relatively short and by making myself publicly accountable for results on these projects, I’ll be able to be as successful in 2018 as I was in 2017. Beyond that, I hope that the effort I put in will be useful to the community at large. Believe me, that last part is the stretch goal.