Commit Every Day, Blog Every Week

It is with the greatest of pride that I am announcing today my newest initiative. I am going to write at least one blog post every week for the next 52 weeks, and I am going to make at least one commit every day- preferably to Github, and most likely on my own personal projects, but bonus points would be given for committing to community projects. This effort is more than a little inspired by Jennifer Dewalt’s impressive 180 websites in 180 days project.

Why Blog?

Far too long I’ve toiled away in silence when I could be putting my thoughts, experiences, and gleanings out on the web for all to share. Many times I’ve felt the elation of working through a challenging programming issue and having no one to share my triumph with. With blogging, I hope to alleviate that pain and become a more active member of the business and hacker communities. I love writing. Grammar, punctuation, and vocabulary have always come fairly naturally to me as an avid reader.

It’s a well noted phenomenon, too, that teaching something to other people will help you get better at it. This is also something that I hope will benefit me if I force myself to blog regularly. For instance, lately I’ve been doing a lot of coding questions and brushing up on my Java/C/C++ (I learned them long ago, then got embarassingly out of practice) and I hope to solidify some of the core concepts by writing about them.

Also, I’d be geeked to get featured on Hacker News, even if only a few people saw and they were their typical critical selves about it :D

Why Commit?

I love open source and everything about it. I’ve learned so much from reading the source code to things like gorp and the Golang libraries that I feel compelled to give back in some way. At first I will start small with my own projects, but soon I intend to veer into other open source projects as a way of sharpening my coding chops and paying it forward to the community that, in many ways, made me who I am today. One learns the hard way how frustrating it is when you can’t fork, modify, or browse the source code of the software that you are using or the website you are accessing. Working in the proprietary world makes that very clear.

Linux, for instance, is a project for which I have the utmost respect, and the awesomeness of it continues to blow my mind to this day. The ideals and spirit it embodies are something that I can really get behind, and the “Bazaar” nature of the operating system makes for a foundation that leads to a development environment that’s unparalleled (not to mention performs great on a server). I defy any contenders to make an honest argument in favor of homebrew over apt-get, for instance. Don’t get me wrong- I love homebrew (also notably open source!)- but it’s clear that Linux package management is on a whole ‘nother playing field, and that starts from the ground up. That can only be explained by the community and attitudes that insist “If you’re not satisfied, fork it yourself”.

Last but not least, seeing my Github commit-tile graph lack so much green (although I know I am committing to closed source software at my day job) makes me kind of sad.

Why Do Them With Such Fierce Regularity?

Everyone by now is most likely aware (if you’re not, you’re about to be) of the Jerry Seinfeld Self-Improvement Program. Essentially, it is a self-improvement technique attributed to Jerry Seinfeld where you pick a goal and make small steps every day towards meeting that goal. Jerry Seinfeld wanted to become a better comedian, so he made it a goal to come up with a good joke every day and and marked the day off on his calender with a big black “X”. The chain of “X"es served to reinforce his sense of making progress, and also as a commitment to continue forward in spite of the possibility (or reality) of failure and disappointment. I find that kind of tenacity extremely admirable, and I think it will help me hone various skills in a variety of ways.

Thanks for tuning in and I’ll catch you next week, where I promise there will be much more code involved.

I want to help you become an elite engineer. Subscribe to follow my work with containers, observability, and languages like Go, Rust, and Python on Gumroad.

If you find a mistake or issue in this article, please fix it and submit a pull request on Github (must be signed in to your GitHub account).

I offer a bounty of one coffee, beer, or tea for each pull request that gets merged in. :) Make sure to cc @nathanleclaire in the PR.