My Ugly Dark Twisted Code - My Coding Bootcamp Experience, Part 4

The past few Ironhack sessions have been challenging, but nothing I couldn’t figure my way out of. That changed this week, when Billy stirred me into a silent rage, the likes of which I could only temper by quietly breathing and staring at my pile of broken code. I was expecting something like this eventually, but not two weeks in, and definitely not from the child that I had raised to play a mean game of tic-tac-toe in Ruby.

            Hey Christian, your hopes and dreams? Fuck 'em.

Day 4

In reality, the mini-meltdown was only a matter of time, and it was during this session that those seeds were planted. Losing an hour of sleep to an online final the night before put me in a miserable state of mind. In an effort to get my shit together before class, I downed four shots of espresso half an hour beforehand, to no avail. All that gave me was the ability to go to my classmates and say “Who else tried to supplant their irresponsible time management with hot bean water today? Just me? LOL!” I was/am the guy you avoid at the water cooler at work.

Settling into my seat for the class that night, we started by learning a new method to see the directory of the folder you’re currently in using Terminal. The command officially goes by ‘tree’, but I’m a rebel so I decided on ‘Mr Branch n’ Leaves’ instead. Can you guess how long it took me to use this command to break something? Thirty seconds? You’re too kind. It took all of 15 seconds for me to use the function in the root directory of my hard drive, which lead to the terminal spitting out folders and their associated subdirectories. Every. single. one. I took a few moments to pretend that I was hacking the government with all of the text that was flashing across my screen before letting the crippling sense of failure set in.

                      Dressed up to mess up.

The actual lesson for the day was object orientation, and my best buddy Josh (shut up yes he is) had us implement the learning by building spaceships, or as I like to call them, vroom vroom tubes. We had to write a program that would have two spaceships, each with their own particular set of characteristics, battle each another until one was destroyed. Only Ironhack can bring up the concept of a spaceship battle and have people in the room saying “please no.” In the process of mapping out the code we’d need to write, we were asked what spaceships were capable of doing.

“They can fly!” said one student.

“They can shoot!” said another.

“They can go to warp speed!” said someone who clearly hasn’t seen the price of space fuel recently. Thanks, Obama.

“But can they love?” I whispered quietly, thinking about what little Johnny Spaceship back home would think of all this barbaric talk.

We named the first spaceship Falcon Nine in honor of every nerd’s Great Leader, Elon Musk. With the second ship, we decided to get into an engaging conversation on how to spell ‘Millennium Falcon’. Our Great Leader would be ashamed. My moment to shine during this class session was the entirety of Josh’s process of putting code on the screen, as he frequently made spelling mistakes that I was more than happy to point out. Four years for a degree in Public Relations well spent. My shine was thoroughly dulled as soon as he said “This week you have a big homework assignment, but don’t be scared, I’ll help you.”

Joke’s on you, Josh. I was born scared. We were tasked with creating a game of tic-tac-toe, where the program would be able to place X’s and O’s and detect a horizontal, vertical, or diagonal win. Not a single soul had any idea of how to begin, which led Josh to give us a generous ‘spoiler’ of “using 2 dimensional”. Ah, yes. That’s it, I’ve cracked the code.

                      Ffffuuucking nailed it, bro.

Day 5

Would you believe it, I managed to run the ‘tree’ command in the root of my hard drive again. Next time someone asks me what the rapidly scrolling text does, I’m telling them that I’m in the process of hacking their credit card information as well as their grandma. “Not Gam Gam”, they’ll whimper as I proceed to hack into Gam Gam.

Today’s class started with everyone heading outside, which I originally thought was a polite way of Building kicking us out. Alas, it turned out to be another icebreaker instead, where we were asked to get in the middle of a circle and reveal facts about themselves in hopes of finding someone else with whom we could relate. When it was my turn to talk, I proudly declared “I am the shortest of my siblings”. Not a single person budged, and not a single person knew that it was at that point I realized it was a man-eat-man world and that I was not surrounded by friends, but rather by substantially taller enemies.

The lesson for today was git trees and branches, with a tree representing your main project and the branches representing variations of that project that contain changes you can later merge back into the master file. We learned that there are an infinite number of branches that we can create with our projects and could discard them if they managed to break our program. I silently wondered why that couldn’t be done with my grade school experience. What our instructors tried to drill into our heads with this concept is that when it comes to coding, you can’t be afraid to fail and make mistakes. Little did they know that I’m going to be making mistakes that were never before possible (see my experience with ‘tree’, above).

