Helping others learn.
WHAT BEGINNERS STRUGGLE WITH
Not syntax, usually.
WHAT THEY ACTUALLY STRUGGLE WITH
Breaking a problem into steps Understanding that the computer does exactly what was written Reading error messages Knowing what is normal confusion
WHAT TO TEACH FIRST
Reading errors, and that they state what is wrong and where.
WHY
It converts a frightening experience into a routine one.
WHAT TO PROVIDE
Small problems with visible results Immediate application of each concept Something they want to build
WHAT NOT TO DO
Explain everything before letting them write anything Correct style before correctness Take the keyboard
WHY THAT LAST POINT
It ends the learning.
WHAT TO NORMALISE
Confusion, and errors.
WHY
Beginners frequently believe their difficulty is unusual.
WHAT TO AVOID
Making anyone feel foolish.
WHAT TO ENCOURAGE
Reading other people's code.
WHAT TEACHING GIVES YOU
Precise awareness of what you do not understand.