Learn In Public
Jan 24, 2023

I write this blog after I saw the Learn In Public article from @swyx. It's basically my thought or summary of the article.

Busy stair Photo by José Martín Ramírez Carrasco on Unsplash

What is Learn In Public

Most people learn in private include myself. We want to grow. We want to be an expert. We keep learning hardly day by day. We consume lots of contents like blogs, tutorials, youtube videos etc. All those hard works make us think that we are great and we will grow and be an expert eventually. But that's not quite right. That's what called learn in private. Learn in public means we publish things about what we are learning. It could be a blog written by us, a video make by us, talking at conference, contribute to open source project, a twitter thread etc. It means we need to produce something whenever we learned anything. No matter what the knowledge is and how small it is.


Learn in public have several advantage compared to learn in private.

  1. Learn in public will help others. They maybe beginners, junior engineers or experts who just don't have that knowledge. Our content will help them get the knowledge quickly and easily.
  2. The internet will correct us when we're wrong. If we learn in private, we never know if our understanding is right or not. If we produce some content not quite right on the internet, someone may correct us. That's how internet works.
  3. Learn in public is a friendcatcher. With more and more contents we made, people will notice us, connect with us, introduce us to others etc. That's a great friendcatcher.
  4. Learn in public means open source knowledge. It's like a second brain of us. It not only remember knowledges for us, it also grows by itself and teach us new knowledge sometimes. Others may ask questions, correct things, notify new knowledges. That will accelerate our learning speed hugely.
  5. Learn in public is a process of Learn by teaching. Learn in public force us to internalize the knowledge since we need to create some content based on our understanding. That's will make us understand what we learned deeperly.

Most people in the internet just listen to others. They never create content. They even don't create a comment. If we keep create content based on our knowledge, we will be the top eventually.


We can do it in several different ways. We can pick one or some of them to start. It totally depends on personal preference and energy.

Start a blog

That's what I'm trying to do now. And if you saw this blog post, that means I already start it and it may be already successed in a way. And thank you 😁. Don't worry about how many visitors, page views or if it's hot or not. Just start and try your best to keep working on it. Don't feel sorry if there are not much content. Just write for yourself. It will help others eventually someday. I truly believe that my blog will be better and better in the future.

Start a youtube video

There's a lot of youtube channels in the world. devaslife runs a youtube channel to share his app development experience and progress. He got 146k subscribers for now(2022-09). And this should definitely help the sales of his note taking app. For sure he learn something from this channel and this channel also just knowledge sharing. He even shares how he setup dev environment, his equipment and dev tutorials. Anyone can do it for free, thanks gives to Youtube.

Talk at meetups and confs

Give a talk at meetups or conferences or even just in your company. I give a talk about Remix.run the web dev framework in my company. It's not a deep investigation of the framework. I like it and I just want to share with my teammates. So I prepare some slides and it's basically an introduction of the framework. During the preparation, I'd like to say I'm more familiar with it and I also get deeper thinking on the design, the trade offs. I also compares with other frameworks which makes me more like Remix.run. I plan to tweak the slides a bit and maybe give the talk to some other meetups someday.

Contribute to Open Source Projects

Open source projects are great. So if we learned a new programming language, we can practice by read some open source projects and please consider to contribute to them. Although we can't build a whole new fancy feature for it, we can try to find or fix bugs, write tests etc. I just create a PR for Remix.run. The PR fixed a typo for the docs. I know it's not a big deal but I'd like to think it's a start for myself. I will keep learning it and try to do more. Maybe try to solve issues or join some discussions of features or bugs.

If you don't know what to do, please search some awesome people and follow them. Pick Up What They Put Down(A great article from swyx, please read it.)

Tan Li Hau literally became a Svelte maintainer by picking up TODO’s in the Svelte codebase


Don't learn in private, learn in public. Learn in public will not only makes us grow fast, and also gives us a lot extra benifits. Keep doing it and I truly believe it will surprise ourselves eventually.


swyx's blog "Lean In Public"