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:
prepare slides with theory and code examples
present the slides in class
see what questions you can cover in the time given
Imagine you would apply a similar approach to programming:
write code
run it
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.