💻 One Rule to Rule Them All: Learning in Public
Presented by: Gift Egwuenu
Originally aired on March 5, 2023 @ 4:30 PM - 5:00 PM EST
In this session from our Full Stack Week Developer Speaker Series, we'll cover the idea that learning is an essential part of your career, and why it's crucial to find the best learning method that fits you. We'll explore several learning techniques, with a critical focus on Learning In Public.
Visit the Full Stack Week Hub for every announcement and CFTV episode — and check back all week for more!
English
Full Stack Week
Transcript (Beta)
Hey everyone, I'm super excited to be giving this talk. My talk today is going to be centered around different learning techniques and how they can help you learn a new subject or topic effectively.
And one core idea that I'm very excited to be sharing in this talk is learning in public.
I might be biased, but I think this is one of, you know, this is one route to rule them all.
And yeah, my title might be a little bit cheesy, but I'm very excited to be sharing some of these learning techniques with you.
A couple of months ago, I made this tweet and what it says basically rings true for me.
It says that one secret ingredient to a successful career in tech is putting your work and yourself out there.
Even up to this day, this statement still rings true for me.
And having experienced this firsthand in my career, I'm very happy to share some ideas about different learning techniques that I've tried and sharing some tips on how you can actually use them to help you learn specific topics effectively.
Hi everyone, my name is Gift Egwuenu. I currently work as a front-end developer and I enjoy creating content for developers, whether that is through writing blog posts or making videos on YouTube.
Throughout the course of this talk, I am going to be covering three main points.
The first being why do you actually need to stay up to date as a developer or regardless of if you have a career in tech.
And also going over some learning techniques that I think are very effective ways to keep up to date with the state of the way the tech is continually improving and progressing over time.
And finally, just centering on the last idea that I want to share, learning in public, why should you actually go ahead to learn in public, how to do it and why it works.
To start off this talk, I probably want to put this question out there.
How do you stay up to date in tech?
Like if I should walk up to a room filled with developers and I ask them this question, I'm pretty sure not everybody would give me the same response.
And this is because every single person has a different way of learning that works for them.
Even one single person has several different mediums that works for them, to be very honest.
And as a person in tech, we understand that tech is always evolving and you always have to stay on top of your game as a developer, right?
So having this idea in mind that there is no one way of learning things. So what are the different mediums of learning or upskilling in your career as a developer?
Let's take a look at this illustration. It's called the learning pyramid.
And it shares this idea that there are several different mediums of learning, which is true for which of them is pretty much effective.
And the study shows that the pyramid subjects that the best or the most effective way of learning is by teaching others.
And in this area, you'd see that, I mean, here there are different ways of learning, reading, audio, visual, demonstration, discussion, practice doing, and actually teaching others.
And the average retention of a student shows that after reading a specific book or checking out the course, your actual retention is about 10% compared to when you actually learn something and teach it to other people.
So this goes to show that there is no one way of learning, you can actually try different ways, but the most effective and efficient way is actually teaching it to other people.
Because by doing this, you are actually solidifying the knowledge that you've gained.
Now that we know different mediums we can actually use to learn, figuring out the best technique that works is what I'm trying to share in the course of this talk.
And figuring out the efficient way of learning that works for you is quite important.
In that regard, I would like to also share this diagram that represents the two that represents actually two different ideas of learning, what people think learning looks like, and what learning actually is.
The real truth is that there is no one fixed way to learn something or a specific subject.
It's most likely that as a developer, you might have two preferences, you might probably prefer watching videos or reading a book or taking a course or just, you know, going to the documentation and learning.
So this diagram just shows that really there's no one path to learning a topic or a subject.
Now let's go over some different learning techniques.
And some of these learning techniques that I've used, and I'm very excited to be sharing some of them with you, as well as how they work.
Now the first one here is the fine man's technique.
The fine man's technique is basically a technique where you try to explain a concept to yourself as if you were five, like, try to explain it in a very simple way and see if you have any gaps in your knowledge.
And it follows four basic steps, right? The first step is, of course, you pick a topic or subject that you're trying to learn.
And then you pretend to explain it as if you were explaining to a child.
So explain as if you're explaining to a five-year-old.
And then you identify if you have any gaps in your knowledge.
So if you try to explain it to yourself, you'd see if there are any gaps in your knowledge, then you go back to the original source to solidify that knowledge.
And it's basically a repetitive process, right? So if you find that you pretty much understand the concept, that's great.
You can move on. But if you find that you actually have gaps in your knowledge, then it makes sense to go back to the source and try to explain it better until you pretty much solidify the knowledge.
Secondly, this is another way, or this is another learning technique that I would like to share.
And it's the guided and unguided path to learning. It's pretty much common in our everyday lives because guided learning basically means that you're learning through a guided path.
It could be that, hey, you're trying to learn a specific technology, let's say Cloudflare Workers in this case.
And you probably want to use, for example, the documentation, tutorials, or video courses around the subject.
That's what I would refer to as a guided learning path. There's also unguided learning that stems out of you just learning from different sources without any direct path.
So it could be that you probably learn something from Stack Overflow, GitHub issues, or you just try to build yourself an application from scratch.
And with this, this explains two differences between guided learning and unguided learning.
Next, we have space repetition. This is one of my favorite ones.
And it's basically an effective way of learning something. How it works is you try to learn a concept and you do this repetitively.
So you pick up a very simple, it's typically something that could fit in a card or a flash card.
And you try to remember it in certain intervals.
Now, this is a very powerful technique that will help you memorize information in much less time than you imagine.
And space repetition is a memory technique that involves reviewing information over time.
If you're willing to practice this, this is something you can do over some cycles.
So you review information or a concept you're trying to learn over different review cycles.
So it could be that, hey, I'm trying to learn this concept.
And I would like to actually know it pretty much very well. And you have pretty much this system where you try to remember the concepts in a flash card.
And then you do it over a period, say 24 hours, or every seven days, or every two days.
And by doing that, trying to recall it, whenever you recall it, there's actually a system that works with this space repetition.
And it's called the Lightning system.
I can basically just explain how it works. So the Lightning system works using boxes and flashcards, right?
So you pick up concepts that you're interested in learning, you have these boxes, you put the concept or the cards in the first box.
Now, if you check the first box, pick up a card, and you try to remember it, and you actually got it, you move it to the next box.
You do the same for every card you have in the box.
And when you don't remember the concept, you have to move it to the previous box.
If it's the first box, it remains there. But if you don't remember, you have to move it back or leave it in the current box it is.
If you remember it, that's great, you move it to the next box.
And you do this over a period of time in different cycles.
So it could be that you want to review it every three days, or every seven hours, depending on what works for you.
And I find that this system really works because your brain basically takes this knowledge because you're always trying to call it in space time.
That's how space repetition actually works.
Another thing that I found that helped me better understand this entire learning technique is this game.
I'll call it a game, but it's also an interactive comic, where it shows how space repetition works using very interactive story that you try to remember.
So if you're interested in checking it out, the website is here.
And from my experience, just going through this, I was able to understand how it works and actually went on to practice it.
Finally, the one rule to rule them all is this concept called learning in public.
And I know this is, this might sound like a very cheesy word, what's the same.
But my major, what would be my major takeaway from this talk is that you understand why learning in public is an actual, an effective way of learning and another interesting technique for learning new technologies or a concept.
Now, I think learning in public is the fastest way to learn, grow and build your career in tech.
But first of all, what's learning in public?
Learning in public is a concept that I came across a couple of years back from this public essay that I read from someone called Sean Wang.
And the essay just generally states or just expresses how a lot of people, mostly developers, learn in private.
That's okay. But the added advantage of learning in public is that you get to share your knowledge publicly.
You can do this through different mediums. And it's a way of basically sharing through, for example, writing tutorials or blog posts, speaking at events, making YouTube videos or actively making Twitch streams is another way or making programming designs.
These are several mediums that you can actually use to learn in public.
And you might be wondering, why should I actually go ahead with this?
I mean, it's fine if I decide to watch a course or read a blog post, and I'm still learning something, right?
This concept is actually being practiced by a lot of developers that I've seen.
And the idea is getting really popular. Some key people in the tech community that I've seen just share their thoughts about these ideas are people like Ken Seedots and Josh Commune.
And they just basically shared why the learning in public is a good approach for learning technical things online or just learning a basic concept.
In my opinion, I think learning in public is a way to kind of learn publicly and as well as just gain knowledge from specific people.
Because by sharing what you're learning publicly, the added advantage you get is you can, for example, get people's opinions on things that you're probably doing wrong, but they get to share with you the better way of doing something.
Rather than if you were doing that on your own, you might not have had the opportunity for somebody to correct you or give you a better suggestion, something like that.
That's one maybe advantage of doing that. The other advantage of public learning is it's very beneficial, especially for people that are new in the tech ecosystem.
Developers that are just looking to get into the tech scene, they can actually use this learning method to put their first foot forward.
I've seen success stories of people that started this journey probably using the 100 Days of Code, which is one example of public learning to start off their career.
It's also my story, right?
I started doing 100 Days of Code at the time, and I used that to get my foot into the door to start a tech career.
Now, I already gave you like a bit of glimpse into how you can do it, but there are several other ways that you can do public learning.
You can, for example, share a blog post or tutorial on something you've learned, or probably make a Twitch stream of you learning a new concept, or make a video tutorial, or probably speak at an event.
These are just different mediums that you can actually practice learning in public.
Now, you might be thinking, okay, this is a nice idea, but who is actually doing it?
I already mentioned a couple of names, but I went on to also look for examples to show you of how people are actually doing, or how people are actually learning publicly.
This is an example from Twitter. I've seen a lot of people share tidbits of like things they've learned on Twitter, and it's, for me, the added advantage of doing that is they're not only just sharing their knowledge, right?
Or they're not only just sharing.
Other people also benefit from that. For example, I like Samantha Ming's tidbits that she shares on, for example, new JavaScript concepts, like how to use JavaScript arrays, map array, or I've also seen a couple of people sharing cool things you can do with CSS that you've learned.
So, there are several different examples of that on Twitter.
Another interesting one that I've seen is code zines, or programming zines, or illustrations of concepts that people are trying to learn, or they want, they learned, and they want to share, right?
A very good example of that is programming zines created by Julia Evans, where she shares programming concepts in a very concise way using illustrations.
This example here shows like how CNAME record works, just go back, and how to center in CSS.
There are more examples I would like to share. This is another one, also with illustrations.
Some interesting sketch notes that I've seen comes from this site called Sketch the Docs.dev by Nitya.
She basically tries to explain some Azure concepts using illustrations, and I find this very interesting.
I'm not very artistic, but this would have been a very interesting way for me to share.
But I like that a lot of people that, developers that are sharing this, channeling their artistic side, and of course technical things together to share their knowledge is very interesting to see.
There's also people doing Twitch streams on concepts that are learning.
I've seen this show called Learn with Jason, where he's the host of the show.
Of course, he invites other developers to teach him a concept or a topic.
This is also an interesting example of learning in public. I'd like to also plug myself because I also do this actively as well.
I have a YouTube channel where I talk about some specific technologies that I've learned, and I would like to share with other people.
These are all examples of people that are already doing this concept called learning in public.
Now, why does it work or why should I even do it?
I have actually seen, talking from experience, a good success rate from actively learning in public.
I feel like the reason why it works is first because of this thing called the 1% rule.
The 1% rule is basically stating that only 1% of actual people or users of a website, or in this case, the tech community, actively contribute content to the web.
The other 99% are pretty much just there. Learning in public is a way of creating different learning exhausts, probably through blogs or sharing your knowledge on Twitter.
By doing this, you're already part of the 1% that keep contributing back to the web.
One way that this works, in fact, it works in several different ways.
Because through your contribution back to the web, you also get, in this case, recognition through, for example, if you're sharing your knowledge, people get to know that, okay, probably this person is a subject matter in this area.
As well as, if you're in that group of people practicing learning in public, then you're seen as the 1% of the people contributing back to the web.
Another thing I would say that makes it work, or the benefit of doing it, is something called the Cunningham's Law.
It states that the best way to get the right answer is not by asking questions on the Internet, it's to post the wrong answer.
A lot of people, through learning in public, it's basically you trying to learn a concept, and it's okay that you might probably not be sharing the correct information, or you probably get things wrong.
Now, a lot of times you are putting yourself in a position for more experienced experts, or people that are quite knowledgeable in the area to actually help you, or help you with the correct answers.
I've seen this happen a lot.
Some people are generally kind on the Internet, and in a bit of you sharing your work or learning in public, you can get people experienced in the concepts to contribute back to your knowledge by probably teaching you, or sharing their knowledge with you in this case.
Finally, it helps you build more connections, and I feel like the more you share the work, as well as sharing where you're coming from.
For example, if you're trying to apply to a job where you're currently going to be using React, and you share this, and you're consistently sharing the learnings that you're doing, I feel like that might even help you connect to more, in this case, React experienced developers, or there are several examples of this happening, but the general case here is by publicly putting yourself out there, sharing your work, it helps you build lasting connections on the Internet.
I would like to share this quote from one of my favorite books, and it says that the impulse to keep to yourself what you have learned is not only shameful, it's also destructive.
Anything you do not give freely and abundantly becomes lost to you. You open your safe and find ashes, and this is by Annie Dillard.
It's from a book that I really enjoyed reading, Show Your Work, and I highly recommend this book, and from the book, I also kind of got a few tips and actionable examples of public learning, and one of them is this illustration from the book where it says you don't just learn, but also try to teach what you learn, and this is basically exactly the concept of learning in public, right?
You learn, you teach. It's just a continuous circle of learning, teaching, sharing your work, doing the same thing, and all over again, right?
And that's what the concept of learning in public basically is.
Just to wrap up this talk, I would like to share my story of how I got into public learning and where I'm at right now.
When I started my career in tech in 2017, I decided to join a challenge called the 100 Days of Code, and at that time, I was trying to learn JavaScript.
What I did, or what the 100 Days of Code challenge is, is a challenge where you commit to learning a specific technology or concept during a period of 100 days, and I remember during this sharing, everything that I was working on related to JavaScript on the Internet.
I went further to also challenge myself to join another challenge called the Code Newbie Blog Mode Challenge sometime in 2018, and the challenge was to encourage developers to get into blogging more, and I decided to take it up because I really, really wanted at the time to be consistent in my blogging streak that I was having at the time, and that really helped me.
I even went on to start accepting or speaking at events and also organizing events.
This somehow still ties to public learning because I'm still sharing my knowledge publicly in a way, and I've even gone on to start making YouTube videos.
I have a newsletter where I share things that I've learned every week, and this is just the beginning, and I'm definitely going to still continue on this journey.
So, to wrap up this talk, I hope you took something out of the different techniques that I shared going forward, and you probably might be interested in practicing them on your own.
If that's the case, then I'll be very excited that, I mean, what I shared was very helpful.
If you have any questions for me, feel free to reach out to me, and yeah, thank you so much.
Thank you.
...accessing the roadway, network traffic must pass through a firewall before it is allowed to reach the server.
WAFs use adaptable policies to defend vulnerabilities in a web application, allowing for easy policy modification and faster responses to new attack vectors.
By quickly adjusting their policies to address new threats, WAFs protect against cyber attacks like cross-site forgery, file inclusion, cross-site scripting, and SQL injection.
... The real privilege of working at Mozilla is that we're a mission-driven organization.
What that means is that before we do things, we ask what's good for the users as opposed to what's going to make the most money.
Mozilla's values are similar to Cloudflare's.
They care about enabling the web for everybody in a way that is secure, in a way that is private, and in a way that is trustworthy.
We've been collaborating on improving the protocols that help secure connections between browsers and websites.
Mozilla and Cloudflare collaborated on a wide range of technologies.
The first place we really collaborated was the new TLS 1.3 protocol, and then we followed that up with QUIC and DNS server HTTPS, and most recently the new Firefox Private Network.
DNS is core to the way that everything on the Internet works.
It's a very old protocol, and it's also in plain text, meaning that it's not encrypted.
And this is something that a lot of people don't realize. You can be using SSL and connecting securely to websites, but your DNS traffic may still be unencrypted.
When Mozilla was looking for a partner for providing encrypted DNS, Cloudflare was a natural fit.
The idea was that Cloudflare would run the server piece of it, and Mozilla would run the client piece of it, and the consequence would be that we'd protect DNS traffic for anybody who used Firefox.
Cloudflare was a great partner with this because they were really willing early on to implement the protocol, stand up a trusted recursive resolver, and create this experience for users.
They were strong supporters of it. One of the great things about working with Cloudflare is their engineers are crazy fast.
So the time between we decide to do something, and we write down the barest protocol sketch, and they have it running in their infrastructure, is a matter of days to weeks, not a matter of months to years.
There's a difference between standing up a service that one person can use, or 10 people can use, and a service that everybody on the Internet can use.
When we talk about bringing new protocols to the web, we're talking about bringing it not to millions, not to tens of millions, we're talking about hundreds of millions to billions of people.
Cloudflare's been an amazing partner in the privacy front.
They've been willing to be extremely transparent about the data that they are collecting, and why they're using it, and they've also been willing to throw those logs away.
Really, users are getting two classes of benefits out of our partnership with Cloudflare.
The first is direct benefits. That is, we're offering services to the user that make them more secure, and we're offering them via Cloudflare.
So that's like an immediate benefit these users are getting. The indirect benefit these users are getting is that we're developing the next generation of security and privacy technology, and Cloudflare is helping us do it.
And that will ultimately benefit every user, both Firefox users and every user of the Internet.
We're really excited to work with an organization like Mozilla that is aligned with the user's interests, and in taking the Internet and moving it in a direction that is more private, more secure, and is aligned with what we think the Internet should be.