by E. Wilson

What I learned from #100DaysOfCode

p1f8ZCcKVRb-A4Z-8eEpV2IsTf-9jedNvACA

I made it up to Day 95 before officially ending my #100DaysOfCode challenge. Check out my GitHub repo and see for yourself.

With all this coding, I haven’t been able to keep up with my daily blogging schedule, but I did share notes about what I worked on for each day via the #100DaysOfCode page on my programming blog.

So this is my wrap up post on this challenge: what I did, what I learned, what I completed, and overall what went wrong that made me end it early.

The Pros

Overall, this challenge has been the best thing for me in holding myself accountable to learning new things outside of work. Here is what I completed since starting the challenge back in January:

Books Completed

  • “JavaScript and jQuery” by Jon Duckett
  • “You Don’t Know JS: Scope & Closures” by @Getify

Modules and Tutorials Completed

  • DevTips jQuery in 15 (test demo available)
  • JavaScript track — Codecademy (87% of this was done before the challenge, I completed the remaining portions)
  • AngularJS track — Codecademy
  • Intro to jQuery — EdX
  • Learn AngularJS for Beginners — Udemy
  • HTML5 and CSS track — Free Code Camp (I didn’t know at the time I could skip tracks, I completed this as a prerequisite for the JavaScript track)
  • Responsive Design track — Free Code Camp (ditto)
  • jQuery track — Free Code Camp
  • JavaScript basics track — Free Code Camp

MOOCs Completed

  • Responsive Web Design — 94% final grade, Coursera
  • Interactivity with JavaScript — 99% final grade, Coursera
  • Front-end Frameworks: AngularJS — 100% final grade, Coursera
  • Multiplatform Mobile App Development with Web Technologies — 100% final grade, Coursera

Projects Completed

  • Tribute Page — for Free Code Camp, built with HTML and CSS
  • Portfolio Page — for Free Code Camp, built with Bootstrap 3
  • Bootstrappin’ Portfolio — 5 page portfolio site built with Bootstrap 3
  • Personal Template — biographical landing page built with Bootstrap 4
  • Creative Template — landing page for creatives built with Bootstrap 4
  • TaskList — built with Bootstrap 3, JavaScript, and Handlebars.js
  • Animal Exhibit — built with Bootstrap 3, JavaScript, and Handlebars.js
  • BBC site clone — landing page of the BBC Tech News page, built with HTML and CSS
  • Book App — built with AngularJS (I decided to continue building this beyond a one-page SPA)
  • conFusion Restaurant App* — built with AngularJS
  • conFusion Restaurant Mobile App* — built with AngularJS, Ionic, and Cordova for Android and iOS
  • Prince Tribute quote generator — built with HTML, CSS, and JavaScript

* Due to Coursera’s honor code which I accepted as a scholarship recipient, I’m not allowed to share the complete code for these projects nor launch them as my own. They have not been added to the GitHub repo for this reason.

Languages, Libraries, and Frameworks Learned

  • Bootstrap 4 — proficient, it’s not too much different from Bootstrap 3
  • Jasmine — basics
  • jQuery — basics
  • JavaScript — intermediate
  • AngularJS — advanced
  • Meteor — basics
  • Handlebars.js — basics
  • Ionic and Cordova — advanced
  • Node.js — basics

Verified Certificates Received

  • 1 from University of London & Goldsmiths
  • 1 from University of Michigan
  • 2 from The Hong Kong University of Science and Technology

With the challenge, I finished tutorials that I had in my queue, received scholarships to complete MOOCs for web developer certificates, and contributed hundreds of lines of code on GitHub for projects I truly enjoyed developing. Unintentionally, I also became more efficient at writing code tutorials. My posts grew longer as what I was learning grew more complex.

The Cons

The biggest setback for me was when I got promoted at the organization I work for during the first 30 days of the challenge. As part of my promotion, I was put in charge of our organization’s new site launch and app. It was a great opportunity.

With the promotion came longer work days, more training outside of office hours, and more travel. I also took on two freelance gigs outside of my day job to do some design work for clients.

Working 50–60+ hours a week during February and March, plus doing course work for my web development specialization didn’t exactly make me excited to contribute code to this challenge on most days. I started skipping days, which lead to me losing track all together.

Still, I was too stubborn to quit. So, I took the biggest hit with my blogging. When I started the challenge, I blogged everyday. Once February hit, I had to group days to provide be breaks in between posts. During the last stretch, I only contributed 3–5 posts.

Blogging about what I was learning became more difficult because I had to spend time organizing material and writing in a way that makes sense for newbies, as well as advanced learners. A typical blog post for me grew to more than 500 words, with me sometimes having to create a series of posts just so I could cover a subject more thoroughly.

Once I started skipping days, this challenge that should have only taken 100 days ended up lasting over 4 months. Once May hit, I threw in the towel…for my sanity.

What I Learned About Myself

This challenge revealed a lot about my learning style and what I feel are the best ways for me to accomplish certain goals, such as:

  1. Taking courses that don’t provide any type of technical support outside of a user-generated forum (and Stack Overflow links) are not for me. Not having on-call support while working on course projects is very frustrating. This has continued to be a hurdle for me, so I have decided to hire a mentor who has experience in building MEAN stack web apps when I start my capstone project this Summer. If I have to pay for on-call, one-on-one, high-ranking expertise to help me out whenever I need it, then so be it.
  2. As I said previously in another post, books should be my primary introduction to any new language, library, or framework I pick up. I like tutorials, but they don’t really teach me much other than how to follow directions. I retain information so much better if I’m reading material.
  3. I need to become comfortable reading official documentation for any web tools I want to use. For example, I’m thankful for Cordova for providing a guide to deploy Ionic apps for iOS and Android, but I had to go over that doc way too many times than I care to admit before I could successfully get my conFusion app to launch in the emulator provided. I’m too quick to find a shortcut when I don’t feel the docs articulate enough. While this is not a problem, I’ve learned that I need to read the docs and follow the directions as written first before trying anything else.
  4. There is no future in me writing tutorials on a regular basis…at all. I appreciate the increase of readers because of this challenge, but I need to work on simplifying certain programming concepts down to 300 words or less.

In all, I feel good about wrapping up this project now. If you have enjoyed my posts thus far, please consider following Our Code on Twitter. I recently launched this account to engage more with readers. Follow me, mention this post, and I’ll be sure to follow back.

Thanks for riding with me on this challenge!

Note: This post was originally published on Our Code, a blog where I share my story of being a self-taught developer and help other coders by sharing curated online resources that I find.