Teaching has two benefits. This not only helps others, but can deepen your own understanding of a topic. Teaching reinforces what is learned, and learning with a view to teaching later can improve the way you understand and retain material. There are many different ways to teach, ranging from traditional methods such as seminars or lessons to less formal approaches such as Twitter topics. The open source of your code can even be a form of teaching.

I’ve gathered a group of experts to answer your questions about different approaches to sharing knowledge, whether it’s live streaming on Twitch, writing blog posts, teaching a class, or something else. But first, let’s meet with our panel of experts:

Jerome Hardway is a senior software engineer at Microsoft, a veteran of the United States Air Force and an executive developer at Microsoft Veterinarians who code, a free, immersive non-profit coding organization that specializes in veteran training. Jerome focuses on helping underrepresented members of the veterans’ community learn and break into the technology industry.

Cassidy Williams is a Chicago – based developer and experience leader for developers at Remote. She pursues her passion to help people be as great as they can by sharing her programming knowledge through frequent conversations at technical conferences, live streamsher email newsletterand by creating memes.

Anthony Sotile is a full-time software engineer at Sentry working on developer productivity. He shares his knowledge through his popular Twitch channel, where he broadcasts his work on open source projects live. His open source projects include advance engagement, grandmothersand scales8.

Clint: Let’s start over. It can be really scary to be there, whether you’re teaching an online class or lecturing. How do you know when you’re ready?

Anthony: I have to practice what I learn before I teach it. I learn technologies by using them in projects – often more than one project – so that I can get a real sense of the kinds of obstacles that people may face. It is not convenient for me to teach until I face difficulties.

Jerome: In addition, I need to find some difficulty before teaching the subject to understand the “problems” that a student may face. Maybe that’s the military thinking in me: I’d like someone with more experience than me to lead me into battle, so I don’t teach anything that I don’t have real-world experience with, which means putting something into production that consumers can criticize. I want to be confident in answering questions or correcting misconceptions or mistakes. It’s hard to do this without getting your hands dirty.

Cassidy: Obviously you need to understand something before you can learn it. But you may be able to start teaching sooner than you think. You can often give a lecture or teach a subject, as long as the target audience knows a little less than you. Many times beginner coders are good at teaching other beginners because they teach by way of thinking. Similarly, top-level engineers are often better suited to training other top-level engineers, and mid-level engineers are often better at teaching other mid-level engineers. Teaching people close to your own level makes sense because you are less likely to assume that someone knows something that is actually a little above the level of understanding.

Clint: How do you prepare to teach a topic?

Cassidy: I’m an avid person who takes notes. I keep notes of everything: sometimes it’s a single thought or sometimes it’s worth an essay. Writing everything down makes it relatively easy to turn my notes into conversation slides.

Jerome: Yes, that’s absolutely all for notes. I have about 40 notebooks. Moleskine should sponsor me. A a lot of teaching comes from documenting the way you learned, then turning it into something tangible and sustained that you can share with others. You need to remember the problems you have encountered, you need to remember the metaphors or ideas that have helped you finally understand something. Documenting my experience is the way I do it.

Anthony: For me, if this is a topic I still don’t feel like an expert on, I’ll do some more research before making a stream or making a video. For example, I read the documentation and look at other people’s projects to get more context.

Clint: It seems that readiness has as much to do with your level of comfort with the material as it does with your knowledge of the material. Given the spreading industry impostor syndrome, how can you build confidence in your ability to teach?

Anthony: Reduce bets. For example, you can start by holding a presentation or seminar internally in your own company. Or just start with a presentation for your own team. Streaming is actually quite low, too, because you probably won’t start with a large audience, so you can build confidence while building followers.

Jerome: I try out new teaching strategies during one-on-one meetings with the people I mentor. There is much less pressure when working with one person at a time than with an entire class, and it is easier to adapt on the go depending on their response and needs. If I find that something works well with a lot of people, then I know it will probably work in the classroom.

Cassidy: I would also remind people that it is useful to have a plan when things go wrong. You don’t want to spend too much time thinking about the negative, but once you’re ready to move on to lecturing or teaching a class, it’s helpful to have some strategies in mind. For example, you may not be able to answer every question you may be asked. You have to feel comfortable saying, “I don’t know that answer.” I need to do more research. ”

At some point in your career, there will be someone who disagrees with what you say or just doesn’t like what you say. With the last example, often the best thing to do is say, “Please hold that thought back so we can discuss it later.” or controversial.

Clint: I’m going to come out here and I’m going to assume that sometimes people will point out things that are in fact factually or technically incorrect in a lesson – hopefully politely and after the conversation, flow or lesson is over. What do you do when you find out you have taught something that is wrong?

Anthony: I do my best to warn viewers that the content is outdated and I usually try to create new, correct content. Sometimes I make videos that tell people how I did things and the reasons I did them that way, and then I explain why I changed my mind. I had to do this several times. Fortunately, YouTube’s algorithm really likes fucking videos.

Jerome: First, I have the honor of training veterans who value being direct and polite, but when I’m wrong, I use it as an experience of live learning. Builds trust with the student when you make mistakes and work s they should correct the problem. Some of the best lessons I’ve had lately include seeing something wrong and working with the mistake. They see the process, they recognize it, they know it’s good not to be perfect I understand the things you know come from cultivating your past mistakes and efforts, not because you are smarter than them. This is as much for leadership as it is for a teacher.

Clint: Any last tips before we sign?

Jerome: Create templates for your learning processes. Many of my mistakes in the beginning included trying to recreate the vehicle for the content each time, which took time from the content itself. Make templates that you can pick up and place the item.

Anthony: One of the keys is to find out which learning style works best for you and then focus on it. I don’t learn well from books. I learn by doing. So all my videos are based on projects.

Cassidy: Remember that the perfect is the enemy of the good! You can always improve while you work. Just start creating learning content and improvements will come with time.


The ReadME project is a GitHub platform dedicated to highlighting the best of the open source software community – the people and technology behind the projects you use every day. Sign up for a monthly newsletter receive new stories, best practices and opinions developed for the ReadME project, as well as great listening and reading from the whole community.

The ReadME Project Q&A: What you need to know about teaching technical skills

Previous articleInfrastructure as code: Maintains developer productivity while maintaining the security of organizations
Next articleFirefox is reaching an important milestone