TLDR: I appreciate teamwork, functioning apps, pseudocode, streaming services, and pry a whole lot more.
having a good partner will make anything doable through the difficulties
I loved working with Lauren. No matter how many errors we got, I knew we would come out on the other side together. She never belittled me for not understanding something; she was intentional about ensuring we were always on the same page and being patient when we weren’t. Our sense of humor aligned and we complemented each other’s skillset well; where she forgot an end, I forgot a do; where I knew Active Record, she knew SQL. Teamwork really does make the dreamwork.
a shortcut is the longest distance between two points
With test-driven development, you should code a little test a little. We figured Hangman is simple enough that an error about saving an instance of the game to our database is something we could adjust once we had the gameplay working correctly. Boy, oh, boy…that was incorrect. Proper pseudocode, though time-consuming, may have helped us in a lot more instances (pun intended) than foreseen.
even if my code is breaking, I still need to take breaks
My brain would be fried after fixing one error only to have six more pop up in its place. Eventually, I couldn’t keep track of which issue I was trying to fix anymore. Debugging code is a marathon, not a sprint; a the-show-must-go-on mentally will not benefit anyone in the long-term. When I paused a programming session to watch another episode of This is Us or browse LinkedIn or have chocolate chip pancakes and a Caprisun, I came back to my code so much more refreshed and able to solve a new problem. Which brings me to my next realization:
our brains and lives are coded so incredibly; I’m sad to have been taking that for granted
When I do figure out the answer to an error, I can’t tell you how my neurons decided to wire together to come up with that thought process. Breaking down things into their smaller units is incredibly hard. When people get injured and have to relearn how to walk, decomposing a single step into all of its steps takes persistent effort and patience. Teaching a computer something as simple as a game of Hangman has made me so grateful for all the things coded into my neural networks that make so much of my life un- or subconscious. My first project led me to develop (yes, pun intended once again) appreciation for another network:
As a UX designer, it is really easy for me to notice unpleasant flows and features. As a software engineer, I am becoming more patient with those issues. If this CL game has been days worth of work, I can’t imagine the immense teamwork and all-nighters that any common app or feature takes to be pushed out to users. Edge cases can be tough to find. How can you test for and debug something if you don’t know to test for it? I already valued user feedback so much as a designer, but I doubly value it now as an engineer because I can’t use pesticides on bugs that I’m not aware of.
Much appreciation to all the programmers out there who are making libraries, apps, and platforms for all of us to use to improve our efficiency, enjoyment, or execution every day. Also, much more appreciation for the programmer of life, even if I don’t exactly know who that is yet.
A video demo of the project:
The Github link: https://github.com/eiphyllis/CLI-project-hangman