I didn’t anticipate how beneficial building the Yahtzee game would be. At first, I felt guilty building it because it didn’t seem to serve any purpose and I worried I was wasting valuable time on a project that wouldn’t bring in any profit for our company. While it’s true that we won’t make a buck off of this game, the skills I have cemented in the process have made me a much more profitable employee, and that is invaluable.
In the past, when I tried to build things, I often didn’t have a firm grasp of what the completed thing should look like or be. I wanted to solve a problem that we were facing at work, but had little understanding of how things are built or how to create a solution out of nothing. I would quickly get stumped and not know what tools were available to me…or even where to look. I’d have to rely on my coworkers to bang out some code for me.
Obviously, as a result, I wasn’t really learning. This time, I had a clear goal in mind of how things should work. I knew if something was performing as expected or not. This allowed me the freedom to get to work and build the app, versus spending valuable time trying to think up features to build. That honed focus was an immeasurable gift.
The Yahtzee game had at least fifty steps that needed to be built out, so I was constantly solving problems and creating solutions to get just one part of the game working. Every time you roll the dice, there are thirteen individual scores to choose from that need to be calculated, not to mention updating the scores and checking for a bonus score. It was incredibly helpful to have a ton of bite size, independent tasks that I could confirm were working the way they needed to before moving on to the next thing.
Another huge bonus was that this was fun to build. It’s a lot easier to stick with a project when you enjoy doing it. I’ve had other side projects I tried building to expand my skills, but it wasn’t fun. My motivation petered out. With this project, I literally did a little happy dance after I got a particularly challenging task completed. You have no idea how ecstatic I was to figure out how to calculate if a full house (a set of three and a pair of two) occurred.
This project gave me a long list of takeaways. The most useful benefit was how it allowed me to get comfortable with the console. I’ve known this is a skill I need to master for a long time, but try as I might I just could not “get” the console. I’d pull it up to try and use it, but it would remain blank. This project made me wear the soles out of the console.
I also walked away with an understanding of very specific areas in my knowledge that I don’t have a firm grasp on. There were times I was stumped, turned to Stack Overflow, found a solution, only to realize I don’t fully understand how the solution works. Knowing specific things I can hone in on gives me direction on what to go after in the future. For example, I realized my understanding of prototyping is really fuzzy and needs shoring up.
I’m excited because while the basics of this game are complete, there are still a lot of things I can tinker around with. Since I started drafting this post, I added an onboarding process, instructions, and a spiffy CSS animation. I know that my code needs refactoring; it’s not very DRY and the ordering of code blocks is atrocious. I also have a bunch of little UI features that I think would snazz things up a bit.
What are some projects you’ve done that were a blast and you also learned a lot from?