Lesson note: Teaching is an essential skill for software engineers
Today, I attended a Technical lesson in the Gemo Engineering Program. The session was delivered by Mr.Minh Vu - Staff Engineer at LinkedIn. And, I was so impressed by his presentation about the importance of the teaching skill to everyone. Tech leaders need to teach and keep motivating their team members. Sales, Startups teach their customers and investors about their products. Software Engineers need teaching skills to learn more effectively.
1. Teaching is learning
There are two main interactions with our brains. When we learn something, it is “saved” in our brain. When we talk about it and apply it, the knowledge is pulled out from our brain and gradually becomes our skill.
Even when we can perfectly remember what we learned, it is only a “perfect recall”. Only when we can apply the knowledge, we can benefit from the knowledge. Teaching and applying knowledge will sharpen the “way out” of our brains.
Knowledge is now FREE. Because we can have knowledge from top universities just by following their MOOCs. So, applying knowledge is the only thing that brings value. And, teaching will help us sharpen the way of pulling out or applying the knowledge.
For me, I also recognized that when I write something I have learned into a blog post, I can understand it deeply, and remember it very well. Maybe I will try making some video content in the next step.
2. Teaching is the ultimate test of our knowledge
Mr. Minh told us the story: Bill Gates's comeback to teach kids about Math.
“Bill Gates believes there’s only one way to know if you truly understand a subject: Can you explain it to a child?” - Source.
I saw other senior engineers teaching about fundamental things before. For example, Andrej Karpathy created the first materials (source code, documentation) for CS231n Course. In 2023, he has just released a new free course Neural Networks: Zero to Hero. These materials are excellent, but all free.
Only when we really understand the knowledge, we can explain it in an easy way.
3. Software Interview Coding is for testing the Teaching Skill!
Coding interview is not just “solving the problems”. The interviewers want the software engineer to explain their solutions while coding. I watched a seminar before telling about an interviewing experience: the interviewee failed the algorithm round, even when he solved the problems perfectly. The reason was that he could not explain well when coding.
So, a coding interview is not just for testing the coding skill, but for examining the teaching skill too. This is another reason why software engineers should practice their teaching skills to be successful in the job market.
4. Teaching passion is natural
Why are people give away valuable things freely? When you feed something interesting to learn, to dive in, you will naturally want to share it with other people. And that’s when we want to teach.
5. Learn better with interactions
The most intelligent animals are the ones with strong communication in their community. When two brains “talk” to each other, they can learn more effectively. That brings us to the idea of how to effectively learn: learn with your partner or in a group. The interaction with each other, about the knowledge will help us to learn better.