Over the past year or so, something that should have been obvious really solidified for me: I love languages.
When I was around seven or eight, I started my first class in a local summer school. I hated it at the time. The teacher was trying some sort of immersion/Rosetta Stone approach where you learn by only speaking French and using pictures. I remember coming home and when my mom asked how it went, I said, “It was stupid, she just kept talking in French.”
“Aren’t you learning French though?” my mom laughed.
“Yeah, but I don’t know it yet – how can I learn?!” I was adamant. And yet, in spite of my initial frustrations, I kept coming back to French over time until I started my first real language class in middle school and just kept going.
But as much as I love learning languages, there have been a handful of languages that I felt like I just couldn’t wrap my head around for the longest time. Namely, computer languages. Ever since I started working in tech, I’ve wanted to learn how to develop. It’s been on pretty much every goals list that I’ve written since 2011.
When I was a kid – probably around the same time that I took that “stupid” French class – I remember being introduced to a new computer program at school. Our computer lab was located in the school’s library and I sat down in front of that big, white monstrosity that was computers in the 1990’s where my teacher had already opened up the program.
It was a white screen with a little, colorful turtle on it and a console to input directions. We had one example on screen already and were instructed to simply make the turtle move. This was my first experience with that wall. I could not do it and I could not figure it out for the life of me. It was so frustrating!
Last year, in an Intro to Programming Nanodegree, I figured out that that program was trying to teach us how to write python – the one and only programming language that I’ve actually been able to work through since I’ve started a more concerted effort to learn. In the course, we used that same turtle and, finally – roughly 25 years later – I got that damn thing to move. And I understood how and why I was doing it!
I swear that was the breakthrough I needed to confirm to myself that I can actually learn this. (That, and I have an in-house mentor who can point me towards where to look for things when I get stuck.) At the same time, I also started to think of learning python as learning a language. I’m talking to the computer. We don’t think or speak in the same way – the computer has its own culture. (One that is very, very, very literal and, well, computer-like.)
Lately, when I get an error message or get stuck on a problem, instead of just jumping into Google to try to figure it out, I stop to think, “What am I trying to ask the computer? And what is it trying to tell me?” It sounds ridiculous, but as someone who is much more focused on language and meaning, it helps me to contextualize development in a way that makes more sense to me. A piece that I’d been missing for a really long time.
Since January, I’ve had two main goals I’m working on this year when it comes to languages: taking my CILS (Certificazione di Italiano come Lingua Straniera) exam in Italian to jump start my Italian speaking/comprehension which has suffered since learning Portuguese and to work through the Full Stack developer Nanodegree, which focuses on more python, plus working with databases and APIs.
It’s annoying because some days I feel like I’m just banging my head against the wall. (Why can’t I just have hobbies I’m good at?) But then there comes the time when I break through. The code works. The Italian flows off my tongue. (Probably not at the same time.) And I’m pleased with my work, even if it’s hard – it’s forcing me to speak more kindly to myself and celebrate small victories when they happen. A nice side effect.