Right from school days, I've had opportunities to teach my friends (mostly guiding them to read specific topics and tricks). Looking back, I realize that it helped me more than I gave. I think that it is akin to Rubber duck debugging. A quote from that article
teaching a subject forces its evaluation from different perspectives and can provide a deeper understanding
Last weekend, it was time for annual visit to alma mater (PSG Tech) for teaching 'Scripting Course'. I am grateful for classmate Yokesh for pulling me into this back in 2012. I was reluctant and scared a bit, but then he made it easier - asked me to take one topic I was comfortable with.
It was a nice experience and for each subsequent visit, I updated myself on the topics I was going to teach (particularly on understanding basics better). It became increasingly clear that two days were cramped to take a semester worth of topics - so last year I moved from ppts to pdfs and this year moved to github. The idea being students can refer to them later as well as peruse when it becomes more relevant in their internships/job.
- Using board helps - it feels interactive and allows freedom compared to just using projector
- Asking simple questions is better than trick questions
- Giving 5 minute gap between concepts - students are more comfortable to ask questions when I go near them
- Helps to involve students when previously taken lesson needs to be used again
- Often, I would ask students to analyze what would a command or code snippet do - whether they got it right or wrong, I think it helped when it was explained later
- On occasions, I found myself snatching the moment to relate it to a quote or proverb - for ex: 'Failure is a stepping stone to success' to 'Getting error is a stepping stone to understand that command/code better'
- I had so much of material prepared, but I erred on not preparing very basic things like - why use command line or Vim (I had some points on them, but not in digestible manner for beginners)
- It is interesting to note that students didn't ask why use Python - seems like they had some idea on that or perhaps it is much more common term than anything related to Unix
- It really requires good teaching skills to take lesson for beginners - it is easy to overlook basic stuff. For ex: can Python program be written without using Vim, would the Linux command I taught using Porteus distro work on other distros, does changing command prompt somehow mean it will change how commands behave, etc
- Students talking while I was speaking is annoying - seeing from other side gives an inkling of difficulties teachers face. While I could've been stricter, I didn't want to get short-tempered - and I think students felt a bit more comfortable with not-so-serious type of lecture. Hope to prepare for it next time though - some joking remarks or similar
- Good teaching approach at Kalap Trust
- Scripting course preparing material on a topic or even putting down your thoughts on paper(or text document) also helps a lot in better understanding of a topic. Even better if you're going to share it with someone - the very idea will force you to be careful and research/test more than you would normally do
- Have a doubt? Ask here - gitter chat