The green little squares. They make it fun to work. They give you e-karma that is actually pretty useful in real life. I’m talking about the Github contribution graph, of course. I have 844 of them. And that’s as many as I’ll ever get. I’ll tell you why, if you keep reading.

How it started

Rewind to the summer of 2013. I had just finished my freshmen year at the UW. I was still not in the Computer Science department and had failed to get an internship. It was frustrating. Two years later, I wish someone had given me sound advice back then.

Anyways, I went back home to Delhi, India. Over the summer, my only goal was to learn something that makes me skillful. That was the pivot point in my life.

I set a simple goal: I’ll do at least one problem in Python every day for 30 days. Why this goal? Because it let me kill three birds with one stone - I learned how to solve problems, I learned Python, and I learned Git. Bam, bam, bam!

Those 30 days went by quickly, and I reached my goal. But something strange happened. After a couple weeks into the goal, I forgot I had set the goal. The one-commit-per-day thing just became a part of my lifestyle; I would wake up, clean up, check mail, and code for some time. It felt natural. And so, those 30 days, quickly turned into 300, then 500 and today, 844.

Why I continued

Not a lot of people code every single day for years. I got asked a lot, how I could do it and why. I answered the “how” here. Let’s me tell you the why now.

Having a constraint is really powerful. Because I had to make at least one meaningful commit everyday, I had to think of new project ideas and I had to learn new skills. The cost was time. But I was ok with it, skill-building requires an investment, but the ROI is high.

I learned how to make steady progress on my projects. Rather than crunching low-quality code overnight, I was motivated to make sound, rational decisions about my design and architecture. I could take some time to work on feature requests, rather than simply abandoning the project, because I would get another green square.

I found that I was engaged with the open source community as well. Because opening issues on Github counts as a contribution, I was always on the look for ways to make other projects better.

In short, I got to:

  • learn a lot
  • build a lot of skills (technical and non-technical)
  • build a brand
  • meet a lot of people

Why I won’t continue

So, yeah, life was good. Learning, people, and what not. Then why the hell would I not continue?

1. ROI

Initially, the value I was getting for the investment was getting higher. But then came a cliff. I am not sure why. I am not sure when. But I found that for the amount of work I was putting in to keep my streak alive, I was not getting a proportional amount of value back. The best way I can describe it is in the next section.

2. Learning

The one-commit-per-day goal makes learning hard after some time. For the first few hundred days, I was hungry to learn the basics. How to make a website. How do I make a server. How do I do X in Python. How about in Javascript? How about in Dart.

Somewhere along the line, this became too redundant, and my focus shifted to things that require more than a day to learn. Machine learning, complex frameworks, server management to name a few. Sure you can make incremental commits, but that’s what not my goal anymore. Which bring me to my next point…

3. Goals changed

Now my goals in life are not just to learn new things, but also to apply them to bigger projects. I still make smaller projects, but in the background, I’m working on bigger projects that take on the order of months to complete. They are all private and I don’t plan on open sourcing them. Maybe I’ll convert a subset of them to a business. Maybe not. Now I’m just rambling. Please excuse me.

Pause for 20 seconds.

Ok I think I’m fine now. Let’s continue.

5. Anxiety

You know when you start from zero, and go to a 100, it’s hard to imagine going back to zero. That’s why social gamification is such a powerful motivator.

However, for the last few hundred days, I had been looking for ways to acquire a new green square. I was thinking less about the quality of my contributions, or ways to monetize my projects but getting streak++. It created stress and anxiety. Not severe, but more than what I want.

So, today!

If you have not guessed by the title of the post, or the last 800 words, I’m ending my streak today. Continuing it now will be unfair to my original intent of starting the streak. I have to be true to myself.

I will still contribute to open source, to work on projects, to help the community, but not worry about the green squares.

If you are new to software or open source, I recommend you set a goal and get to work. It will teach you a lot of skills that nothing else can - being consistent, building or breaking a habit. But also, take a breath every so often.

Cover photo: Flickr

Have feedback? Questions? Answers? I tweet a lot. Let’s have a conversation there.