When we tell novices that programming is hard, what are we warning them about? The intent may be to impress upon learners the importance of taking the workload seriously and starting early on the homework. However, “hard” is a loaded word and leaving novices alone with that word and their imaginations can create an unbounded variable, normalizing emotional extremes and all nighters. The instructor often has no idea that "hard" has become "hardship".
An instructor's expertise can become a blindspot. We've learned what is normal through experience and can easily forget that we didn't know from the start. We presume that those experiencing trouble will stop and reach out for help, but this will not always be the case if they don't know those situations look like. Saying "when you're stuck" is not an objective, actionable statement and leaves the unbounded suffering monster in play, particularly for students who are afraid of being a bother or being seen as asking a stupid question. We need to be clear with our learners about when difficult material has moved outside our expectations and create a classroom environment where questions and clarifications are celebrated.
This talk will cover real and practical methods to help learners succeed in intensive programming courses, such as making your expectations clear, helping your students recognize when and how they should reach out for help, creating a positive emotional atmosphere in the classroom, and providing help efficiently. Topics will include a ban on demotivational words, strategies for soliciting questions, the "2 hour" rule, the educational benefits of live coding, and recontextualizing error messages.