Grit
Tags: javascript, codenewbie, devjournal, theodinproject
Published: 2022-04-10 03:51:38

So what is grit, exactly? The Google dictionary defines grit as:

> courage and resolve; strength of character.

I'm currently dealing with a bit of a setback in my current project. Despite how small it is, the Rock Paper Scissors project I'm developing through The Odin Project (TOP) has hit me with a few bumps along the way. 

In my former self, the self that only dabbled in code a little here and there with no intention to ever become a developer, I would have given up and just gone on to the next shiny thing in sight. Now, however, I'm a lot older, more mature (unless you ask my wife), and excited to forge a new path for my future. I **HAVE** to finish this. This is not something that I can just skip out on. My future depends on my ability to grind through the difficulties associated with learning new things.

This is how you demonstrate grit. It starts with a purpose, a goal. Without a goal, there isn't enough motivation and determination to push through difficult times. I've been having a seriously difficult time and had many reasons to walk away. 

My first roadblock was understanding callback functions in relation to scope of variables. I was trying my best to maintain local scope but because of the way I was using my callback functions, I kept getting errors. The biggest problem was, I was unfamiliar with the errors I was receiving and didn't know how to pinpoint them and debugging with Dev Tools was not productive since the callback function was dumping me abruptly. After several hours of playing with it on my own, I finally opted to seek help and formed a good question, provided my code, and waited for some help. 

Help arrive and after another hour of back and forth with my hero, I finally had an understanding of where I was going wrong and why my callback function was not working properly. So, I left a note for myself, took a break, and came back to it the next night refreshed and rejuvenated. 

I spent a few minutes reviewing my code, reading my notes, and planning my fixes. Within an hour I had the logic of my program working, and the beginnings of my next problem. I want to stop there because I'm still in the process of learning about how to fix my problem, but the focus of this journal entry is simply to understand that when problems arrive, I have several choices I can make to overcome my problem:

<ul>
   <li>The worst choice would be to walk away and 
   just not ever program again. But then I would 
   never have the benefit of becoming a 
   programmer</li>
   <li>I could take a break and hope that coming 
   back with a fresh mind and possibly a different 
   perspective might spark a resolution</li>
   <li>I could ask for help from the community, or 
   lastly</li>
   <li>I could just keep plugging away and keep 
   being frustrated in hopes the answer falls into 
   my lap</li>
</ul> 

In my case, I decided that after several hours of effort, I simply didn't understand an important underlying concept and opted to seek help from a peer within the TOP community. After a brief back and forth, I was a lot closer to a resolution but it hadn't sunk in just yet. So the next day, after giving it the college try, I again sought help and the same person helped me and that's when variable scope sunk in and I was able to better understand how to get my code working. 

Sometimes you just have to be willing to get outside help to expand your mind to seeing things that you couldn't previously see. Nine times out of ten, the person that offers to help you will have the perspective you couldn't see to guide you to your own solution. Don't take this as "I will never get it because I had to be shown", but rather, take it as "I now better understand this code due to the wisdom of this person who has been doing this longer than myself". 

Getting help from others should always be a last resort after you've exhausted all avenues on your own. But take with you the mentality that you are about to learn more. After you've put so much time and energy into your project, when you do finally piece it together and you see it working as you intended (or mostly), then you will have a truly satisfying experience. Pushing through to this point is demonstrating resolve, determination, or as TOP calls it, grit.

I encourage each and every one of you to dig deep on those frustrating code days and keep going. You've got this! Until next time, <u>be good!</u>


Photo by <a href="https://unsplash.com/@towfiqu999999?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Towfiqu barbhuiya</a> on <a href="https://unsplash.com/s/photos/determination?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>