After the lecture portion of the class, we jumped into our second paired programming challenge. By this point, I had begun to get used to the process of communicating exactly what code had to be written as well as clarifying with my partner whenever they asked me to write something that seemed likely to break. Lo and behold, those communication skills came in handy as we bootlegged our way to success with an amalgamation of code that was on the learning platform as well as our own creative solution. Faraz had the audacity to ask me if I copied the code directly from the site. Of course I didn’t. I typed the code by hand like my dad used to do on the rural farms of Colombia.

                      Stuntin' like my daddy

Day 6

Up until today, the learning curriculum was comprised largely of sunshine and butterfly farts. I’ve been able to think my way out of most challenges Faraz and Josh have thrown my way and Googled my way out of tougher situations. During this class session, that changed dramatically. I had shown Billy nothing but love and affection throughout the past few weeks, and he returned the favor this Saturday by throwing my childhood bicycle into a lake and burning my replacement house down.

This day’s lesson taught us that if it walks like a duck and talks like a duck, it’s probably a duck. And that you should probably feed it bread, lest you end up on the receiving end of an aggressive waddle. Duck typing is a system in Ruby that defines types based on what an object can do rather than what class it was born from. Hence, a duck and a duck cosplayer can both walk like ducks and talk like ducks, but only the cosplayer can disappoint their parents.

      “Linda, for God’s sake, haven’t you heard the news? Quack kills!”

This made more than enough sense to me, and I was able to get through the related exercise without much difficulty. I still felt like I was ahead of the curve, and I had actually been making solid progress on my tic-tac-toe program. And then the blog exercise happened. We were asked to create a blog program in Ruby with three classes representing a post, the blog itself, and the app that would create instances of these classes and get them talking to one another like distant cousins at a family reunion. I decided to put my skills to the test and block out the outside world entirely. After plugging in my earphones and starting my get-shit-done album of choice, My Beautiful Dark Twisted Fantasy, I went to work, typing away at methods, attribute accessors, and instance variables like nobody’s business, not even needing external guidance. I had learned enough by this point that not a single aspect of the first two variations of the task required debugging on my part. Everything just worked. After adding a new class that allowed for the creation of sponsored posts, I decided to rejoin the regular world and see how the rest of the class was doing.

That’s where things turned sour. I saw half of the class speaking to Josh as he explained the final and most difficult variation of the blog, the ability to split the blog into separate pages of 3 posts each and allowing the user to switch between pages. As everyone nodded their heads in understanding, I found myself at the first full-stop ever. I didn’t understand a single word that was written on the board, nor could I fathom how I would even go about starting this task. Half an hour later, a number of my classmates had their pages working and I was still sitting dumbfounded, too angry at myself to ask for help. What had happened throughout my jamming session that sent me so far back in progress?

Nothing I tried worked. I knew the solution would involve arrays, but from there I remained clueless. Creating new methods for each page? Doesn’t scale well. Cry softly in the shower? Saving that for later. It took me fifteen minutes to decipher the mad ramblings on the whiteboard and implement some form of it into my code, when I finally started to see a solution in the distance.

                      It says "Christian sucks."

Ultimately, the answer came from the source that makes paying for a bootcamp worthwhile: the live instructor. I swallowed what little pride I had left and walked up to the front of the class to ask for a step-by-step explanation. As knowledge spewed forth from the Fountain of Faraz, all of the pieces started coming together and began to make sense. I learned an important lesson, one more important than what we were actually supposed to accomplish — there’s only so far that sheer determination and creative thought can take you. As a stubborn human, I didn’t want to believe this, but for the sake of learning and my mental health, I had to choke down the pill of pride and have my hand held for a bit.

And you know what? I feel a lot better about it. If I had faced this same challenge online, I’d be dead at the age of 30 from high blood pressure. Being dead isn’t what cool kids do, and I’m totally rad. I later realized that most of my classmates were equally confused as well. Recalling on my commentary from the icebreaker activity earlier, I’ve realized that there are no enemies in Ironhack. I see us more as a jolly gang of misfits trying to navigate our way through a dark and menacing jungle densely packed with gnarled vines ready to ensnare anyone who dares stumble or trip along the way. It’s our respective jobs to save one another from these traps and make it through the other side in one piece.

I know for a fact that it’s not going to be easy. In fact, I couldn’t be more sure of the fact that it will be hard as shit. But at the end of the day, we all proved our courage by signing up and making it this far, and we’re going to wear our battle wounds with pride.

要查看或添加评论,请登录

Christian Chavarro的更多文章

社区洞察

其他会员也浏览了