The following is a guest post by Saron Yitbarek and originally appeared on her blog. Saron is currently in the Ruby-003 class at The Flatiron School. You can follow her on Twitter here.
Six weeks ago I was rolling in bed, too excited to go to sleep before my first day of Flatiron. Six weeks from now, I will be rolling in bed, too sad to fall asleep knowing that Flatiron is over. And today, today is halfway.
At halfway, we talked about our feelings. Every Friday we talk about our feelings. But this Friday, Avi asked us to reflect on the overall experience, rather than the usual weekly review. We talked about growth, about the pursuit of self actualization, about dealing with fear. All of which I agreed with, felt and witnessed everyday. But this weekend was particularly telling of the program’s impact on my personal development, as I stared at my browser and consistently resisted the urge to punch my computer in the face.
I was working on my first Rails app. It’s about frogs. Naming them, giving them colors and tadpoles, then having the tadpoles “evolve” into frogs while retaining their tadpole attributes. You know, your basic froggy features. And it was painful.
While I built it, taking my original Sinatra app with the same functionality and converting it into a Rails app, I found myself stuck over and over again. I would look at something I’d written, and swear that it was right. That it was logical. That it should work. And with a very fuzzy understanding of the abstracted inner workings of Rails, which my Flatiron class lovingly calls “DHH Magic,” the task of debugging was painful. Where do you even start, when the thing that’s not working is a method that was metaprogrammed by another metaprogrammed method? And between the database, the views, and the actions, how can you tell where the root cause of that damn “no method error” really was?
But the worst part of being stuck isn’t the stickiness. It’s feeling like you’re out of options. That there’s nothing you can do. That you just don’t know enough to start breaking it down. And that’s when the demons come out. The ones that tell you you’re not good enough. That you’re too stupid. That you weren’t meant to do this. That there are 12 year olds building Rails apps in their basements after school, and you can’t even get a method to do what you want.
Those are the moments when you have to decide who you are going to be. And it is always a decision. Always. This summer, on many sticky nights, I decided to succumb to my demons, to cave in, and go to bed defeated, hoping to find my strength in the morning.
But this weekend, on the stickiest of nights, my demons didn’t stand a chance. Because after six weeks of being surrounded by the most supportive teachers and classmates, by experiencing the correlation between the hours I spent coding and the level of my technical abilities, I’d finally internalized what I always knew: that this was my game to lose.
There was an average of 1 computer-punching-moment per hour. Where I felt I’d tried everything, where I thought I’d applied the wise words of the documentation correctly. Six weeks ago, I would’ve seen nothing beyond my burning frustration, and it would’ve taken me down. But this time, I forced myself to focus on the assumptions I was making. To trace and deconstruct my thought process, and why I had expected my solution to work. I read about and played with different methods, using my conceptual understanding of what Rails was supposed to do and how it was supposed to work to guide my logic. And when I paused, took a step back, and reevaluated the context of my proposed solution, I saw the flaw in my logic. And, of course, the flaw was always mine. And I was glad I didn’t punch my computer in the face.
In a class with no grades, I’ve been looking for a way to evaluate myself. To measure just how far I’d come. I thought it would be in how fast I can build things. Or how many times I can answer questions in lecture. Or how much homework I can complete on time. And I’m sure that for better or worse, those all say something about me. But more telling are those sticky nights, when I’m staring at a browser staring blankly back at me. When I’m out of options. When my demons get rowdy. When I have to decide who I’m going to be.
And I breathe. And I focus. And I don’t punch my computer in the face.