Day 50: Reflecting at the Halfway Point

What I've learned so far from the #100DaysOfCode Challenge

I started the #100DaysOfCode Challenge on August 5, 2022. Today is Day 50 of that challenge - well, technically it's the 51st day because I started my first entry as Day 0. As this marks the halfway point of the challenge I'm taking this opportunity to reflect on where I've been and where I want to go for the rest of the challenge.

Triumphs

freeCodeCamp Coursework

When I started this challenge I was just beginning my foray into the world of JavaScript (previously I had worked with python, R, SQL, HTML, and CSS). Now, I'm nearly finished with freeCodeCamp's JavaScript Data Structures and Algorithms course. And soon I'll begin the certification projects, once I complete the final set of algorithm scripting challenges.

Tetris App

In addition to working my way through fCC's coursework, I've also been exploring other resources and tutorials. One such tutorial - taught by Ania Kubow - helped me design and build a basic Tetris app using HTML, CSS, and JavaScript. This was fun and frustrating at the same time - a great combo in my opinion. Working through constructing this app helped me grasp things I had been struggling with - like writing functions - and it gave me an opportunity to see practical uses of the concepts I had been studying. More precisely, it gave me a clearly defined goal to work towards.

GitHub

I've also been able to get more comfortable with GitHub. I've been creating and updating repositories with files from this challenge and projects - like my Tetris app. I still need to learn Git, but the GitHub desktop app has made syncing with GitHub a breeze. Moreover, it's helped to lower the bar for entry and given me an opportunity to see how GitHub works and the benefits to using it. Prior to this, GitHub felt like nebulous place programmers go to share their work. Now I'm not sure how I'd get along with it out.

Portfolio Site

I've also been continuing to design and build out my portfolio website. I originally built it as part of freeCodeCamp's Responsive Web Design course, but throughout this challenge I've been able to tinker with the site. This has kept my HTML/CSS skills active, but also has allowed me to expand on other web design skills, like accessibility.

Tribulations

Of course even with these triumphs there have certainly been tribulations that have tested both my coding skills and my commitment to the challenge (and to learning programming in general). Considering I've made it to Day 50 and I'm still 'alive' is a testament to my perseverance.

I'm still struggling with some concepts and methods like callback functions, arrow => functions, and how to properly use methods like filter or map, but I'm confident my skills in these areas will grow with time and practice.

Ultimately, the biggest thing I struggle with is knowing what to use and when. This is especially true when it comes to algorithm scripting. Again, I think this will come with practice (which I definitely need more of), but also with patience. There have been more than one occasion where I've gotten frustrated and felt like giving up (I'm grateful I didn't though).

To help deal with these tribulations I have started a list called "Identified Weaknesses" where I list out things I struggle with or don't fully understand. Then I carve out some time each week to have a dedicated practice session toward understanding those weaknesses and (hopefully) turn them into a strength.

Looking Ahead

Complete fCC Coursework

Obviously, in the next 50 days of this challenge I want to complete my freeCodeCamp coursework and obtain another certification. I'd also like to progress to the next freeCodeCamp course - which focuses on front-end libraries - round out my skills as a front-end developer.

Fix the Tetris App Glitch

My Tetris app still has a glitch that I'd like to fix and I want to make it so that it's mobile friendly (currently it's only desktop compatible). I know this will require reworking some of the event listeners in the JavaScript file and updating the CSS to support mobile browsers.

Build More Projects

Once the Tetris app is complete, I want to start working on other projects to add to my portfolio. Specifically, I want to put my JavaScript skills to the test and build an app that requires a user login and allows the user to perform certain tasks. For example, maybe design a clone of a website like YouTube or Twitter. I'd also like to design an app that makes use of API. Both of these types of projects seem like they'd involve practical skills that would help make me job-ready.

Be Intentional with Rest Days

Lastly, I'd like to plan out my rest days in advance and with the intention to step away from coding. So far I've only taken rest days when I've felt like it or when my body forced me to. This stratagem seems both ill-advised and unsustainable. From now on, I think I'll plan to take a weekend off everyone two weeks and work on non-coding projects and hobbies.

In addition to these breaks, I want to be more intentional with how I study by setting clearer goals for my study sessions. For example, being more strict about completing challenges within a time frame (e.g., one hour) - especially during the work week. Sometimes I've stayed up too late or neglected other tasks because I was too dedicated to studying. I'd like for my sessions to be more balanced. I already know I can make use of a timer to employ the Pomodoro technique when I study, now I just have to be better about not extending the study session longer than needed.

Things to Remember

As I complete the second half of this 100-day challenge these are the things I want to remember:

Be Patient

I'm more than eager to switch careers, but I need to remember that learning takes time. Ironically, as a teacher, you'd think I'd know this, but the experience of being a teacher is different than that of a learner. This journey has been humbling, if nothing else.

Ask for Help

I'm getting better at this, but in the beginning I was shy about asking for help. I wanted to solve everything on my own, but that's not how the world works. The world - all of human civilization - is built upon collaboration. That means asking for helping when I need. Using the fCC Discord has been helpful here; I've already gotten help on previous problems and made a few friends.

Coding isn't everything

It's not the end of the world if I don't code. I know I need to continue to practice my skills, but I can't act like the world is going to explode if I don't code. There are other priorities that require my attention too.

Conclusion

Those are the triumphs, tribulations, and lessons I've learned from my first 50 days of the #100DaysOfCode Challenge. I'm looking forward to what comes next in the second half of the challenge and writing this post has helped me identify the direction I need to work toward. If you'd like to see my log entry for Day 50's study session, you can find in my GitHub repository for the #100DaysOfCode challenge.

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

Happy coding!