The Craft of Teaching

When you are reading this book, I assume you are teaching a programming course, tutorial or workshop. I also assume you know a thing or two about programming, at least more than your students. How will you prepare for your next teaching encounter? You might do the following:

  1. prepare slides with theory and code examples

  2. present the slides in class

  3. see what questions you can cover in the time given

Imagine you would apply a similar approach to programming:

  1. write code

  2. run it

  3. debug things on the fly

You probably know that developing software is more than writing and running code! Programming is a craft. The craft of programming includes practices such as version control, data modeling, testing and refactoring. Every professional programmer needs such practices in order to produce clean, maintainable code. However, a beginner programmer is not aware that a skill called refactoring even exists. Where the experienced programmer sees an unclear build process, a broken data model and a lack of tests, all a beginner sees is code and error messages. The beginner programmer needs to learn the craft first.

With teaching, it is the same.

Contents