How to Remember, Learn and Teach

July 13, 2011

Throughout the day I encounter many annoying software defects and tricks. After Googling, reading docs, and browsing forums, I find workarounds — but the process usually stops there. I put the problem behind me and proceed to the next one.

This is bad for two reasons. First, I often encounter the problem again and forget the steps to solve it. Second, my solution sometimes improves or synthesizes the suggestions available online, but I never get around to sharing it.

Here is a streamlined way of learning from problems, communicating with a development team, and sharing knowledge.

As you work

  • Create a Twitter account to act as an activity log.
  • Record your progress and struggles using a simple command line script.
  • Create another Twitter account for “gotchas” and their solutions.
  • When you solve a problem, quickly post it to the gotcha account with a brief note of how you solved it. Another shell script can make this quick.

At the end of the day

  • Review your log and gotchas to see what you solved and failed to solve.
  • Search again online at stackoverflow etc and see if you can contribute an answer.
  • If you have miscellaneous ideas or solutions for problems not yet asked, write a quick blog post about it.Reviewing and contributing at the end of the day means you aren’t interrupted as you work, and helps to cement your knowledge. Keeping an ongoing log is the most efficient way to keep colleagues informed of your progress, and even gives them the chance to notice and nonintrusively suggest solutions if you get stuck.

This approach is new for me, and hopefully it will help me pass on the learning.