I’ve blathered on here several times about learning to code. I first attended a Rails Girls workshop back in the fall and wasn’t sure what I wanted to do with it. And then in the new year, I set some goals for myself and vowed to work on learning for its own sake. Well, somewhat to my own surprise, my experience with coding has taken on a life of its own! At the end of January, the Rails Girls workshop expanded into a monthly meetup, which I’ve been attending. I’ll admit, my entrance into the world of programmers has been eased dramatically by the fact that I am married to a full-time developer who knows a lot of people. (Thus, by proxy, I know a lot of people, too.) So even at the first meetup, I had a small cadre of people I knew who made it much less intimidating to walk into the room. For each meetup, we have a homework assignment to prepare and then often a presentation on a related topic before we share our solutions to the homework.
I’ve been surprised by the reaction of “lay” people (read: non-developers) when they find out that I am learning to code. I guess by being around so many smart programmers I’ve become inoculated to the foreignness that many people associate with computers. Plus, I’ve realized that I’ve picked up more than I knew from just asking Andy about what he worked on each day and from overhearing him practice conference talks. AND, I think I also retained some fundamentals from my two computer science classes in college. So every time someone new finds out that I’m learning Ruby, they’re astonished and impressed and it sort of makes me feel like a bad ass.
Honestly, I am definitely far from an awesome programmer at this point. As Andy would say, even experienced developers always have things they can learn, and I have even more than that. I’m still sort of learning how to even learn, if that makes any sense. I have access to the documentation of the Ruby language, and even that doesn’t always make sense to me. But as I hoped, learning to code has given Andy and me a great outlet for spending time together. He thrives on teaching me things and is even prouder of me than I am of myself when I catch on to something. I sometimes feel a bit like I am cheating because by the time I share my homework at the Rails Girls meetup I have already had help refining it (or maybe even approaching it in the first place)!
The homework assignments for Rails Girls have been escalating in difficulty and becoming more and more like real-world problems a developer-by-trade might actually face. This past Saturday, Andy and I began tackling the most recent assignment: an open-ended task of creating a to-do list in Ruby, which will eventually be translated into a Rails app (meaning something that can actually be on the internet!).
Working on this one project alone has introduced me to numerous topics, which was exciting! Until now, I’ve just been writing Ruby code to run in my command line, but with this project I started interacting with RSpec (a testing framework useful for Test Driven Development), using git to start pushing my work to GitHub (sort of social networking for code), and reading up on a lot of new Ruby concepts. Whew! By myself this would have been totally overwhelming, and I have unending respect for the people who can take a book or a website and learn on their own. But together with Andy, it was a blast! I think my next challenge will be getting over bumps in the road without turning to him for a hint or explanation, but I’ll either get there in time or I won’t. And if I never get there, I’ve still learned a lot and achieved a long-standing goal of having a shared hobby with my husband!
If you’re interested in seeing what Ruby looks like, or exploring code for the first time, TryRuby.org is a fun resource. It allows you to type simple commands right in the web browser and see them run immediately. And if you’re feeling a little more adventurous, I learned a lot from Learn Ruby the Hard Way and from solving Project Euler problems using Ruby.