Learning by teaching
September 23, 2021
In an earlier post, I wrote that I was embarking on a journey of teaching the fundamentals of Computer Science to Otee. The journey thus far has been incredible, and it is inspiring to think that in the span of three months, all of the following have happened.
- Functional programming
- Advanced data structures (including Bloom filters!)
- Two major projects: A Lisp interpreter and a blog post tweet bot that I hope will publish this post
- Computer architecture, all the way from the hardware to the instruction execution cycle
One of the perks of being able to have the opportunity to teach the fundamentals is that I get to relearn these concepts from a very different perspective, all over again. I have had to research on my own before I feel confident enough to teach and what that has opened up for me, is to see those concepts deep down through the experience of being in the industry for five years.
Teaching something convincingly requires research and it is liberating to be able to learn all those things again, and I would highly recommend this to anyone who enjoys this subject. Imagine thinking from first principles and even questioning those first principles. When I was first exposed to the fundamentals, I didn’t know any better than to take things at their face value and that obviously left holes in my knowledge, not to mention all the things I didn’t even remember I had once learned. During the depths of the pandemic, learning by teaching has been one of the most rewarding exercises.