The Impossible Level
You know those moments when you are playing a video game and it feels as if you are never going to pass that one level? The level you tried 8 times every day to complete but there is always one obstacle or one jump combo that you forget. It feels so frustrating you want to quit the game altogether. That is, until one day you take a deep breath and pick up your game console and what do you know, you complete the level! All those failed attempts leading you to success.
I like to describe the process of the Flatiron Rails project the same way. At first I felt very confident about my doing. I understood the concepts and it wasn’t much different than Sinatra, so I thought that it would not be as frustrating. My original plan was to build from my previous Sinatra application, Music Mogul. What I would do would be similar to an app update, with bug fixes and new features. This time around I wanted to add a feature in which the user can make playlists, by either adding new songs or songs already in the database. I knew that I would have to create a join table, assigning the playlists as so.
However, when discussing this plan with my cohort leader, he warned that this would be more complex than I thought. At first, I was hesitant to use the idea. Man, I thought it was gonna be simple I’m just picking up where I left off. But alas, when it comes to coding, nothing is ever easy. I came into this program with the mindset of just getting done what I need to get done so I can move on. But being in this program for three months gave me a feeling of confidence (to be completely honest sometimes I am not sure how I got this far). Therefore, I accepted the challenge.
Man, oh man, did I really underestimate the complexity of this project. I remember sipping my coffee, sitting down ready to dive in, and I just blanked out. It felt like I knew nothing, even though I knew almost everything. It was very difficult building the project with four tables because you have to make sure everything is connected together, aka the relationships in the user models. I had all the relationships in check, but it was the challenge of the controllers and views that threw me off. Connecting the songs and playlists, along with inputting the playlist_songs join table was beyond frustrating. Each time I solved an error I would be presented with a new one.
By the time it reached Thursday night, I was beat. Rails was winning this boxing match, knocking me out (literally) continuously. I had to stop and think logically if I could pull this off, considering my project review was coming up and I barely have my MVC’s in check. So I told my cohort leader my frustrations, we scrapped the app, and hashed out a new plan. It is still difficult, but at least I do not want to pull my locs out one by one.
This project really taught me the lesson of planning. While you think something is doable, you have to calculate and plan out how you will go about building, you never know how long something will take until you actually do it. I have spent long, long, long, long (I cannot stress this enough) hours building and scrapping because I did not plan very well. It’s safe to say I learned this lesson the hard way. By the time you read this, I am most likely knocked out in my bed, ready to sleep for eternity.