How to Teach Programming (and Other Things)

Hundreds of grassroots groups have sprung up in the past ten years to teach programming, web site design, robotics, and dozens of other things. They exist so that people don’t have to teach themselves how to program, but ironically, most of their founders are teaching themselves how to teach.

It doesn’t have to be that way. Like good programming practices, good teaching practices can and should be taught and learned. Using them won’t automatically make people great teachers, but will make them better teachers.

This book is a brief introduction to ideas and techniques I have found useful when teaching free-range adult learners how to program. It covers:

  • how learning works;
  • how to design and maintain lessons;
  • how to deliver those lessons; and
  • how to grow a community of practice around teaching.

All of the material can be freely distributed and re-used under the Creative Commons - Attribution 4.0 license: please see http://third-bit.com/teaching/ to download digital versions, to purchase a printed copy, or to make a contribution.

Book cover

The Rules

  1. Be kind: all else is details.
  2. Remember that you are not your learners…
  3. …that most people would rather fail than change…
  4. …and that ninety percent of magic consists of knowing one extra thing.
  5. Never teach alone.
  6. Never hesitate to sacrifice truth for clarity.
  7. Make every mistake a lesson.
  8. Remember that no lesson survives first contact with learners…
  9. …that every lesson is too short from the teacher's point of view and too long from the learner's…
  10. …and that nobody will be more excited about the lesson than you are…