#100DaysOfCode: My Challenge to Become a Developer

I tried the #100DaysOfCode challenge before, but stopped at day 54.  I was getting the coding done, but wasn’t learning very much – which was the whole point of doing the challenge.  This time around I’m doing things a little different.  I’m focusing more on learning development (especially JavaScript) than what challenges I’m getting done.  I’d much rather spend a week on a single challenge if I understand it when I’m done.

My Why

The whole reason for doing the #100DaysOfCode challenge is to learn.  Although I got off to a slow start, my goal this year is to learn the basics of JavaScript.  I’ve already made a lot of progress, but I also have a long way to go. I love coding, but when it comes down to it, it’s still just a hobby for me. For this reason, it’s harder for me to fit it into my schedule than some other things.  Doing the challenge will help me set priorities and cut back on unnecessary things.

I taught myself HTML and CSS in the mid-late 1990’s when we got our first computer. There was still a printed directory of websites at that time (think phone book for the Internet).  I’ve made various websites off and on since then, including plenty of dabbling in code/customization. Now it’s time to really dig in.

My Rules

You can view the official rules on #100DaysOfCode.com.  I’ll be following the main rules for the challenge, but adding to them.  More specifically, for the next 100 days I will:

  • Code a minimum of one hour every day.
    • If I don’t reach a full hour of code, that day will not count.  An extra day will be added on to the end of the challenge.
  • Tweet my progress every day using the #100DaysOfCode hashtag.
  • Encourage and support at least two people each day in the #100DaysOfCode challenge on Twitter.
  • Push my work to GitHub, when applicable.
  • Log my progress on GitHub, to include projects completed.
    • This is one place I am making a change from last time.  My log will be for the previous day’s work.  For example, I will be logging my day 1 accomplishments on the morning of day 2.

      This is going to help me be more consistent in updating the log.  I only missed two days of coding during the entire month of May, but only logged about half that.  I’m a morning person and wake up several hours before work.  That’s when I do most of my coding. 

      The last time I tried this, I didn’t want to do my log that early in the morning in case I worked on it any more during the day.  My evenings are generally reserved for family time.  That means when the evenings came around and we were doing something, the log was not a priority. Finishing the log the following morning works better with my schedule.
    • I’ll also be doing the condensed version of the log instead of the normal one.  I want to keep track of what I’m doing, but I don’t want to spend a lot of time on that.  The more time I spend on the log, the less time I spend coding.

My Plan

I’m a big fans of lists.  I find it’s helpful to plan out what I intend to do for the challenge. This will help me stay focused on what I want to do and learn. Creating this list at the beginning will prevent me from wasting time thinking about what comes next.

Goals

  • Complete freeCodeCamp’s Responsive Web Design Certification and start working on JavaScript Algorithms and Data Structures Certification.
    • I had worked my way through quite a bit of the JavaScript Algorithms and Data Structures while these were still beta versions. The certifications are no longer beta and I’m going to go ahead and do them again in the official curriculum.
    • Each certificate calls for 300 hours of time, but there will be a lot of review for me. I don’t expect the first part to take anywhere near that.
    • My freeCodeCamp profile: geoffreyshilling
  • Learn JavaScript.
    • This is a more general foundation.  I’m pretty good at figuring things out using reference material.  I want to continue improving my knowledge so I need to look up fewer and fewer things.
  • Learn Gutenberg.
  • Gutenberg is replacing the WordPress editor. The larger goal is to expand that to entire websites. I’ve been using Gutenberg for months on my sites and I love it.  I want to learn more about developing for it.

Projects

There are a number of projects I want to work on during this challenge.  Although I likely won’t complete them all, this will give me plenty to work on over the next 100 days.

freeCodeCamp

  • I plan to spend at least five hours a week working on freeCodeCamp’s  challenges.

WordPress Plugins

The plugins I want to work on include:

  • Mug Monday. 
    URL:  https://geoffreyshilling.com/plugins/mug-monday/
    A Gutenberg-compatible custom post type so I can share a picture of a different coffee mug each week.  Note:  I have made good progress on this plugin already. 
  • PRT Tracker. 
    URL:  https://geoffreyshilling.com/plugins/prt-tracker/
    A practical way for me to track my fitness workouts in order to improve my Physical Readiness Test (PRT) score in the Navy Reserve.  Workouts will include running, push-ups and curl-ups.
  • Coffee Tracker.  A fun way for me to track how much coffee I drink.  It will let me enter how much coffee, the brand, location, roast, and more.  Reports will be added so it will show my most popular coffee, total coffee for the year, average coffee per hour, and more.

My Notes

  • My #100DaysOfCode starts today, June 11, 2018 – also known as King Kamehameha Day.
  • I will miss some days.  I don’t want to, but it’ll happen.  As much as I love coding, it’s still a hobby.  My other priorities that come first include family, being a volunteer firefighter and our department’s treasurer, and the Navy Reserve.  Sometimes all of these converge at once and there is no time left.
  • The focus is on learning, not seeing how much I can get done.
    • The goal is to still make as much progress as I can, but I’m not going to move on until I understand what I’m doing.  If it takes me a week to understand something, that’s how long I’ll spend on it before I move on.
  • I intend to keep track of “lessons learned,” as far as what worked for me, what didn’t, any issues I ran into, or recommendations I have.

Join Me?

Are you already participating in the #100DaysOfCode challenge or want to get started?  I’d love for you to leave a comment or find me on Twitter and let me know what you’re working on!  Best of luck to all of us!

Other Resources:

Leave a Reply