This was an interesting experience, and certainly challenging. I think I went into the project with a lot of pieces of knowledge that weren’t necessarily tied together yet. Having to bridge those gaps and connect the dots along the way helped to solidify my understanding of how the different pieces of Ruby programs work.
I have a Windows computer, which I’m sure will change sometime soon, but I started the project using the IDE since my local environment wasn’t completely set up yet. After a bunch of issues connecting to the IDE I decided to bite the bullet and make the switch, and I eventually figured out enough with my local setup to work on my CLI in VS Code and push the submissions to GitHub. The syntax highlighting alone was worth the trouble, overall it was just significantly easier to read and edit the code in VS.
There were a few things that were big hurdles for me personally while building the CLI. One was overconfidence. I started the project intending to build something bigger than my actual final product, and while my ideas were good ones, I understimated the time required to implement them. As the code grew and got more intertwined I noticed I was spending significantly more time than expected analyzing and fixing code that broke from small tweaks. Without the benefit of those fantastic Learn.co tests, a lot of time also went into running pry or using the console to experiment with code.
A benefit of not having tests provided was being forced to look at the code in a broader more integrated way. With some lessons I’ve noticed that I get too focused on just passing the tests, and I’d wind up with a surface level understanding. Constantly breaking the functionality of my CLI meant that I was learning how things fit together by playing with and fixing the code in different files. The project was perfect for testing my knowledge and showing me where my some of my knowledge was lacking.