Day 100: Lessons Learned from #100DaysOfCode

100 Day Challenge Reflection

November 12, 2022 marked the 100th day of my journey on the #100DaysOfCode Challenge. In this post, I look back on what I learned from the challenge and what I want to gain as I move forward to the next 100 days.

Where I've Been

I joined freeCodeCamp in Oct of 2020. I started with the Python course and really enjoyed it (though I didn't complete the certification projects ... yet). Unfortunately, some life events got in the way and I stopped studying programming in the toward the end of 2021.

At the beginning of 2022, I got back into studying programming which led me to explore data analytics. I took a detour into the topic by completing the Google Data Analytics Certificate via Coursera. I really enjoyed putting my mathematical knowledge and skills to work, but I felt something was missing. I wasn't thrilled about sitting at a desk manipulating spreadsheets and analyzing data. To be clear I love reading about the outcomes of such practices, but I wasn't enthralled with doing them myself.

I took another short break on my programming journey before starting freeCodeCamp's Responsive Web Design certification. This was a game changer for me! I was enthralled with being able to manipulate HTML/CSS code and channel my creative energy into creating something that then could be shared. For example, checkout the portfolio website I made as part of the certification. It's simple and not super flashy, but it gets the job done and it's something I made with my own two hands.

After earning my certificate for that program in July of this year, I continued my journey by starting freeCodeCamp's JavaScript certification. Shortly after starting the course I started the #100DaysOfCode Challenge on August 5 and on November 12 I completed the 100th day of that challenge.

Seventeen of those 100 days were rest days (because life gets in the way sometimes), but overall I'm really happy I started and completed this challenge. The challenge helped me get into the habit of coding, get connected with others, and build my confidence. I still have more work to do, but I feel like I've got a firmer foundation to stand on than I did six months ago.

What I Accomplished

Looking back on my 100 days of coding there have been plenty of lessons learned (both at and beyond the keyboard). The following is what I like to think of as my "Did It" list: a list of all the things I accomplished during this 100 day challenge. I keep it as a reminder of what I was able to accomplish just by dedicating a small amount of time (30-60 mins) each day.

This is especially important for someone like me who is a beginner but also as someone who is switching industries entirely. It's quite easy to feel like I don't know enough or don't have the skills to enter into a new industry (i.e., imposter syndrome), but this list is evidence that shows I do have skills and that they will continue to grow as long as I continue to put in that little bit of effort each day.

If you're a beginner coder or a career changer like me, I strongly encourage you to keep a "Did It" list too so you can remind yourself of what you've accomplished. And, if you feel like it, share your list so we can all celebrate together.

My "Did It" List

All of these projects and coursework have let me improve my understanding of various web development concepts and skills. In particular I've increased my knowledge of the following areas:

  • Basic HTML/CSS
  • Basic JavaScript
  • ES6
  • Regular Expressions
  • Debugging
  • Basic Data Structures
  • Basic Algorithm Scripting
  • Object Oriented Programming
  • Functional Programming
  • Intermediate Algorithm Scripting
  • Git & GitHub

Where I Want to go

I've got my "Did It" list, but what about my "To-Do" list. While I'm proud of the above listed accomplishments I'm keenly aware of the fact that I still have more to learn. Right now, my goal is to make my career transition in the summer of 2023. Which means I need to have a plan in place for how I will continue to improve my skills. Moving forward I'll continue to put in the daily practice but with a more focused effort in the following areas.

Double Down on JavaScript

I'm nearly done with freeCodeCamp's JavaScript certification -- and I do want to move on to their frontend libraries certification -- but I also want to spend more time learning JavaScript in more detail. I have a basic understanding of it, but I want to go deeper because I know that a lot of the frontend libraries (e.g., React, Vue, etc.) make frontend development easier but I believe that's only true if you have a solid foundation of JavaScript to stand on.

In other words, I believe that if I have strong, firm understanding of JavaScript it will making learning new libraries or frameworks easier. It's kind of like using a calculator to do math. It's only useful if you know how addition, subtraction, multiplication, and division work. Otherwise you're just pushing random buttons hoping for an outcome that works.

In particular, I want to go back to my "Identified Weaknesses" list (which I established in my Day 50 Reflection) and continue working on the following concepts:

  • Callback functions; I've seen more examples of how these are used in practiced but I'm still not very confident in how and when to use them.
  • Arrow functions; again, here I've seen more practical examples but haven't quite solidified the concept in my head yet.

More Frontend Mentor Challenges

So far I've only completed one challenge on Frontend Mentor -- mostly just to try it out -- but I definitely want to complete more. First, it lets me continue to practice and improve my frontend skills. Second, I really like the ability to share my solution and get feedback from others (as well as to give feedback too). This is incredibly valuable and I'm deeply grateful that a site such as Frontend Mentor exists to help facilitate that, especially as a self-taught programmer who doesn't always have the opportunity to connect with other learners in person.

Set a Study Schedule

This challenge taught me the importance of doing something regularly (or rather retaught it to me) and how big things are build as a series of small things first. To that end, I would like to be more structured with my study schedule. Specifically, I want to try setting specific tasks for specific days. During the challenge I found that more often than not I would have breakthroughs in learning or solving a problem after taking a break and working on something else.

To keep things simple I think I want to try focusing on freeCodeCamp's coursework on odd numbered days and focusing on projects (i.e., Frontend Mentor challenges) on even numbered days. I think it will provide a nature structure for walking away from certain tasks/problems to allow my subconscious to think about the problem while I work on something else and then return to it at another time. Further, I think it will provide some focus for what I need to work on and what resources to incorporate.

It's no secret that there are a plethora of learning resources out there to teach yourself how to code, but this can be overwhelming and lead you to jump from resource to resource without actually learning anything. Some like to call this "tutorial hell" but regardless of what you call it I think it's something that can be avoided by having a structure and roadmap for how you study. This is why I'm grateful for resources like freeCodeCamp or The Odin Project because they give an outline or roadmap to follow for those of us who might not know which direction to head.

Blog More

The habit of coding everyday helped increase my skills and keep them active, but I also really enjoyed the aspect of reflecting on my study session. For the challenge, I wrote my reflections in markdown files and published them on GitHub in a repo. This worked well enough, but moving forward I want to publish them elsewhere in a more social capacity. I think I'd like to start blogging about my journey on platforms like Hashnode and DEV.to where other developers are so I can connect and learn from them.

Connect with Others

In addition to blogging and sharing my knowledge on the Internet, I also want to start being more active in the developer communities on Slack and Discord. I have already connected with a few people and I have found value in learning from what people post to these places, but I have not put in a lot of time into being active there on a regular basis. And with the future of Twitter in some major uncertainty, it feels like the right time to explore other places to connect with beginners and developers.

Things to Remember

At the halfway point of this challenge I took some time to reflect in a blog post on how far I had gone and where I wanted to go. Re-reading it there a few things I didn't get to complete in the second half of the challenge which is okay because it gives me something to work toward in another round of this challenge. But in my re-read of the post I did notice the list I made of things I wanted to remember. In this post, I'll repeat the short version of that list because these are things that I still want to remember going forward.

Ultimately, learning is a process and not a destination and part of the process means going back and reminding myself of important ideas such as the following:

  • Be Patient
  • Ask for Help
  • Coding isn't everything

Conclusion

When I started this challenge I wasn't sure where it would lead or what I would gain along the way. And while this 100th day is milestone in this journey it's also an arbitrary marker because the journey doesn't stop here. There's still more to come and I look forward to seeing what I'm able to accomplish in the next 100 days, 500 days, 1000 days!

Thanks for reading. If you'd like to continue sharing this journey with me, consider connecting with me: