Last time I blogged I wrote about how programming was something that comes unnaturally to me. The post seemed to resonate with lots of people — several reached out to share their own experiences, which was extremely encouraging. If you ever want to chat to me about the id, the ego, the superego, and programming, by all means do!
What I didn’t really explain very well in that blog post is how I get things done, on a day-to-day basis, if the stuff that I’m doing doesn’t come to me naturally. The answer, simply, is to get used to being uncomfortable.
Doing things that you’re not naturally great at is uncomfortable. Every step of learning is a struggle and you’re constantly battling your own limitations. The most common feeling I have is that I can recognise good code when I see it, but I’m damned if I can implement those same techniques in my own work. I guess it’s like any language — often learners are able to read and listen a lot better than they can speak and write. Unfortunately for me, Spanish verb conjugations make a lot more sense to me than programming design patterns.
It’s okay though. I’m not an expert at this by any means, but I’m learning to embrace the discomfort and get shit done. When I go to work, or sit down to do some coding on a personal project, I know that I’m going to experience a lot of frustration. I know that whatever I do, I’m going to run into things that I don’t understand. Or, more likely (and more frustratingly), I’ll encounter concepts that I almost understand, but are just outside my grasp enough that I struggle to recreate what I’m seeing.
I also know that I am going to experience fear. The main fear I experience when starting a project is that, obviously, I’m not going to be able to do it. This is a trap! If I let this fear put me off, I can dither for weeks before trying anything. It’s a silly, unfounded, and generally unhelpful fear that can stall my productivity for too long.
To give you an example: for several weeks I had been putting off writing the code for API authentication in my personal project Gifery. It’s something I hadn’t done before, didn’t really understand, and didn’t really know who to consult about. I knew that it would be a frustrating process and I just wanted it to be magically done for me. So… I didn’t do it. For weeks. I let my project stagnate, and the guilt build up as my Github streak floundered and faded.
Finally, yesterday, while lying in bed with a terrible hangover and gassy cat (my Sundays are generally this glamorous, yes), I decided just to get that shit done. I found some resources online, I trialled and I errored for an hour or two. Surprisingly, it works! But even if I hadn’t reached working code, I shouldn’t have let that stop me.
Too often I’m afraid to program because my work won’t be ‘perfect’. I’m scared that people will tell me that I’m doing everything wrong, that I’m a terrible programmer, and that I should go back to my books and verb conjugations.
The thing is, though, coding is not a competition. I know it feels like it, most of the time. It is so easy to compare yourself to others who are smarter, quicker, and more productive to you — especially with everyone blogging, sharing their projects on Github, speaking at conferences, and tweeting about all of the above. But comparison is the thief of joy, and when I start comparing myself to others I can easily spiral into a grumpy and counter-productive mood.
You know where this advice is leading: compare yourself to your past self, celebrate your own successes, and learn everything you can from others. You’ve heard it before, countless times. But that shit is hard. When you’re deep in a period of discomfort, you feel like everything you do is sub-par, and that your successes are puny, it is hard to be happy for other people and to focus on your own growth.
I don’t really have any helpful advice for you on how to work through that. But just try to remember these things:
If your code doesn’t work, it’s okay. You probably learned something along the way, right?
If your code is terrible, it’s okay. During the process, you probably ran into a whole bunch of problems, and you’ll know how to do things different next time, right?
If you’re afraid to start something because you don’t think you can do it, just start it, okay? If you need to, set a timer for an hour, or even just half an hour, and see how far you get. You’ll figure things out as you go. And if you don’t, see the first point above.
If you’re trying, you are learning. If you’re learning, you are growing. The only way to get better is to keep on learning and growing. Amazing skills aren’t just going to magically manifest while you sleep. You’re going to have to struggle onwards. I’m sorry, that sucks. I don’t make the rules, and all I can offer is solidarity.
For most of my life I’ve avoided doing things that don’t come naturally to me.
I quit maths at school after gaining University Entrance, because I was only getting Merits. Same for all the sciences. I wasn’t any good at playing the flute, so that ended soon after it began (my mother, thankfully, had the foresight to rent an instrument rather than to buy one). And of course, not being athletically gifted, or a good team player, I stopped playing netball as soon as my mother no longer insisted, and dropped P.E. from my curriculum as soon as the school would let me.
I dropped out of university papers that weren’t clicking with me so that I could focus on the ones I knew were easy As. I even spent most of my education working towards being a teacher, because I knew that I would be good at it. I really didn’t give it much more thought than that.
It’s curious to me, then, that as a teenager I picked up coding as a hobby, continued to tinker with it through the years, and eventually made it my career. Programming is not something that comes naturally to me, but unlike year 12 Chemistry class, I love doing it.
Programming isn’t easy for me. It doesn’t just ‘click’ like it does for some people. The concepts are hard for me to wrap my head around and sometimes it’s difficult for me to process and explain my own thought processes around code. Sometimes it’s like a deeper level of my mind understands, but I can’t quite access it right now. If you’re pair programming with me, you’ll often hear me say infuriating things like ‘I feel like it’s something to do with this function that’s being called on line 12’. More often than not, I have feelings about code, rather than logical, coherent arguments.
My ineptitude at programming is very clear in the way I approach it. If you ask me to write 3000 words on Matisse’s ‘La Danse’, and give me a deadline, I’ll wait until the day before the deadline until I finally sit down to write. When I do write, the words will mostly flow fluently from my mind to the screen, and I’ll often need to edit my thoughts down to fit the word limit. I won’t really pay much attention to what I’m doing — It’ll just sort of happen, and to be honest, I probably didn’t learn all that much.
If you ask me to build an app to a set of specifications, though, I’ll start almost immediately. I’ll be anxious about the deadline, and nervous that I won’t get the work done. I’ll code for hours, refactor, and pay very careful attention to what I’m doing. I’ll be constantly worried that what I’m doing is not good enough, even if it gets the job done. In the process, I’ll make endless mistakes. I’ll break everything, and fix it again. I’ll be mostly unhappy with the finished code, but I’ll be thrilled with all the learning I’ve done in the process.
Programming challenges me in ways that I’ve never really chosen to challenge myself before, and the rewards are so exciting that the struggle always seems worth it, even when I’m frustrated by the poor quality of what I’ve written.* Unlike P.E. class, where the reward (or so it seemed to my disgruntled teenage self) was a gloriously red face, sweat, and embarrassment in front of my peers, the reward for writing some functional code is pretty powerful: the immense satisfaction of knowing that you made a computer do the thing you wanted it to do. It’s as close to being a witch as I’ll probably ever get, and it’s one of the best feelings in the world.
There’s probably several lessons in here for my teenaged self, but I guess the main thing I’ve learned is that challenging myself with something I love to do, but find difficult, makes for a much more meaningful existence than effortlessly doing the things I’m good at without struggle.
*Having only recently started pursuing programming seriously, I’m still in ‘the gap‘ — I can recognise good code, but rarely can I write it. One day.
I’ve been experiencing a lot of anxiety lately about my life as a developer. The narrative will be familiar to anyone who’s ever pursued programming in a meaningful way; even if you write code every day, and learn something new every day, the nagging feelings of inadequacy are hard to escape.
It’s easy to be overwhelmed by the depth and breadth of material out there. There are hundreds of programming languages, libraries, frameworks, design patterns, and philosophies, all of which have their own associated jargon, preachers, and naysayers.
Similarly, there’s your peers, all of whom seem to know and understand more than you. You know that feeling you get when you browse Instagram and all your friends are in exotic places, meditating and/or eating gelato, and you just have to close the damn app before you work yourself into an envious knot? That’s how I feel about programmers most of the time.
Of course, as Teddy Roosevelt said, ‘Comparison is the thief of joy’.* I know that I should stop comparing myself with others and start comparing myself with myself. Of course, that only works if my rate of development is ‘satisfactory’. The problem is that I am the one who defines exactly what satisfactory progress looks like, and I tend to be pretty hard on myself.
This isn’t the first time I’ve written about Imposter Syndrome, and it likely won’t be the last. Like anyone who experiences Imposter Syndrome, I have a hard time internalising my own successes, which makes tracking my own progress difficult. If you have strategies for this, I am completely open to suggestion. Generally, though, I try to learn something new every day, and apply it to my daily programming.
In a day-to-day sense, though, what does that mean? It varies. It depends on my mood, energy levels, and state of intoxication (I’m kidding, somewhat). Some days progress means going to a MeetUp and chatting with other devs. Other days it’s as trivial as learning a new zsh command. Sometimes it’s blogging about my struggles and hoping that someone else out there understands. Occasionally, I’ll reflect upon where I was three months ago and try to consider my progress… this strategy generally doesn’t work, though (see previous paragraph re: internalising success).
A few things I’ve found helpful:
Setting a focus
At the moment my focusses are Rails APIs and React. This happened quite organically when I picked up a Rails API/React project at work, while also working on a Rails API for my own project Gifery. When your peers are all gabbing about Ember, Swift, functional reactive programming, and Node.js, it can be easy to feel like an idiot for knowing next-to-nothing about those things. In the midst of that panic, reminding yourself of your focus can be a useful centering technique.
Reading technical books
You probably know that I’m a champion reader. Recently I’ve put my sci-fi and pop-sci mainstays aside in favour of programming books. If that sounds desperately dull to you, let me reassure you that I love reading them. The trick is absorb and understand what you can, and let the other noise wash over you — it’ll eventually make sense later.
Watching programming videos
If you’re a visual learner, watching others code can be a useful way to absorb some knowledge in your downtime. Embarrassing confession: I’ve been glad lately when a TV show I watch has either ended or turned so crap that I don’t bother to watch it anymore, thus removing that obligation from my life and allowing me more time to watch programming videos. Yes, obligation. *hangs head in shame*
Learning to love the theory
I’ve always been a very practical programmer. As a self-taught php gal turned bootcamp graduate, my focus has always been on producing code that works. Which is good, but I can definitely feel my lack of theoretical knowledge creeping up on me. Embarrassingly, I’ve avoided doing much about this for several years because… well, no real excuse except fear of living up to my own expectations, I guess. Which, again, is silly. So I’m making an effort now to read more computer science theory. If you have recommendations, tweet them at me.
This one almost goes without saying. You know the old theory ‘See one, do one, teach one‘? It works. In my spare time, I do a bit of volunteering for Railsn00bs. The other week, I did some live code for group and I was a lot more nervous than usual as the topic of the session was rspec, something I’m…not great at. I fucked up several parts of the presentation and felt like a total idiot while doing it. But, since then, my rspec has gotten a lot better. In the past two weeks I’ve written over 50 rspec tests, and I keep referring back to the material I prepared for Railsn00bs. We’ll call that a win.
*was anyone else under the false assumption that Eleanor Roosevelt said that? The patriarchy wins again.
It’s 2015 and my world is dominated by the web. I spend most of my work day creating the web (sounds more impressive than it is), and a significant chunk of spare time consuming the web. I’m a complete nerd about web tools (ask me about Pocket, Trello, Evernote, and Ermagerhd Sterff). Yet, whenever I come across an amusing gif, I right-click and save it to a folder on my hard drive named ‘Gifs’ — like some sort of cavewoman. So does everyone else I know.
There’s got to be a better way!
So I’m working on Gifery. Gifery is a Rails app and Chrome extension (Firefox support planned for when I can be bothered) that will allow users to save and tag gifs to their personal gif library.
Through the Chrome extension, users will be able to search through their gif library and automatically insert their chosen gif into their Facebook status, Reddit post, etc.
It’s basically Pocket for gifs.
Now, to be quite honest, if there’s something similar out there, I don’t want to know about it. Okay, there is something similar out there (in fact, it’s identical to what I want to do. Fuck). But that’s beside the point.
Where is Gifery at the moment? Well, it kinda-sorta works. I can browse the web, right-click any Gif, and save it to my library. But…I’m yet to implement tagging, and frankly I’m avoiding the whole authentication thing until I can dedicate a few good hours to it. I’d also like to create some views for the Chrome extension (similar to Evernote’s web clipper) that will allow full access to Gifery without leaving the tab you’re on.
The greater challenge here really isn’t the code — it’s all basic, bread-and-butter sort of stuff that I’m writing. The challenge is motivating myself to work on a personal project outside of work, figuring out what to work on next, and exploring ideas.
The even greater challenge is overcoming my own insecurities and putting my code, and my ideas out there in the world. You’ll often hear me refer to Gifery as ‘a silly project’. I’ll call my code ‘crap’, and I’ll emphatically tell you that it’s nothing that people haven’t done before. I should probably stop doing all of those things. Whenever I feel like that, I should probably refer back to the immense wisdom of Ira Glass:
All of us who do creative work, we get into it because we have good taste. But it’s like there is this gap. For the first couple years that you’re making stuff, what you’re making isn’t so good. It’s not that great. It’s trying to be good, it has ambition to be good, but it’s not that good.
But your taste, the thing that got you into the game, is still killer. And your taste is good enough that you can tell that what you’re making is kind of a disappointment to you. A lot of people never get past that phase. They quit.
All of those insecurities, ultimately, don’t matter. The point is, I’m working on something, and it kinda works. I’m learning, which is the best feeling in the world. And the stuff that I’m learning is making me better at my job, a better developer, and a more productive person all round.
It’s been well over a year since I’ve touched this blog. Oops! Oh well. Fuck it. Here’s a few things I’ve been enjoying lately:
The fantastic Sarah Mei gives great advice on pairing with junior developers.
I love Model View Culture, but its founder Shanley Kane is…enigmatic at best. Elizabeth Spiers interviewed Kane, and discusses gender in the tech world.
Speaking of Model View Culture, here’s my two favourite articles from the mag: Stop Acting So Surprised: how microaggressions enforce stereotypes in tech and Programmer Legitimacy: Earned, Bought, or Borrowed?
From Wired: The Pro Dumpster Diver Who’s Making Thousands Off America’s Biggest Retailers
The Oral History of ‘Bring it On’ – Anyone else still remember the entire opening cheer? Yeah, you do.
Warren Buffett’s Family Secretly Funded a Birth Control Revolution. See also: IUDs are amazing.
Gorilla Vs Bear’s Best of 2015 (so far) playlist is a decent listen. As is Glass Animals’ ZABA
If you like hip hop, data, and linguistics, this post is for you: The Largest Vocabulary in Hip Hop
♫ I’ve Been Thinking by Handsome Boy Modelling School has been on repeat lately.
Gabourey Sibide’s speech on self-confidence is amazing. Funny, bittersweet, and insightful.
I just forgot for a moment that my entire class hated me. I had zero friends from the fourth grade to the sixth grade. Who the hell was I baking cookies for? I really got so excited to bake that I had forgotten that everyone hated my guts. Why didn’t they like me? I was fat, yes. I had darker skin and weird hair, yes. But the truth is, this isn’t a story about bulling, or color, or weight. They hated me because… I was an asshole!
How to restart a shitty day
Teehee. System of a Downton Abbey by @Jimllpaintit
A really well-researched piece about urban cycling on Medium.
If you’re learning French and are looking for a more immersive experience, check out Night Walk by Google, a guided tour of Marseille (in French or English).
Fans of Mary Roach <3 should read this interview with her on Mental Floss.
Hilarious, amazing photos. Single Woman Spends 14 Years with Mannequin Family to Make a Point
And finally, the Best Cat Video Ever.
Maturation has been on my mind a lot lately. No surprise, I suppose, as I’m a 23-year-old introvert. I spend a lot of time inside my own mind, which can be wonderful, terrifying, and confusing.
Occasionally, but with increasing frequency (relative to my professional success), I’ve been dealing with bouts of impostor syndrome.
Impostor syndrome is the name for that horrible set of feelings and thoughts that nags at you, telling you that you’re not good enough. None of your successes have really been earned! You just got there through dumb luck and bullshit, and soon someone is going to find out that you’re a fraud. YOU SUCK.
Pleasant voice, isn’t it?
I’m self-employed, and I have no formal training in my area. I’m one of those weirdos who turned my hobby into my job. Most of the time, I love it. But as the projects get bigger and bigger, and the stakes get higher (financial loss, professional ruin), the nagging voice in my head gets louder and louder. Because my degree is in a totally unrelated field, I can’t even calm myself down by pointing at the degree until the voice shuts up.
A quick browse of the internet shows a general chorus of folks telling you to
1. Take note of those feelings, and observe them. Check in with reality and realise that you are genuinely successful and doing your best.
2. Make a list of your achievements to refer to.
3. Realise that everyone is just making it up as they go along.
But there’s one other thing that you can do to take control of impostor syndrome. Acknowledge the fear, and do something about it.
For me, impostor syndrome rises out of the murk of fear. I am terrified that I will fuck up a client’s project. I am worried that I will never be a great developer. I am petrified that my skills are not good enough. To make the fear go away, I take control the best way I know how — professional development.
I’m always learning — new coding languages, new platforms, new ways of doing things… and when I learn, and I become more confident in my skills, the impostor syndrome melts away.
Suddenly, everything is okay again because I’ve taken control.
Try it next time you feel overwhelmed by nagging and complex feelings of ineptitude. If nothing else, you’ll learn something new.
Extra for experts: A Year of Living Academically gives tips on dealing with Impostor Syndrome in academia.
I’ve been under a fair bit of stress lately. Nearly a year into self-employment, work has become steadier, sometimes more than steady. Although I love it, I’ve finally come to understand why people yearn to meditate. With my mind racing with mostly unproductive worries and nags, I’ve been thinking that I should try mediation to calm the tumult and find ‘flow’ again.
The problem has been finding a guide to meditation that isn’t complete granola claptrap. I loaded Eckhart Tolle’s The Power of Now onto my Kindle but gave up almost immediately. His meanings were almost completely opaque to me, and I didn’t have to fortitude to stick through it. So when Dan Harris popped up on The Colbert Report (where he was a more eloquent guest than most on the show) to promote his book 10% Happier, I figured I’d give it a try.
Writing the above paragraphs, I’ve come to appreciate Dan Harris’ book a little bit more. It’s hard to write about mediation without sounding like a complete asshole. Dan gave it a fair shot, and his book was useful, though I never felt entirely compelled by his voice.
Journalist/News Anchor, extrovert, and work-a-holic Dan Harris becomes intrigued by meditation, and seeks to cut through the hippy-dippy bullshit in search of something more practical that he can apply to his daily life. He journeys, he stumbles, but eventually manages to create a mediation practice that fits within, and enhances his life. He says it makes him ‘about 10% happier’.
What I liked
This isn’t a life-hacking book. I was afraid that I was in for another Tim Ferris wank-fest, but I was pleasantly surprised by Harris’ respect for the subject matter. Although Harris doesn’t become a Buddhist, he explores Buddhism, and the role of meditation therein with care, and ultimately decides that while the spiritual aspect of Buddhism isn’t for him, the mechanics of mediation are useful to him. From what I know of Buddhism as a whole, this is absolutely kosher (though correct me if I’m wrong).
I like that Harris clung to his misgivings about Eckhart Tolle (whom he finds a bit too whack-a-doodle) and Deepak Chopra (whom he considers to be insincere), and sought meditation practitioners and teachers whose practise is more deeply rooted in ‘the real world’. In his words:
“After months of swimming against the riptide of bathos and bullshit peddled by the self-help subculture, it was phenomenally refreshing to see the ego depicted with wry wit.”
He frequently mentions that meditation has a terrible marketing issue in that its most vocal advocates are a bit too crunchy and/or otherworldly for the mainstream. He suggests several works for further reading which are rooted in science rather than mysticism, for folks who would prefer to read about meditation from that viewpoint.
I also found the chapter on ‘hiding the zen’ to be useful. Although I’m blogging about it, one’s self-help forays aren’t always what you’d like discussed in the public sphere. It’s nice to be able to slip under the radar as a meditator without showing your ‘woo woo-ness’ in public.
What I didn’t like
I’ll be honest, Harris is not someone I’d like to hang out with. While I enjoyed his journey from bro-ish asshole to a more self-aware being, I couldn’t really relate on a personal level. Honestly, even a redeemed Harris seems like a bit of an asshole to me.
I also wasn’t too interested in the extensive personal narrative. While I appreciate it was important to illustrate his journey, I believe it could have been edited more thoroughly. As a non-USA reader, I had never heard of the guy, and don’t really care about the internal politics of USA news networks.
Moreover, Harris’ writing is serviceable, but his forays into poetic description most often fall flat. Take this one, for example:
“With the Klonopin on board you could have marched an army of crazed chimps armed with nunchucks and ninja stars into my apartment and I would have remained calm.”
His asides often devolve to a Barney Stinson meets College Bro level of sophistication
“The real mindfuck, though, was this: almost as soon as he said something brilliant, he would say something else that was totally ridiculous”
While other paragraphs head almost into (the much maligned) Eckhart Tolle territory — behold:
“Failure to recognize thoughts for what they are — quantum bursts of psychic energy that exist solely in your head — is primordial human error”
Harris is very much an extrovert. Throughout the book I found myself thinking that although I have never really meditated, I have already mastered some of the techniques he mentions. I think it comes down to the fact that I am an introvert and am very comfortable within my own mind — I know how to observe my thoughts and emotions and ‘lean in’ to them, responding rather than reacting. I get the sense that for an extrovert, the inner mind can be a scary and alien landscape, and that a large part of Harris’ journey is simply getting to know his inner mind.
Overall, this book was a useful start for my foray into meditation, though I’ll need to do a lot more reading, I think. This is the book for the everyman, and I’d like to gain a more academic insight.
While the tone was a bit too alpha-male and bro-ish for me, I appreciated the practical look at meditation.
Bonus points for a relatively obscure Simpsons reference.
Simplicity — the one-word answer to many of life’s problems
I’m currently experiencing a bit of internet malaise. Here’s five ways to avoid it.
So, so right. The seven deadly sins of freelancing.
Reuters has done an extensive and intensive investigation into the failed adoptions of US parents. What happens to the unwanted children? This five-part longread is absolutely riveting. Seriously, skip Breaking Bad tonight and read this instead.
14 weird reasons you’re not dead yet. In fact, Slate’s entire series on longevity is pretty damn interesting.
What Is Ugly? A New Exhibit Showcases The Diversity Of The Human Form
I’m somewhat torn between thoroughly researching our trip to Indonesia, or taking the que sera sera approach. I sometimes wonder if I would have enjoyed my time in India more had I been more prepared. Here’s some thoughts on trip planning.
This lady made a Feminist Cards Against Humanity.
Gender equity at Harvard Business School
What have you been reading lately? I’m quite enjoying the sexy decadence of Valley of the Dolls.
Today was a good day. I did some web design at the Newtown Library and went for a wander through the town. I spotted this ‘Before I Die’ installation on Wilson Street, just opposite my much-beloved Moshims. A little further down the road, on the window of a vacant building, I spied some interesting post-its. I love my neighbourhood.
(click to make big)
Feel free to use these photos, just let me know if you do!
Have you seen any interesting street art lately?