I woke up in a cold sweat the other night because I had a dream that I was kicked off my team at work because I wasn’t learning fast enough. This isn’t a once in a lifetime occurrence for me. I’ve had these nightmares in every aspect of my life. Worse, I’ve had these daymares (daydream that’s really awful) immediately after someone says something to me that makes me doubt myself.
A couple months ago, I left my cushy world of iOS development to get on a Ruby team at work. Little did I know, working on a Ruby team really meant that I had to not just learn ruby, but also HTML, CSS, JavasScript, and Rails. When I explain this to people, they’re often shocked that I hadn’t played around with web development stuff on my own time (“didn’t you make your own website when you were a teenager?”, “you mean you used a template for your blog instead of doing it yourself?”). When I was in my iOS bubble, I was spending all of my time just trying to keep up with that so I immediately felt like I was incredibly behind. I remember during my first or second week, I asked someone what a <div> or a <span> was and they looked incredulous and thought I was joking. I know they didn’t intend for it to be mean, but I remember being acutely aware of how stupid I looked just then. I know the difference now, but I’m still so flustered by the experience that I don’t feel confident in my knowledge. I just feel like I’m decades behind everyone else. Why decades? It feels like many of my peers at work have been doing this since they were teenagers or even little kids. I read books, blogged, and instant messaged when I was a teenager — didn’t even know what programming meant.
Every day isn’t awful, don’t get me wrong. I have great days at work where I either know exactly what to do and someone helps me learn the words to get there or I have someone awesome teach me their thought process and lets me type things up to solidify it in my brain. Learning a new programming language is the same as learning a new spoken language. Sometimes I’ll say something in Spanish that roughly translates to “I desire to travel to a place that contains papers with words on them and is quiet” instead of just plainly saying, “I want to go to the library”. One is more verbose and roundabout and can be optimized, but they both reach a similar end goal. It’s nice to work with people who can guide you towards the word library but at the same time, it’s also completely fine with me to work with someone and get to “I want to go to a place with books” (more optimized but still room for improvement or arguably better because it’s not super specific).
Today, I had one of those dreams again. I’m giving a talk tomorrow on my path towards becoming a software developer. In the dream, I was giving my talk and someone asked me why I was even speaking because I wasn’t an amazing ruby developer. Ever since I woke up, I’ve had this bad little monster in my head that kept chanting “you’re not even average.”
Luckily for me, I follow a lot of cool people on Twitter and my feed was abuzz with quotes from Jacob Kaplan-Moss’s keynote at Pycon this morning. (Side note: I went to Pycon two years ago and it was phenomenal! I am making it a personal goal this year to attend Pycon 2016).
One of the first things he starts out by saying is that he’s an “average programmer.” He talked about how when he walked up on the stage, his physical appearance fit the bill of the stereotypical “rockstar programmers” and so no one would suspect otherwise. This struck a chord with me because I often get asked, “are you really a programmer?”, and to me, that feels light-years away from anyone assuming that I was a “rockstar programmer” because you didn’t even expect me to be programming in the first place!
“The only option to be amazing or terrible is that you have to be passionate about your career — you have to think about programming every moment of your life. If you take your eye off of it, you slide back from amazing to terrible.”
I am very passionate about my career. I want to create the best product that I can when I am at work. I want to continuously learn. However, my personality doesn’t fit the mold of living, eating, and breathing programming. I bake, paint, take swim lessons, host parties, play board games, read books and comics, etc. when I am home from work. I was burnt out on grad school because I felt guilty for not working at all times, and I refuse to be burnt out on software development by revolving my life around it. Being a programmer is just part of who I am — and that’s legitimate.
“We bucket everyone into an amazing programmer or a worthless use of a seat”
It was nice to hear someone say that there’s a bell curve of programmers and that most people are average. That it was okay to be average. Today, that makes me feel better.