by JS

(Not quite) 100 Days of Code — A Postmortem

Mbw-eZZUyooF9FoUlgvs6BYKxsNTq9AIHHjY
image credit — Eric Rothermel

At the end of last year, I wrote about my experience coding and making daily commits to GitHub for 30 consecutive days. I also pledged to keep the streak going for as long as I could. I am happy to report that I made it through 90 straight days! It was an incredible experience, and I learned a ton.

The following is an overview of the projects I completed and some lessons I learned along the way. I hope it motivates some of you to make your own daily commitment to code.

Completed freeCodeCamp’s Front-End Certification

I had worked on the more basic freeCodeCamp material ages ago. I still had to complete eight intermediate and advanced front-end projects and a series of small coding challenges before I could claim my certification.

The projects covered a wide variety of topics and proved quite challenging at times. I used an API to display the local weather, and for another I built a working clone of the children’s game Simon. The combination of good resources and the patience of some more experienced friends helped me finish them to earn my certification.

These projects taught me how to organize and write clean code. I honed my JavaScript skills and learned how the language differs from other more classically object-oriented languages such as Ruby and Python.

A few weeks after I earned my certification, I went back and refactored some of the initial projects. I applied the DRY principle and included some functional programming concepts I had subsequently learned. It was great fun trying to eliminate all of the for loops in my code.

Wrote a widely-shared (for me, anyway) article about learning JavaScript

After finishing my first blog, which freeCodeCamp was kind enough to publish on its Medium page, I had the itch to write something else.

Because it can be so hard to figure out which learning resources are actually worthwhile, I decided to put together a study plan for beginners looking to learn JavaScript based on what I had found useful. The article was again published by freeCodeCamp and currently has over 15 thousand views and 700 recommends.

Not exactly ‘viral,’ sure, but for someone who had never done any public writing as recently as six months ago, it was exhilarating to see my article resonate with a bunch of people.

Learned React

In addition to completing the freeCodeCamp Front-End Certification, I also began learning React. Thanks to a few great tutorials (shout out to the excellent Wes Bos course, React for Beginners), I was able to finish a few React projects. These included a live-searchable recipe repository. I also became comfortable using the create-react-app CLI tool to scaffold React applications.

Broke my streak on Day 91

With progress so great, why did I stop? The path I paved for myself had slowed down. I felt intimidated by some of the upcoming projects on freeCodeCamp, so I shifted my efforts to learning D3.js, a data-visualization library. At the time, it proved to be a bit too impenetrable for me despite multiple attempts to grasp it.

Also, I didn’t have a compelling personal project to work on, and needed a break from the grind of working full-time and coding at night for multiple hours.

The most important thing I learned about keeping a streak like this going is to always know what to work on tomorrow. When you sit down at your computer, you should already have a clear idea of what you’re going to do. If you make that decision ahead of time, it removes a barrier to getting started.

Take a moment before you decide to stop coding for the day and make sure you have something concrete to do tomorrow. I stuck to this plan for the vast majority of my streak and it was a major factor in my success. It was only when I stopped planning ahead that I eventually missed a day.

A completely worthwhile experience

At the beginning of my not-quite #100DaysOfCode, I had some familiarity with the Ruby on Rails ecosystem and HTML/CSS with only a few hours of JavaScript under my belt.

Three months later, I gained a good, foundational knowledge of JavaScript, learned React, got a bunch of cool projects in my GitHub portfolio, and had two articles published on freeCodeCamp’s Medium page. I am a far better developer today than I was when I started this daily coding experiment a few months ago.

Next steps

Having taken a pretty substantial break, I want to continue working on React projects, dip my toes into some backend JavaScript, and learn more about algorithms and data structures. I also hope to keep writing.

If you enjoyed this article and want to continue the discussion, come find me on Twitter.