Learn in public

Learn in public

I worked in the video games industry for almost 20 years. I made quite a few games and worked on many more unreleased demos. Every company I worked at was incredibly secretive about their work. Very few teams shared what they were working on externally. Some didn't even share much between their internal teams either. We weren't really using open source software libraries. The encouragement was to create our own code and share with nobody.

I moved to the BBC in 2013 and it changed the way I thought about my work. We started using GitHub to share code. We created pull requests and reviewed and critiqued each other's code. We almost never had code reviews in my games development days so this was new to me! I started seeing the value in sharing things with others before it was 100% complete.

The whole team was learning Node.js at the time and most of us hadn't touched it before. Sharing my code with the team encouraged them to comment on it and we all started learning the best way to architecture our applications.

I realised that we were learning in public.

What is learning in public then?

I first read about the idea after following Shawn SWYX Wang on Twitter. It was the first time I'd heard the phrase "learn in public" and I was intrigued.

Most of us learn something new by consuming content. We read a book or an online article. We watch a YouTube video or a Netflix documentary. And the thinking ends there. We might use that knowledge in private but we don't often share it with others in a public forum.

Learning in public is the idea of creating a habit of re-teaching what you've learnt so that others can benefit from it. It allows you to clarify your understanding of the subject using the protégé effect. This is where teaching others also helps you, the teacher, to absorb that information more easily.

You can teach what you've learnt it in lots of different ways:

  • a blog post or tutorial on your website
  • a thread of tweets on Twitter
  • a YouTube video or Twitch live stream
  • creating a public example of code on GitHub
  • speaking at a local meetup
  • starting a newsletter

You might have learnt everyone on the subject yet but you try your best to be right with the details you know right now. However, also try not to worry if you get things wrong. As xkcd tells us, somebody will tell you when you're wrong on the internet:

Duty Calls

When you haven't got all of the details correct, people may well tell you that your work is terrible. Accepting public criticism is tricky at first. Try not to care too much - I know that's hard initially. Ask them what's wrong and update your blog post or create a new video with the new details. As Shawn Wang says: "make the thing you wish you had found when you were learning". Many more people than you think will find it useful.

Why should I learn in public?

I don't know about you but I can't remember what I did last week.

Learning in public is a great way to help future you remember what you learnt last year. It helps the person who was in your shoes six months ago who has picked up the technology for the first time and wants to get started. Once you start writing more about a subject, you'll start to become an expert on it. People will come to you for advice and ask you questions online. I did this with my chatbots knowledge. I'd never written a Facebook Messenger chatbot before the end of 2017 and within three or four months I had become an "expert" in the field by sharing my videos of what I'd learnt.

In reality, a lot of online experts are online a few steps ahead of you. The reason you think they know so much is because they're sharing it with you. Most people don't do this. Share what you've just learnt publicly and you can quickly become an expert too. Eventually people will ask you for advice and may well offer to pay you for your time. Again, this has happened with me and I consulted on a few chatbot projects. Learning in public could lead to a new side project. It will definitely open the door to more opportunities. Who is a new employer going to look more favourably at? The person with a simple resumé or the person with a resumé which links to an expert blog post that other people reference?

Learning in public also gives you the opportunity to amplify your message. I can sit down with one person and teach them something I've learnt. But if I write it down, or make a YouTube video, I may reach 5, 50, or 500 people more easily. It allows you to scale your teaching and also your own learning.

What to do next?

Learn something and write it down. Share those notes on your Twitter account. If you've got a website then write an article on there. If you don't have a blog, learn how to set one up. And then write about the experience!

By writing out this article, it's made me attempt to clarify my thoughts on learning in public. Do the same with your learning and I look forward to reading more about it online.

Useful resources

Shawn SWYX Wang Learn in public

Kent C Dodds - How am I so productive - A great blog post about being productive and learning in public.

Build in public