Test Driven Delight — My Coding Bootcamp Experience, Part 6

This post was initially published on Medium on May 26, 2016

Popular opinion dictates that happiness is spelled h-a-p-p-i-n-e-s-s. With all due respect, I’ve realized that’s a load of crap. If I’ve taken anything away from this week, it’s that the real spelling is T-D-D. Remember when I ended last week’s post by wondering how much suffering I’d be going through now that we weren’t working exclusively with Ruby? I thought it’d be like Billy slicing away at my Achille’s tendon with a rusty knife. Instead, it was the equivalent of shipping him off to military school in lieu of having to do any real parenting.

Day 10

With the Hackshow taking place on Thursday, our guest lecture was bumped forward a class, and today’s session featured Ali, who is responsible for Operations & Growth at Ironhack. What I took away from her speech was the fact that the company was planning to expand from 3 to 10 cities within a few years, which is a ridiculous rate of growth. Judging by the breakneck speed of the full-time bootcamp, though, if there was ever a company capable of reaching that goal, it’d be this one.

Our lesson today may go down as one of my favorites, as we were introduced to RSpec and the concept of Test Driven Development. When Josh explained it as writing code meant to test our other code, my heart initially sank to the pit of my stomach. My broken code was already bad enough as it was, why did it need a friend? Would we then proceed to write to code that tests my code’s testing code, progressing further down the rabbit hole until I found myself in the ninth circle of hell?

Turns out that this concept is based on intentionally writing failing code and progressing to various iterations of the final solution, and as you know by now, I’m really fucking good at breaking code. Indeed, it was with the finesse of a classically trained ballerina that I derped my way through test code, leaving nary a functioning method in my path. The dark gloomy skies of the chess validator exercise had cleared to make way for the vividly burning path of purposeful failure and I was emboldened by it. I would follow it in my pursuit to become the next Josh if it was the last thing I did.

Day 11

For the students of the March cohort, this night was the culmination of their past eight weeks of blood, sweat, and tears in front of their computers, being guided along by the all-knowing hands of Nizar, one of the head instructors, AND FAAAARAAAZZ 🔥🔥🔥🎺🎺🎺. They had spent the past two weeks building their final project from scratch and now was their opportunity to present it to the world. To us part-time students, it was just a night of no class and free beer.

I was honestly perplexed by the final turnout of the event. This being my first Hackshow, I expected the attendants to primarily be tech-oriented people who were looking to see how the next generation of developers were creating the latest and greatest websites. Instead, it skewed more toward the social drinking/networking crowd, who had to be hushed on more than one occasion throughout the night. It was kind of a bummer, honestly; this night was about the projects, not about what club was poppin’ later that night.

Speaking of the projects, they were all nothing short of incredible, each stunning me with the level of technical prowess and complexity they possessed. Eight weeks ago, these students were just learning the ins and outs of arrays, with projects like this being nothing more than a pipe dream, and now they had crafted what would take many others months to even develop an idea for. The lightning pitch round gave every student one minute to present their concept to the crowd in hopes of advancing to the final round, where the top three projects would get five minutes in the limelight.

Although all of the projects were impressive in their own right, the top three looked right at home with services I use every day, built by teams much larger than a single individual. Michelle Muzyka’s Wishywash, Al Delcy’s Scorekeeper, and Avi Charlop’s Devbook.co were expertly crafted with hours of tireless effort, and, I’d imagine, at least one stress-induced headache. They featured excellent user interfaces and the utilization of multiple programming languages and frameworks. I’m personally using DevBook throughout the remainder of my time with Ironhack, and if you’ve ever wanted to learn Ruby, I’d highly suggest you check it out. Seeing what this cohort was able to do in two weeks, I realized that the stakes for giving my project a comparable level of polish were higher than ever.

Day 12

Our Saturday session had us revisiting an old frenemy, Fizzbuzz. I couldn’t help but scoff; Fizzbuzz? You mean that thing that I conquered before even starting the program? This would be as easy as making jokes about Josh. The joke quickly betrayed me, though, as we were then told to rebuild the program using TDD, and at that point, I realized those three letters weren’t going to be sunshine and miniature horses for the next few months.

It turns out that writing a program by first writing code that tests a program that doesn’t even exist is actually REALLY hard sometimes. While not nearly as bad as the ghosts of chess validator and blog pagination past, half an hour of my life was still consumed getting the program up and running, a program that initially took me half as long to write back when I didn’t even know what a method was. Regardless, I sat there feeling pretty proud of myself and even embarked upon Josh’s challenge to refactor the code, which 9 times out of 10 means breaking your entire program and rebuilding it in a different manner.

I ended up getting confused halfway throughout this process as the rest of the class moved on to the next iteration of the program, which filled me with a quietly burning rage. It’s like encouraging a Hispanic child to talk back to their mother and then blaming the family dog when that child faces the wrath of Chancleta. Karma evened things out during lunch when Josh asked the class to guess his age. Without hesitation, someone shouted ‘34!’ and a look of desperation and horror was painted across his face as Faraz broke out into laughter. It turns out that Josh is actually 24. I don’t know if we could have found a better way to take the respek out of his name.

The second half of the day had us creating a to-do list using Rspec in a paired programming configuration. I’ve slowly become more accustomed to this setup as the weeks went by, bouncing ideas off of my partners to find out what works, what breaks, and what would have been better off never being typed in the first place. This time around, I was paired with a classmate who actually owns his own business at VestMunity.com, which meant there were tons of creative solutions to go around between the two of us. With each passing hour, we made increasing headway on the exercise until the final version of the code was submitted at exactly 5 PM.

This week is exactly what I needed at this point in the program. Last week had steadily been driving me toward a state of hopelessness, seeing code and classmates alike fly by while my feet remained in the mud. Now I’m feeling the familiar sense of daily progression that I encountered when first starting a month ago, which brings up a point I want to make. If six months sounds like a lot of time to commit to something like Ironhack, understand that I’m already a sixth of the way to the finish line. If you can follow these weekly posts, you can definitely embark on a life-changing endeavor like this, and I strongly encourage you to do so.

Posts about my Ironhack journey thus far:

Ironhack-ing Away — The Prelude

Why Ironhack?

Ruby Tuesday, Thursday, AND Saturday

My Ugly Dark Twisted Code

Rubye-bye-bye

To view or add a comment, sign in

Others also viewed

Explore topics