I was looking for a picture of me kickboxing, but I couldn’t find one. I did find this picture my friend Sarah drew, which I love. I’ve linked it to her blog with more of her art – zealousceles.blogspot.com
A long time ago, when I was training in China, I was struggling to learn a form correctly and my master threatened me with no food until I got it right.
This seemed like a terrible idea, I mean, it was hard enough to focus and be physical on the small amount of food (mostly chicken) that we did get, let alone without.
But today this came back to me as I continued a long battle with some code. That maybe he had a point and the answer was that I should lock myself away in my apartment, where there is no food, until I get it right.
(Knowing I was going to be working from home today, I did try to buy some, but it turns out after 3 months in Sydney I didn’t know where the fresh food in Woolworth’s was, not having had occasion to buy any yet.)
I’ve been trying to change something for nearly a week now, and I feel like I’m making very little progress. There’s a monster in our codebase, something we’ve written and rewritten because it deals with this poorly documented API and it’s been a case of look at the documentation, do something, try it, discover it fails on data quality or battery life, think, try again.
So there are a number of things that at the time seemed like good decisions, mostly were good decisions in the context of what we thought we knew, are there, and every time I go to change something, it’s a cascading thing of, oh, then I should change that, and that, and that. And so I cut change after change, making concrete improvements, trying to turn the monster into something that I can operate on.
And I just berate myself – how did I, who am so fanatical about design, who wrote or reviewed every line in this monster, let it get that way? Approaching it with fresh eyes after a break, having figured out this new way to do it (basically, all of the ways we’ve tried so far, in combination. Way more complicated that it should be with a decent API, but que sera sera).
Maybe this is the process, of figuring out how to do something that there’s no API well suited for, no blog posts explaining well, no expert down the hall to ask and review. Maybe this is just the part of what we’re doing that is learning, because everything else is pretty easy and I look at the design, or the feature spec, and know. This is the challenge.
And so I’ll go back to the office and keep poking this thing into shape. I’ll keep making improvements until it’s more of a Stegosaurus than a T-Rex. The compiler won’t hit me with a stick, but it might make me cry. And the determination that got me to master that form (long since forgotten), the thing that pushes me out of bed in time for early morning spin class is the same thing I need here to keep on fighting with it, until it’s tamed and improved.
Becoming a better engineer, becoming a better programmer, I think it’s really about being able to embracing this process of sucking. Of breaking things. Screwing up. Being mistaken. Thinking you’ve discovered all the goddamn ways you can be wrong, and then finding out you were wrong about that, too. And then making it better, whether you rip something out and replace it in a caffeine-fueled epiphany or snip away at it like you’re sculpting a tree.
This time 5 years ago, I was 22 and had just started on my year of being an “international hobo” (aka, fuckwit). And it seems like I did some really random stuff, but for all I joke about how grad school was a terrible life choice, I never feel that year was a waste. I learned so much about humans, about how to have an adventure, but I also learned how to suck.
I say learn how to suck, because it’s something we make such efforts to avoid, especially women. It’s not safe for us to fail, we view failure as a judgement on our innate abilities, not our learned ability to pick ourselves up and keep moving. And you know, that year, I got really, really good at sucking. I lost count of how many times I hit myself, hard, spinning my 5 foot staff. I came in last from climbing the steps, but I went up and down all four times instead of giving up part way through. I concussed myself and ended up in hospital. I concussed myself again (and again, and again, and again), but learned my lesson about the hospital. I wiped out in less dramatic ways. Flew out of my skiis leaving them upright in a ditch. Swam downhill in the sugary power that just kept knocking me over. Broke a ski pole, another, so many I used to buy them 2×2 at a time.
And now, you know, I suck less. I suck less at skiing. Less at kickboxing. And I suck less at sucking at programming.
So I went and lifted weights, and reminded myself that a year ago I couldn’t have lifted those, because my shoulder was such a mess.
And I came home and reminded myself of all the other things that I’m less terrible at now, than I used to be.
And tomorrow, I’ll go to work, and by the end of the day, this bit of code might not be amazing, but it’s going to be less monsterous than it is today.
I’m Cate, I work for Google as a Software Engineer (on mobile Gmail). For fun, I’m a qualified ski instructor and I love to kickbox. I was the Instigator of Awesome at Awesome Ottawa, and I do various things around getting more women into CompSci.
I have a BSc from the University of Edinburgh and some portion of a Masters from the University of Ottawa. I’ve taught programming and developed programming curricula in the UK, US, China and Canada. I was also in IBM’s Extreme Blue program. Coming out this year, I have an academic paper, an educational paper, and an industrial paper.
Credit: xkcd
I got hired by Google because I studied really hard and rocked my interviews. It may be different if you come in not as a new grad, but for me my “personal brand” was negligible in getting the job. Stuff that I’d worked on and written about was a conversation starter for two interviewers (one each round) but that was really the extent of it.
Where it made a difference, is after I started. Perhaps because I’m very open about my research and my interests on my blog, I was connected with someone working on an amazing project when I was training in Mountain View, and my first week in Canada it was suggested I move to that project (which I will do at the end of the month). I also connected with someone at Google whose blog I follow (Jenny Blake – she writes Life After College and has a book of the same name coming out – Amazon) which was great, I just pinged her on Twitter and we had coffee. I think because I’ve been writing about women in tech and posting talks that I give etc on my website, that made it easier for me to get involved in outreach stuff.
And, setting up a team-mate on a date via Twitter certainly piqued the interest of my colleagues! So far it’s going well, although I have no plans to set up an online dating service in my 20% time.
Credit: xkcd
I don’t really like the term “personal branding” – for me, I’m really just myself, only on the internet – which allows me to scale in terms of the volume of interactions. I gave a talk to less than 20 people, but it got posted on Geek Feminism which really increased the reach and that was amazing. Being from the UK and having travelled about a bit, Twitter and my blog help me create, build and maintain more remote relationships.
So, I said that my “personal brand” didn’t help me get the job, although to be fair it has resulted in people pinging me with interview offers, which I haven’t taken up. Actually, I think that depends how you look at it. Does the number of results you get when you search for me help? No. But here’s what did:
Blogging has been tremendously helpful for improving my writing and general communication skills. The guys who started Stack Overflow (Joel on Software/Joel Spolsky and Coding Horror/Jeff Atwood) really think that in order to be a good software engineer you have to be a good writer and I have really come to see their point.
Writing something also serves to improve my own understanding of it. I wrote up interesting pieces of assignments when I was at school, now I try and write up the books I read.
I doubt I would have put myself forward for the Holiday Science Lecture at UO if I hadn’t been blogging, which improved my public speaking no end. Thoughts turn into blog posts which turn into talks, and putting all the talks I give on my blog improves the talk itself (more time thinking about it, feedback), and increases it’s reach.
Doing interesting things makes it easier to have interesting conversations with people. My blog and Twitter have resulted in a number of great experiences. and, having moved to a new city the ease of Twitter for connecting with new people has been really helpful.
Twitter and my RSS reader makes me better informed – I have not found another medium through which I can get such diverse and timely information.
Some advice for getting started on the “virtual” you
Start
Credit: xkcd
This can seem like the hardest part – and I know because I’m trying to start my internal blog right now and I’m completely overwhelmed by what to write. One think I suggest to people thinking of starting up a blog is to try and write 4-8 things and schedule them – that’s your first month’s content.
Keep going
Credit: xkcd
At first Twitter seems like talking to yourself in public. A blog is worse, because the form is longer! I was getting enough out of it that it was worth writing for myself, but now I have a good amount of subscribers and get comments on about half of my posts. I think the thing is to give yourself a realistic schedule and stick to it. I often schedule blog posts in advance, and at the moment I aim for about two posts a week. I also started using Twitter, and eventually had things to say that required more than 140 characters – that’s when I started blogging.
It’s a conversation
Credit: xkcd
I confess – I am a terrible lurker when it comes to blogs. I love Google reader because it’s so fast and I consume massive amounts of content through it – but I don’t click through enough to comment. When it comes to your blog, no-one knows how much you interact with other people’s, but on Twitter the people who are only in it for self-promotion are really, really obvious.
I actually schedule some of my Twitter feed because I tend to consume large amounts of information in one go and I don’t want it to go out all at once and drown people’s streams. For me, Twitter is 95% trying to share stuff that’s interesting and/or informative, and if someone has a question or something worth commenting on, I’ll respond to it. The other 5% is sharing my own blogposts and asking questions myself.
Don’t dismiss other forms
Credit: xkcd
I pinged Jon Skeet – fellow Googler, C# Evil Genius, and #1 on Stack Overflow to ask him about how he built his personal brand. In large part he’s used forums and question answering sites like Stack Overflow (which did help him get a book deal, as well as a job at Google). For me, blog and Twitter has worked to build my presence and share what I’m interested in, but depending what you’re interested in it’s not necessarily the best format.
Be human
Credit: xkcd
I think we all have those “friends” on Facebook who are constantly posting long angsty moans about their life. It’s a primary reason why I rarely use Facebook. People write long angsty blog posts as well, and on Twitter some people I know (and like) in person share such detail about their life that I’ve actually started to dislike them. I’m going to say what everyone says – don’t share too much, don’t expect other people to be interested in every minute detail of your life. But, don’t be a robot – be a human. I balance the stuff I share with bits of my day that I hope are amusing, often stuff that my teammates say to me, for example on my tea consumption, “is there any blood left in your anti-oxidant stream?”, or after starting two small toaster fires that I’m measuring success in a commits to fires ratio. It’s the same on my blog – I write about failing, because I learn so much from it. And there’s a balance, because I don’t want to come across as some kind of fembot, but nor do I want to moan. But sharing my human failures, for example when I dropped out of grad school, revealed so much warmth and such great advice from my audience.
Don’t wait for someone to say, “It’s time for you to have a blog. You have something to say” – I mean, I can tell you that right now, but really you have to convince yourself and believe that you can write something worth sharing, first.
I think this applies to everything. Don’t wait for people to tell you what you get to do, go out and make things happen. (And read What I Wish I Knew When I Was 20, which is where this advice comes from)
2. Fail.
Credit: xkcd
You will write things that no-one will comment on. You may even write things that no-one reads. It’s demoralizing. What I did, was that I got enough out of writing for me that kept me going when no-one was reading, and it was a shock when people started commenting, and emailing me, and sharing what I’d written on Twitter.
Stop caring that no-one will read what you have to say and write it anyway. Write something stupid, and learn to make a better argument next time. Stop worrying about failing and go ahead and fail – it’s not as bad as you imagine, I promise. Sometimes you’ll surprise yourself and succeed, and always you can learn something.
Again, this applies to any number of things. One of the things I love about working at Google is that we embrace failure as a learning experience. We set impossible goals, and fail to reach them – but that’s OK because “Achieving 65% of the impossible is better than 100% of the ordinary” (see this post by Don Dodge). I like that, I am always setting myself impossible goals, I don’t think I know how not to do that. And so, I’m always failing. But what that means is that I’m always learning, and making progress little by little on my impossible goals.
3. Don’t Expect to Learn Everything in School.
Credit: xkcd
Unfortunately, most professors aren’t on Twitter and don’t blog. They may not get what you’re doing and they are probably not going to grade you on it. You have to figure it out, mostly by yourself. Find yourself a network of interesting people on Twitter, and find yourself some interesting blogs to read. Interact with the people you find.
Software development moves fast. At the moment, I code mostly in Javascript and do some CSS – neither of these are things I learned in school. To stay current in our field, we have to keep learning and investing time in personal development. You probably won’t learn how to write a great blog in school. But you also probably won’t learn a fraction of what you need to be a great software engineer, either. The best thing you can learn, is how to keep learning, and teaching yourself, and finding resources that help you progress.
I feel tremendously fortunate that when I write something I’m hesitant to hit “post” on, people leave these amazing comments that make me feel like less of a failure and like whatever it was I wrote, was worth sharing. Having a crisis about not finishing grad school, I wrote Being Human, and then Dropping Out when I came to the conclusion that I can register for another semester at uOttawa this will be the same story, the same crisis, 3 months from now.
Meggin left this comment:
OK, this might be a rambler, but I feel the topic warrants it.
Wednesday night, I was sitting in a bar in San Francisco with a very close friend of mine. It was an important night, as right now she is in surgery having a portion of her breast removed.
Why the heck am I telling you this? On that same day (Wednesday), she shared with me some good news about her work. (She is a scientist for the Google-equivalent of cancer research.) For the past year, she has been managing a team, and been having to put most of her time into the projects under that team. In her heart though, she is a horizontal thinker (incrementalist is another way of seeing it). She doesn’t see herself in one project, but looks across the horizon and sees patterns and relationships.
Her own boss has been encouraging her to move away from this and get more involved with management (as there is serious potential for a directorship in her career path).
But my friend believes full heartedly that she wants ot make strides in science, in her papers, and in looking across the horizon – not in some title that is given to her (and probably with a serious large paycheck).
In the middle of all this crazy going on in her life, the CEO of said major company met with her with a couple of VPs, both of whom want more of her time, and he asked her point blank what she wanted and she said that she wanted to pursue the science, that she had an inkling about certain relationships, and that by dabbling in a range of projects, she would be making strides in some serious stuff.
He agreed that she was making the right choice, and now he is making it happen for her.
You may find that now you need to walk about from your dissertation, as you are still in that discovery period, that time of absorbing all and anything that comes your way. But later in life, when you have accumulated enough of a horizontal view to see a pattern. You will have something truly meaningful to your type of thinking that gets you excited to finish. And really serious people, like CEOs of major companies, will look to you as the real deal (which they probably already have a hunch you are).
Enough said (probably way too much).
I used to know who I was and what I was doing, but somewhere along the way I got lost in details and I forgot. Meggin reminded me, and I can’t thank her enough for that.
I have an overarching theme. And it might not connect what I’ve done enough to make a masters thesis out of it, but it connects it enough for me to make sense of it. Here it is:
How is technology changing the way we interact?
And that means it makes complete sense for me to be interested in programming education – programming is a technology and an interaction, education with technology is another interaction. And as we produce reams of user generated content, we (or companies) need a way to make sense of it. As our interactions take place online and off, trying to find patterns with which to characterize our online interaction types, and extract our online communities is working on that question. I got interested in visualization because I was trying to work on teaching programming in a visual way. The way we run Awesome Ottawa and CompSci Woman, even, leverages this change to create something – a platform, a community, some awesome.
I feel less schizophrenic realizing this, I’m building upon the things I do, just in an incrementalist way. It may not make sense to other people. It may not get me a masters degree. It makes sense to me – and that’s a start.
My boyfriend, ever the geek, describes my crisis as a “resource allocation problem”. It helps me to think less about what I’m failing at and more about what I’m saying yes to as a result of saying no to the thesis. Yes to other projects. Yes to things I’m actually interested in. Yes (maybe) to a better school and a different kind of masters. Yes to the bigger, overarching question.
Cookie Consent
We use cookies to improve your experience on our site. By using our site, you consent to cookies.