I Am Teaching Myself By Building Apps

I love learning. Whether it is a new programming language, a new language, a new mathematical concept, history or anything else, I love learning about it. However, one of my personal beliefs is that I truly don’t know a topic until I’ve taught it to someone else. Teaching is effectively the ultimate test.

It requires you to be able to recite the subject matter (i.e.: ‘The sky is blue!’) but it also requires you to understand. Any engaged student will immediately ask “why?” and you should be prepared to instruct them. Therefore, if you can teach something properly you most likely have a good handle on the subject.

Conveniently, I also love teaching. The joy of helping someone else succeed is huge. However, I’ve found that I commit myself to teaching a little too early. Whether it be a friend, a co-worker, or anyone else, I always find myself preparing content and notes for a “lesson” and being completely overwhelmed. This leads to late nights researching and filling in gaps of knowledge. This means that at the last moment I force myself to actually learn the material once and for all. “Learning by Teaching” is not a new concept and it has been exceptionally useful for me, but is typically only used when you are with someone else.

My hypothesis is that I can force myself to learn in the same way by building apps. Building an app that teaches is sort of like teaching someone else, right? As such, I have committed to put together lesson plans and build tools to teach myself. Now that I am living in Japan, it only makes sense that the first of such is Learn Kana, an iOS app to help memorize Hirigana and Katakana.

Next up: I am building a more flexible flash cards app similar to Anki for Mac/iOS to teach myself Swift and solidify my knowledge of Mac development (my focus has been mostly on iOS and Android). The tool will then be used to flesh out my Japanese vocabulary. As you can see below, I have a lot of work ahead of me.

Early Work on my SRS App
Early Work on my SRS App

It’s yet to be seen if this is an effective way to learn. I’ll be posting my progress here, and some details about the tech that I’m using to build the app (fair warning: I’m not re-inventing any wheels for this, I have enough on my plate) so check in often and watch as this blank canvas evolves.