I’m officially one month into the online software engineering program at the Flatiron School! It’s tough (really tough)… but I’m still here! I just finished the ‘Intro to Ruby Development’ section and learned step-by-step how to program a game of Tic Tac Toe in the Ruby language. So far I’ve noticed that once I get through the snags I encounter in the labs, I get a fairly comprehensive understanding of the material. When I’m unravelling those knots though, I find myself repeating over and over in my head, ‘Don’t be so damn hard on yourself!’

You see, this is brand new to me. I never touched Ruby until I started at Flatiron. I’ve found that it’s an incredibly user-friendly language, but inevitably (and more frequently than I’d like), I still manage to get lost. It’s really frustrating, and I have to constantly remind myself that it’s okay to get a little off-track. Confusion is part of learning something new, and as a beginner, it’s important to have patience while getting over that learning curve.

Patience is key—and I’ll explain more later—but first I need to give you a little more background about myself. Let’s get in our time machine and go back ten years…

I had just entered Temple University as a freshman with an undeclared major. Although both of my parents were drawn toward STEM-related fields, I decided to forge my own path through the college of Liberal Arts. Since a language was required, I added Spanish to my schedule and ultimately came to love it, declaring Spanish as my major in my third semester. After four years of study and multiple visits to Spanish-speaking countries, I can now say that I’m a fluent speaker.

So what does this have to do with Ruby and the Flatiron program?

As I go through the lessons, I’m drawing a lot of parallels between learning Ruby and learning Spanish. One that keeps jumping out at me is: the little things matter.

If you’re a programmer, I’m sure you’ve been through this at least once before: You’re writing a program and trying to get it to pass your tests but you keep receiving an error message. You try everything you can think of to fix it and the next thing you, know three hours have gone by and you’re still stuck on that one damn test!! Yeah, that was me last Saturday afternoon and I was getting desperate.

Luckily, Flatiron’s platform Learn.co lets you chat live with a technical coach when you get stuck on something—which I probably should have utilized about 30-40 minutes into my struggle instead of driving myself completely insane. I was connected with technical coach James (shout out to James!) and we got to work. He seemed a bit confused because everything looked okay to him, so we tried a few small tweaks at a time to see if we could get the code to pass. In the end, we discovered that I was returning false at the wrong part of the program. If you return false inside an iteration, the method only accepts the first object in your array and ends before iterating through the rest of the objects. In other words, not good.

Screen shot of side-by-side code

Ugh!! After all of that confusion, hard work, and frustration, the end result was switching just two lines to get the program to pass the test. Two lines! That’s it! I laughed at myself, thanked James profusely, and was able to code out the rest of the program on my own to complete the Tic Tac Toe Game Status lab. Again (over a well-deserved beer), I thought to myself: ‘Have patience. You’ll get this down soon.’

This experience reminded me of a common beginner’s mistake with the Spanish language. There are many Spanish-English cognates—which are words that sound very similar because they have the same root origin in Latin (i.e. apartment and apartamento)—and because of this, many beginners will accidentally use the wrong word or make up a new word entirely. For instance, a lot of students mistakenly say “estoy embarazada”, which means “I’m pregnant”, instead of “estoy avergonzada”, which means “I’m embarrassed”. That’s a fun one to explain to a new Spanish speaker. :)

Even changing one letter in one word of a sentence can completely change the meaning of the statement. In a class at Temple, a friend of mine meant to say “No como desayuno si no tengo hambre.” but instead it came out as “No como desayuno si no tengo hombre.” One means “I don’t eat breakfast unless I’m hungry.” the other, “I don’t eat breakfast unless I have a man.” Hmm… we got a good laugh out of that one.

Needless to say, in a learning environment, these little mistakes in Spanish can be a lot funnier than mistakes in Ruby, which tend to be frustrating as all hell. But like I said before, it’s important to have patience with yourself, because if you’re not careful, little mistakes can snowball into bad situations. I’ve gotten lost in both Cuba and Mexico (twice) because of mispronunciation or confusing common words. Those were both frustrating and costly lessons to learn.

Once I reach the more complex labs, I imagine it will be pretty similar, but only on a larger scale so messing up one little bit of code will have greater consequences. Therefore, I’m taking a lesson I learned early on while studying Spanish and applying it here to programming: Be patient. If you pay attention to the little things, you keep them from becoming big problems.