I am embarrassed to say that it took me way longer than necessary to get this baby going. Now, I can use the usual excuses; it was holiday season, I was busy, my room needed to be organized, I got a puppy for Christmas (this actually did happen), etc. Which yes, I used all of these gems on anybody that asked how I was doing with this course. To be honest, I was intimidated to start this project since its the first one where I was responsible from the beginning to the end stage and that thought was scary. I wanted to make sure that I was well prepared, and in doing that, I ended up procrastinating and wasting a lot of time that could have been used towards this app.
Of the many things I learned while in the process, I think the biggest lesson was that I just had to jump right into it. Once I started, everything else fell into place as I started coding, debugging, and then coding again. Don’t get me wrong, this was challenging and I got more errors than I could count. As I was working though, I realized that I shouldn’t have been so nervous to start because the code you start with is never going to be what you end up with, or at least it shouldn’t be. Good code has to be fluid and adaptable to really function the way it is intended to be used.
When I started the project, I followed along with Avi’s tutorial on how to create a gem. I decided to create my app based on The Rolling Stones list of the top 100 Instagram accounts since I always find myself scrolling throughout the day. The tutorial was helpful in that, for one, I had never created a gem before so I’m not sure I would have been able to understand how to create one from my various Google searches. And secondly, Avi really stressed the logic that you should always be trying to write the code you want to have, even if you’re starting off with hard-coding to get the ball rolling. Compared to the previous lessons, it felt like I was coding backwards. My first instinct would have been to start off with the scraper class and then work my way up to the CLI. I definitely struggled with the concept at first. Its difficult to work on something you don’t have yet, but that vague way of thinking is part of what coding is all about. I’m glad that I followed along with that tutorial because it opened my mind up to a different perspective and, more importantly, a more effective workflow.
Once I was able to get everything I could out of the gem tutorial, I was ready to start coding on my own. That thought was both terrifying and exciting. Naturally, this is where I ran into most of the errors I encountered. I can honestly say that it took me until this project for me to fully utilize all the resources that Learn has to offer. I joined my first study group after I was unable to figure out what was wrong with my code. The session helped, but it took a one-on-one meeting to figure out that I was trying to use a class variable inside an instance method T_T. After that hurdle, I finally learned how to select multiple cursors to edit several lines of code at the same time like how Avi does, which I was very happy about. Now, I can code that much faster just knowing that one hot key. Another step that I now have down to an exact science are the git commands that I didn’t understand before. Not all of them of course, but just the general ones to git add and push up to github which is vital.
Overall, even though this project was actually quite frustrating at times because I realized there was so much I didn’t know, it was successful in that, due to my lack of knowledge there was that much more for me to learn and overcome. Now, I feel much more confident going on to the next step with my newfound experience as a coding novice. Onto the next adventure!