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”
When Jacob Kaplan-Moss said this, it made me reflect on how easy it is to categorize people into polar opposite categories. On my team, some people have strengths in database structures or ruby or testing or JavaScript and weaknesses in other areas. I’ve never thought that having a weakness in any one area made somebody a “worthless use of a seat”. However, it’s easy for my brain to tell me that because I’m not good at all of the things, I don’t fit into the category of an amazing programmer so I must default to the other category.
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.
I listened to the keynote, and I love the message. I felt like my choices were to be an average programmer, or try being a coding QA, which is a rare and useful thing to be, but not an average thing. I felt like average wasn’t an option.
I love what I do, and it fits me better than being a developer, but that “rockstar or waste of seat” choice was what pushed me away from a dev career.
Something that really struck me was at my first programming conference, someone said to me that I must be a rock star developer, and almost implied that because as a woman, if I wasn’t, then I wouldn’t be still in the field. This said to me that men were allowed to be, in the total dichotomy, worthless wastes of seats, but a woman would either get fired or quit.
I didn’t start really thinking about coding, or have side projects outside of work until about a year ago. I really wish we would stop trying to fit people into molds, because with our differences, everything averages out.
Someone at Asynchrony said that to me when I first started, and it still trips me up.
Yeah, I’m still trying to decide if I can be an academic while having a life outside of academia. I hope I can since I like research and teaching, but I’m not willing to do nothing but work all the time because I just like books too much ;-).
Good luck! I trust you’ll find the right balance for you. 🙂
Read widely. Imagination is a superpower, and reading feeds your imagination.
I dread the moment I see the red code on my screen . It is even worse when i do not have the capabilities (which I should have) to understand it. Nonetheless I take help from my colleagues. But I always think less about myself the moment I have to ask help.
It is a long way to go before I understand the red code.
I definitely understand that — I had a hard time asking for help because it makes me feel like I’m exposing my weaknesses to everyone.