Disclaimer: I originally wrote this post to give as a lightning talk at RubyConf 2013. I signed up a little too late and there wasn’t time for me to give it, so I figured it would make a good blog post.
Hi my name is Victoria Friedman, and I am a very new member of the Ruby community. I’ve been programming for less than a year. Seriously, last January I made my brother spend a good 30 minutes explaining absolute versus relative paths to me. So how did I end up here?
I didn’t come to Ruby from a CS background, I didn’t grow up taking apart the toaster oven like my older brother, instead I wrote poems and drew pictures that my mom turned into postcards. I was an English major at a liberal arts college in TN and wanted to be a writer. So programming?
Last February I started a 12 week intensive course in ruby and rails in New York City called the Flatiron School. And now I’m a rails developer at Time.
For those of you that knew from an early age that programming was for you, I applaud you. You’re so lucky you found your path in life early on. I on the other hand, hit my post-grad quarter life crisis SO hard. Seriously there wasn’t something I didn’t try: coaching, writing, fashion, pastry school. Been there, done that. So I came from the most non-traditional background. And the programming way of thinking was not my specialty.
People tend to stick to things they’re inheritely good at. I hate things I’m bad at, which is why I don’t attempt to paint portraits, or write short fiction stories, or play tennis. I’m bad at it. I’m sure I could learn, but what’s the fun in sucking so badly at something? It’s demoralizing. The biggest shot to the ego. Especially when you’re starting “late in life”
Progamming is HARD. it is the hardest thing I have ever tried to do in my entire life. Steve Klabnik came and talked to my class at the Flatiron School and I think he described it in the best way I’ve ever heard “when you’re writing code, you’re fixing things that are broken, when it’s fixed, you stop. So programming is just like banging your head against a wall, it feels really good when you stop”
Along with learning to code, and acquiring a job, The Flatiron School really taught me how to check my ego. And really for the benefit of myself.
The advice I tell anyone learning to code, especially people going through programs like mine, is to not be afraid to admit when you don’t know something. Bloomberg will halt a meeting and ask what a word means if someone uses a word he doesn’t know. I am not nearly as influential as Bloomberg. So why should I be afraid to admit that I hadn’t seen a lot (if not most) of the metaprogramming examples Steve Harms used in his talk earlier today, and that I had to google what TTL meant yesterday. If you don’t ask, you’ll never know. You will never learn it unless you can admit you don’t know it.
When you learn to code, you spend a lot of time in “the fog”, to quote my teacher from Flatiron, but the more you use something, the more you understand it. I didn’t think I understood iteration until I realized I was using the each method correctly. I came out of the fog. Over the last 9 months in my learning to code adventures, I’ve continued to dip into the fog, and then come back out. But what makes it so great is when the lights come on, and the best part about it is you can actually demostrate it. You can build something that didn’t previously exist.
Last week, I started trying to fix a bug at work…and then this week, I was still trying to fix the same bug. I spent FIVE DAYS on the same bug. And then I met a friend after work, and he was able to help me fix it in 25 minutes. So why didn’t that make me want to cry? because I’ve been doing this for nine months, and he’s been coding in ruby for 4 years and that doesn’t make him smarter than me, or better than me, or cooler than me. Also he couldn’t fully explain why what we did fixed the bug. But I met someone here at Rubyconf who could. And now I can go back to the city and explain to my friend.
And that’s the beauty of the tech industry. No one can ever know everything there is to know about everything. Somewhere, there is someone that knows more about something than you do, or can do it better. And isn’t that the entire point of open source projects in the first place? And blogs and helping each other.