I Just Completed a 365-Day Coding Streak. Here’s What I Learned

Cam coding

Throughout history, we have examples of large cultural subsets practicing “streaks” as a means of self-improving and enrichments. Over the last year, I completed a 365-day commit streak on Github. I dedicated myself to exploring and contributing to open-source projects that help to better my understanding of coding.

I documented my dedication by writing a blog that accounts for this year-long effort. In my blog I discuss some pain points while also showcasing some real accomplishments, it’s quite an adventure. Here’s some things that I learned along the way:

Personal Sites Are the Best Gateway Drugs

I started this streak to accomplish a main goal: to develop a personal brand with technology. The way that I had to do that was to revamp my personal site, tweak my resume, and find a way to do that on a budget with little time outside of work. It took me about a week to edit all those materials and put up something that was worth it here. But once I completed this, I started to look at all my old personal projects and repositories and saw changes that could be made to make them better. Editing my personal site was the catalyst that got me started on to this path.

Always Be Learning

When I finished my first week of coding with my completed personal site, I asked myself, “oh no, what do I do now?” The answer was simple, keep learning. I started doing tutorials on languages that I was using at work to brush up on concepts and see what tools were out there. Later on after I completed those tutorials, I would do tutorials for other languages that interested me. Over all I believe I completed tutorials in at least 8 different computer languages, using 5 different IDE, 3 different frameworks, and even an arduino class. I used TheNewBoston for most of my tutorials. Bucky Roberts, the master behind this site, is an awesome teacher. I highly recommend his videos as a way to get into programming.

Progress MUST Be Trackable

I used the Github calendar tool to track my progress and hold me accountable for my work. Having that tool available to me allowed me to be transparent with what I have completed as well as counted my commits. For anyone who has used Github for a while, you might know that Github recently adjusted their features on their user pages. When I started this streak they had a feature that counted each user’s “current streak”. About three months ago they removed that functionality which left me with just the calendar functionality. I was sad to see it go, but the trackable tool was still intact. The current streak function looked like this:

cam coding streak

Have a Mentor

I think this is where I failed the most. Since I moved around a lot during this period in my life, I did not maintain a steady mentor relationship throughout the streak. Having a mentor adds accountability and assists in coding. There were so many coding brick walls I hit trying to complete this streak, and it would have been nice to have one senior level engineer to go to for answers. Although, I have to give mad props to my network of Galvanize Alumni grads. In our class slack channel, I would post up problems that I would encounter and they were always eager to help me out.

Learn by Copycatting

My main copycat was creating a flashcard app. I took a flashcard app from github but modified it to do what I wanted. I added an import/export button which made the user capable of adding a large set of cards (rather than uploading them individuals). This worked perfectly for me, because over the course of the streak, I had looked back and saw that I had a lot of tutorials under my belt, but no documentation to help me study it. With the import button I was able to upload a whole bunch language decks that I use to study the stuff I learned.

Stop Waiting, Just Put Pen to Paper and Start Doing It

My main suggestion for people who are reading this is to just freakin’ start doing it. All it takes is a little hard work and dedication to put pen to paper.

A Few Useful Tools:

My personal site is a bootstrap template. I’m not going to lie, I did not want to build my CSS and HTML out from scratch. Bootstrap provided an amazing template. I suggest that all junior and intermediate coders use template like these to build out their sites. I also used HTML5up.

Github pages is a free hosting site—for more information look here—and free is good! The URL will be altered to read “www.{repoName}.github.io”. It can be a great substitute for people who can’t afford their own personal URL domain name. It acts as a good hosting page (bear in mind, it’s just for a single page app) for when you are just starting off with your personal site.

Heroku offers 5 free deployments – After signing up with Heroku, you are able to use five different deployment urls that you get to name yourself. Heroku is an amazing tool that I have been using for the last several years now. Apps deployed on Heroku look like true-story.herokuapp.com. Also if you purchase a domain name, you can upload that and mask the herokuapp extension on the url to whatever you choose. In the end though, Heroku is my favorite because of it’s easy to use their logs and support. Anytime you have a deployed app on Heroku and it’s not working, you can run Heroku logs —tail. Not only are the stack traces exposed but any errors of issue melding with your app are reported with easy fixes.

Name.com offers low low costs for domain names—I got all my domains (3) bought for 19.99 for the year. A great deal right? I just tweeted them and asked for their beginner package for someone just starting off. Name.com also partners with Galvanize to organize a hackathon called “Hack the Dot” where they give away a lot of free prizes (loads of free domain names) for anyone who participates or wins. Find out when those occur in your area.

galvanize_logomark_text_4c

Level Up