20 Day Check-In -- #100 Days of Code
Happy New Year everyone! Hope you all had a lovely holiday season.
I've been meaning to write this one for a while, but the holidays have been busy. My pace has slowed over the past couple of weeks because of getting the covid booster (which destroyed me for a couple of days) and then flying back to my hometown to visit my family for Christmas. But today (which will be Day 21), the grind continues. I want to start cranking out these updates on a weekly basis, mostly as a way to have a log of my progress and what I've learned — which I think will be a helpful reference for me.
So what all has happened between Day 10 (my last update) and now?
I've got a working game of Hangman. This was a fun project, and I learned several important concepts while making it. Probably the most significant was getting more practice with serialization, as one of the project's specs is to allow the user to save and load games in progress. The game was also great practice for Object Oriented Design and looking at my older projects like Tic-Tac-Toe and Mastermind, I can see how far I've come along with it. There's still plenty to learn and the design of my Hangman is by no means perfect, but I still feel great about my progress.
Some of my friends got me into doing this year's Advent of Code. I haven't fully completed it, and I probably won't do any more puzzles for a while as I want to prioritize my learning of webdev. I'm sure I'll also find it much easier when I get more experience with certain CS concepts (like tree-traversal algorithms). I did have a lot of fun with what I did get through though, and I'd definitely like to return and complete it when I have the time. I might also look into doing previous years' puzzles.
I also used my down time to get some reading in. I mentioned in my last update that I was reading through Practical Object Oriented Design in Ruby (or POODR), and I've gotten up through to the chapter that's about testing. Since I haven't gotten around to testing in Ruby yet, I plan to leave the rest of the book alone until I pick up testing and TDD. I learned an absolute ton through reading this book and strongly recommend it to anyone seeking knowledge of OOD, especially through a Ruby lens. But I also picked up a book I've been enjoying even more: 99 Bottles of OOP (also by Sandi Metz). This one works a bit better for my brain because of its structure and more interactive code examples. Once again I strongly recommend it. It deftly teaches some important OOP concepts that had flown over my head in POODR (abstractions, polymorphism, etc.). It's just great.
The main thing in the pipeline right now is a custom recreation of Ruby's enumerable module. This is a project in the Odin curriculum that is intended to give practice with Ruby's block features. I still have several methods in the module left to iron out, but I should have a complete project to show off in the next update. See you then!