How to Teach - for computer programmers

Lessons are UI to Knowledge

A lesson is a user interface to knowledge. All concepts in UX can be used to create better lessons.

You can create personas for your learners. It should have these information...

  1. Background
  2. Experience
  3. Perceived needs
  4. Special considerations

Assessments as Unit Tests

Assessments are unit tests during learning. You are not testing the students - you are testing the lessons. These assessments should shape the learning - each answer in the multi choice option will be wrong because of a common error that the student can make. This will let you make mental models of the learners mental models. Good assessments should...

  • Be quick(30-60 seconds)
  • Unambiguous(One right answer)
  • Helps us diagnose the confusion.

Manage Cognitive Load

As a teacher you have only access to the short term memory. You have to figure out how to help students encode it to their long term memory. Short term memory is the bottleneck - they can't hold too much information. Only have maximum 7 elements in whatever you are teaching at a time.

Active learning is better than passive learning

Using the knowledge as it comes in forces you to interact with it and you'll understand and remember it better.

Six Strategies for this...

  • Spaced Practice
  • Interleaving
  • Retrieval Practice
  • Concrete examples
  • Elaboration
  • Dual Coding

For more details,

Learners are not robots

Its better to learn with intrinsic goals.

Motivators of learning

  • Self Efficacy - I want to be in control of what I learn
  • Utility - It should help me meet my goals
  • Community - I want to learn with my peers


  • Unpredictability - I can't seem to affect the outcome
  • Unfairness - teachers plays favorites.
  • Indifference - teachers don't care, students don't care.

More info at Teach Together