My Python Resolutions
Week 1: A New Hope
To begin at the beginning… I am a big proponent of New Years Resolutions. After all, January 1 is as good a time as any to hit the reset button. In the weeks leading up to that date, I’m usually evaluating things I’ve done over the past year and what went so disastrously wrong. That’s a little harsh sounding, I know, but it’s a good chance to think about how I’d like to take a new approach to accomplish more.
I do this with a lot of aspects of my life. Resolutions can range from personal ones like keeping in touch with friends more often or changing the way I eat, to career resolutions like getting a new job or networking more. In other words, I’m like most Americans. But I like to make a big long list of requirements and set some parameters to see what I can accomplish. Sounds like something a web developer would do, right?
When it comes to coding, I’ve made a few resolutions that I intend to stick by:
- Code every day, even if it’s just a little
- Finish the problems on the Exercism.io Python Track, doing one a week until mid-March
- Begin a personal side project in the first three months
- Push a commit to one open source project by midyear
- Blog at least once a week
- Attend one networking event a month
- Read a book a month
Each of these goals has value to me. For instance, there are a lot of online learning tracks, but I’ve chosen Exercism because it provides real mentor feedback, which I think is more enriching than just plugging in solutions. So it’s worth the time and effort.
And this time, there are a few guidelines I’m baking into the game plan to make sure I get these things accomplished:
It’s important to me to put a time limit on each of my goals. This way I can check back in periodically throughout the year and gauge my progress. If you can measure it, you can manage it. Also, a little planning and forethought about timelines helps me avoid spending the whole year languishing on one thing when it is practical to accomplish more.
2. Check Ins
On April 1 or thereabouts I can sit down and assess how the first few months went, what went wrong and how I’d like to readjust and set new goals for the rest of the year (or, more likely, the next three months). This is a new tactic for me, because I’ve found that I lose steam after a few months and then tend to flail back and forth between accomplishing my original goals and other new stuff. Basically, I get distracted. Plus, goals change over time, as anyone who has attempted to cloth, feed, and toilet a pre-schooler in the morning knows.
I also, to be honest, have some doubts about the feasibility of some of these goals. Some of these were just arbitrary goalposts (read a book a month, blog once a week) to get me motivated… After all, who wouldn’t love to finish out the year having read 12 books and written 52 blog posts? But is that really feasible for someone in my stage of life while maintaining a reasonable blood pressure level? Maybe, maybe not. Only one way to find out!
That last resolution about a book a month might have to be adjusted though, unless I can find audio versions of some of the books on my list, because I currently have a long commute at my job. Anyway, I’ve left room in my plan to account for that adjustment and am trying to treat that not as a failure but as a learning experience. Which leads me to my next point…
3. Built-In Flexibility
Like the best programs, I’m trying to build flexibility into the game plan to make sure I can adapt to a changing environment.
As a rule, I’m not inflexible with my goals. At least, if I take a little time to stop and reflect on them first. After the first quarter I might decide to drop a goal, or have gained new insights (based on my reading and networking) into what is actually important and need to change tacks. For example, I haven’t committed to everything up front. The personal side project is something I’m still mulling. I haven’t quite found anything super inspiring and I know I still have a lot to consider before committing to that choice. Also, what project I choose will determine the scope and timeline needed. So this is one goal where I will need to fill in the details a little later. So why add it to the list if it’s not a real goal yet? Why does anyone add anything to a list? So I don’t forget, of course! (Another acceptable answer: so it can be parsed)
4. Make It Public
Hopefully making these resolutions public in this way by publishing them on my blog helps me stay accountable. This will also be a place where I can check back in and reassess.
5. Making Connections
These are my programming goals, but another personal goal is to make some connections and build relationships in the tech community here in New England. Hard to put a metric on that without sounding like a weirdo (*robot voice* “must make 3.6 friends in first 9.8 weeks of year beep boop”) but building relationships is a great way of staying accountable and getting more plugged into what’s going on in the industry and the latest tools everyone is using. There are plenty of resources online for this too, but I’m reading a book a month, dammit, I need a break! Added bonus: it’s good to chat about methods and functions with someone who actually understands what you’re talking about.
And guess what — when it comes to New Years Resolutions, the fun has already begun!
I’ve already had to push myself to accomplish my exercism.io goal of solving one problem a week… this Saturday night I spent a lot of time on a Twelve Days of Christmas problem, working and reworking the code to get it to pass all the tests. Here’s something that I bet a lot of programmers have come up against: There were 15 units in the test suite. I had solved 12. When I went to solve the last three, three tests I had previously passed became errors again… it was like playing wack-a-mole on the command line. And it was pretty painful!
But it had me thinking that I need to approach problems in a more thoughtful and deliberate way.
So, above, I’ve listed resolutions on what I’d like to do, but there’s still room for resolutions on how I’d like to do it. This includes:
- Focusing on slowing down
- Spending more time on pen and paper before jumping right in to a problem and getting lost in the weeds
- Letting things digest/ruminating on them before getting too frustrated
Clearly a lot of resoluteness going on here. But that’s Week 1 for you. Can I actually accomplish these things? Only time (and a lot of work) will tell. None of this is achieved overnight obviously, but reader, you can expect regular progress reports, whether you want them or not :)