“Dude, sucking at sumthin’ is the first step towards being sorta good at something.” - Jake the Dog, Adventure Time

I’ve recently started keeping a list of technical things I would like to know things about. This currently takes the form of a single ‘note’ in the Notes app on my iPhone. There’s no criteria for the size of the task (‘Celery in depth’ is in there, but so is ‘Rust’). The beauty of it is in its simplicity - I’ve tried post-it notes before (not helpful when out of my home for a few days), Trello (close - but slightly too many constraints) and a physical book (great when I was a student - but let’s face it, my phone is closer now). As someone who has tried every productivity hack under the sun (please don’t talk to me about GTD, bullet journalling or the pomodoro technique), I’ve been surprised by how well it is working. It’s easy to add to, and, when I’ve got a couple of hours free, it’s very easy to pick something up that seems interesting at that moment.

Around a year ago I started dancing Blues. It is a very relaxed dance and I am not a very relaxed person. I found that I was having to force myself to forget everything about my body and how to move that I’d learnt though years of yoga classes. I’m a little better now, but my main takeaway from the experience is that it is incredibly liberating to be bad at something in public.

As a software engineer it seems more difficult. It’s more difficult to say ‘I don’t know’. This seems to exist regardless of level. Bootcamps tell people to use their GitHub profiles as their portfolio, so there is pressure for them to seem polished. Many of us use the same GH account for ‘professional’ work as ‘personal’ work. We have the ‘not a question, just a comment’ crowd at conferences that often feel like they are there to undermine the speaker’s work. The Stack Overflow developer survey notes that 66% of developers think they are ‘above average’ at what they do, and we’re often told that the rest of us probably have imposter syndrome.

There should be joy in the process of learning.

Which is why I’ve started uploading a lot more of my learning to my GitHub account (and - to a lesser extent - started this blog, too!).

It doesn’t matter if it isn’t close to finished, it doesn’t matter if it works, it doesn’t matter if in my mind a colleague/a friend/my boss (hi boss)/some random recruiter is going to come along and think it’s a terrible idea. Because I’m doing the thing, and it is absolutely making me a better engineer. Almost immediately the barrier to learning a thing or starting a project feels much lower, and the payoff higher. The focus has moved from starting to keeping the ball rolling. I’ve stopped squirrelling away things I felt were not-quite-there or not-quite-good-enough-for-public-consumption. And because the ball is now rolling and not stuck in the mud - it feels like I’ve learnt more in the past two months than I have in the previous year.

I’m also looking to do more teaching - especially in areas where I feel less experienced. There is nothing quite like a deadline to kick you into gear, and receiving questions is a great way to figure out your unknown unknowns. I recently gave a workshop that I felt was all common sense (or, at least, well-documented), left the room feeling like it hadn’t been worthwhile, and had several people comment to me how good they heard my workshop was.

tl;dr

  • Keep a list of things you want to learn (and experiment with what works for you - it might be lower-tech than you think)
  • Learning in public is a great way to kick anxious procrastination and learn more stuff