The Process
I definitely struggled with getting started on this project. After using the video walkthrough to set up my gem, I was frozen. Although I had my idea of what I wanted to do, I had a few days of coding block where I didn’t even know where to start. My son is a software engineer and he was able to tell me to just start with something small. So I started with the greeting method. I also looked at the demo gems to get an idea of what might be included. I probably took too close of a look and this set me up for issues later!! Working on this project during the holidays was difficult and challenging. It seemed like I was taking one step forward and two steps back for awhile. In the month of January I was able to spend some more concentrated time on the project, but I had set myself up for a definite struggle when I took too much code from the demo gem. I had to take a step back and map out exactly what I wanted from each method. I also had to realize that I had set my goals for the end result of the program a little too high and attempted to scale back. Deleting blocks of code had always been intimidating to me but I had to over come that. I was reminded that one of the rules of coding is to delete a bunch of code. So, I began to refactor my code and made some great progress. Using an API was great but I was most concerned about the fact that I would need to scrape the final url. I was pleasantly surprised that it only took me about six hours to get a return that was readable. Beth gave me some great advice when I was struggling with how to not send repetitive calls and I later used that advice to set the review and not have to continue to scrape my url repetitively. Beth was also a great help in getting an annoying little symbol out of my final reviews. One thing that bothered me from the beginning was that my program ended without the user choosing that. I was able to finally add in another method that gave that user the choice to either continue or exit!! That definitely prompted a big happy dance. I have discovered some things about myself through this process. Some of my weaknesses are getting stuck with code that is just NOT workin and, focusing on a single problem at a time. I also have trouble walking away from the code when I am frustrated. I think that struggles stems from having limited time to focus solely on coding for long lengths of time. I decided to make some difficult life changes to make more time for this bootcamp. But I also discovered some great strengths in myself. I am very persistent. I have always known I was a little bit of a perfectionist and that trait is not a bad thing in coding. I am a writer and that has proven to be advantageous for me through this process. I have found that I enjoy coding and particularly love the rush I get from seeing my code actually work all the way through. I have struggled all my life with being a distracted person but in coding I am finding that I have the ability to stay focused on one thing for long periods of time, given the opportunity. Some of the non-coding skills I gained from this process are how to record a video of my screen, how to record a video on Zoom and how to publish to YouTube.
The Project
I was looking for an API to work with because I struggled so much with the scraping lesson. I love to read so when I discovered that the New York Times had several public API’s I was elated. I was slightly intimidated by the idea that I would still have to scrape a url but that part of the project was actually the easiest to complete!! The project is designed for a user who wants to read reviews of New York Times best selling books. The Books API has many ways that a user can search for a book but I chose to focus on the two methods of by title and by ISBN. If I was to expand the program I would incorporate other methods, such as by author and by format. The program walks the user through entering a title or ISBN, receiving a description of the book which includes the book title, the book’s author, a short summary of the book (if available) and the ISBN and then confirming or denying that those match the book the user wishes to read the review written about it. If the user confirms this is the book, the user receives the review text on the screen. If the user denies that is the desired book, he/she is able to select another book and continue the process. Once the review has printed out to the screen, he/she has the choice of reading other reviews (or the same review again) or quitting the program.
Final Thoughts
I sincerely hope that the rest of the projects do not take me this long to complete. My personal life played a large role in the that, as I had an unexpected trip to make where I was unable to work on anything in the bootcamp, and the holidays kept me away from my computer more than I expected. I also experienced a few bouts with sickness during this time and an enormous amount of stress. I have had to make some serious life changes and have several more looming in the near future that will impact my performance in the bootcamp. I know I will continue in the bootcamp and will complete it but I have some serious family commitments that I am going to have to deal with and some major adjustments to make. I have discovered that finding a balance between family and the bootcamp has been the most troublesome and crucial component to my success. I am still working toward that delicate balance and I assume that conflict will continue to be a source of stress as I move forward. I am committed to my path in both areas so it will be imperative that I work for that balance every day! I have fantastic support from my family and I will need to learn to lean on them more in the days ahead to achieve my goals.