Why I Believe Coding is More Difficult Than Saving a Life.
Published: 2022-10-07 07:28:07

Oh boy, where do I begin? 

    I'm very new to coding, I've got a little over a month under my belt you see and it has been quite the eye opener. I thought I understood what I was getting into. I thought I was prepared for the rigors that awaited me as I learned my first coding language "JavaScript". I thought I understood through my long nights and long hours of study anatomy and physiology that anything else shouldn't be as frustrating. Cue my career switch and welcome the first obstacle that I had to hurdle over, "parameters and functions".

    A quick summary of my background to give you some insight on my perspective going ahead. I come from a background of medical services / first-aid certifications. My training has taught me to act in the moment. To take full control of the environment around me and brace myself for whatever chaos may ensue. I've been in more emergencies than I care to admit, and one of those including a one-on-one for saving another's life. The experience still seems surreal at times, with how quickly that day went by. Almost a blur really. But by being trained to act in life or death situations I thought I was more than prepared for what lay ahead of me. "Surely, nothing could be more emotional than what I had already gone through." I thought to myself as I signed up for a coding bootcamp. I was gravely mistaken.

    The first few weeks of the coding camp came fast and hard. You can equate it to feeling like a plastic bag stuck to a car antenna that's traveling 80 mph down the highway; just holding on for dear life as I embraced the new terminology and the new ways to view languages. Then came something so simple, yet at the time "so beyond me". Passing arguments and parameters through functions. I would see the same name/label appear multiple times. I thought "Oh! So all of these are the same thing and mean the same thing. Wrong! It took me almost two weeks to learn how to actually pass an argument and knowing what it meant. But during those first two weeks, it was full of constant late nights, copious amounts of googling, and an insatiable fatigue that seemed to never end! I would wake up tired, go to bed tired, I was tired. Why were the nights so long and what was the real reason that kept me up late at night you may ask? Constant troubleshooting reference errors as I was trying to pass arguments where they had no right going. The mental fatigue that hits you as you're learning how to name parameters and pass arguments, only made things more muddled. As they're such an essential part to functions thus pertinent to actually functioning functions. I couldn't help but try to simplify and generalize all the words and code in front of my face. This was doing myself a disservice as I wasn't understanding the language. 

    I was getting impatient with seeing so many of the similar variations of words, because in coding you're going to be very literal and explain the name of a function, or an array, or a variable. So if all of these different types of data are called things like "ramenData", "renderRamen", "ramen", "renderRamenDetails". It felt like they should all mean the same thing with how similar they are! This was a very bad idea and what really made me struggle to understand arguments and parameters. I needed a change in perspective, I needed someway to understand how to make all of these similar names/labels differentiate themselves in front of my eyes. I was searching for a balance, to have that "AH-HA!" moment. As day after day I worked on reading the code in front of me, explaining to myself step by step what on Earth was going on in the screen before me. It wasn't easy to start understanding parameters and arguments, but nothing worthwhile ever is.

    Parameters and arguments may be considered synonymous by most but for me, I thought "they're called different things for a reason, so they must have different purposes". I was on the right track but only through sheer willpower and repetition did the definitions of these words start to come together and make sense in my head. An argument is defined as "Arguments give us a way to pass information into a function to make our functions more flexible. We pass the argument at the time that we call the function, by including it inside the parentheses after the name of the function". While a parameter is defined as a placeholder that stores whatever value gets passed in as an argument. (Flatirons, online resources.)

    What the cheese-wiz?! So an argument is supposed to be called inside the function, but the parameter is the thing that actually holds the value of the argument? Why not just call them both arguments? I felt like I was losing my mind, as such a simple concept haunted my days and nights. I would get frustrated, overwhelmed, and exhausted from trying to make this concept "click" inside my head. Skip forward a week, and it is time for our first big lab on our own. That lab destroyed me. I was on the brink of a breakdown and no end in sight. Then shortly after that lab, it was explained to me. I learned how to interpret and see a parameter as truly what it was, an empty value waiting for it's argument to give it purpose to give it value. I no longer felt like ripping my hair out! Hurray! The beginning of this journey has been much more tumultuous and emotionally taxing than I ever thought. Saving a person's life was a cake walk in comparison to trying to understand this (what I thought was at the time) quantum physics. My brain never ached before, my mind had rarely felt as tired, and definitely I could not think of a single time when it was so incessant. Saving a life from heat stroke is as easy as ABCs compared to the arduous tasks that kept being thrown my way. 

    Oh those pesky arguments, they used to be the bane of my existence and now that I can identify them. It finally feels like I'm not crawling but walking with everyone else in my cohort. I'm able to see functions in a new light, I can explain where I called an argument, why I named a parameter "x,y,z". It was an amazing feeling to see how far I had come in understanding something so simple yet so very foreign to me. I'm now looking forward to the next step in my coding career, by focusing how to manipulate the DOM, between JavaScript, CSS, and HTML. But understanding how to read the functions, and where data is coming from and why things are doing what they are doing was tantamount to my success in understanding not just one language. But the general syntax of programming fundamentals. 

    For me, the coding odyssey has just begun. I'm anxious and excited all at the same time about the new languages and concepts that lay in front of my path ahead. Waiting for my Poseidon to show it's true face once again like it did with parameters and arguments. But for now. Life goes on, learning and growing are perpetual in this industry, professionally and personally. I have much to learn and cannot wait for the next obstacle that I can build off of and improve from!

Resources: Definitions from (Flatiron Coding Bootcamp, online resources.)