I had the opportunity to attend Pluralsight‘s Author Summit this weekend and really enjoyed interacting with some of the top people in the technology industry, sharing ideas with them and learning new things myself. Teaching has been something I’ve been involved with for nearly 15 years now through my own company as well as several others and it’s something that I really enjoy doing. I’ve had the opportunity to teach developers in some of the largest companies around the world as well as developers just starting out. Regardless of their experience level it’s always fun watching as they get excited about learning a given technology or concept. You can literally see their faces change as the “light bulb” moment happens.
I’ve learned a lot about the learning process itself over the years and one of the most important things I’ve come across is the difference between talking versus teaching. There’s a big difference between the two so I thought I’d write about techniques that I’ve learned and how they can be used to help people learn more effectively. A good speaker doesn’t necessarily equate to a good teacher. I’ve known a lot of great speakers over the years who were funny, knowledgeable, and well versed in the technology they were speaking about. Some of these speakers are simply “edutainers” who joke their way through a given talk while others are focused (and pride themselves) on ensuring that the people attending the talk/course leave with a solid understanding of the concepts. It’s definitely an art and something that takes practice, a willingness to truly listen to feedback and a commitment to continually improve. Here are a few of the things I’ve learned about talking versus teaching over the years based on direct feedback, 1000s of evaluations and personal study.
Set the Stage
There’s no better way to get in the way of the learning process than to jump into a concept without setting the stage for what will be covered, why it’s important, what it can be used for and how all of the pieces tie together. If you’ve ever sat through a presentation or class and felt frustrated because you couldn’t tie all of the concepts together then you know the importance of setting the stage. Here are a few things I like to do:
- Start a talk or course off with a quick discussion of what general concepts you’ll cover. I can’t tell you how many times I’ve seen someone jump into a talk without taking a few minutes to set the context/stage around what they’ll be covering and why people should care to learn it. It’s important to give people an initial context or starting point.
- Set people at ease, ensure them that it’s easy to learn the topic you’re covering (and that you’ll help them with that process) and express with confidence that by the time you’re done that they’ll have the necessary tools to get started with whatever it is they’re learning. I don’t normally do this for a 1 hour talk, but do like to do it where appropriate when teaching courses.
- If a topic is advanced and you know from experience that it’s difficult to grasp right away, let them know that although the content might be involved in spots that it’s not nearly as difficult as it may seem at first glance. In those situations I’ll make comments like, “If I can learn to master these concepts then you definitely can!” Those types of comments set people at ease (a very important part of the learning process) and bolster their confidence.
Provide a Map
I like to let students know where they are and where they’re going throughout a talk or course. I normally do this with a table of contents slide added throughout the deck that highlights the topic being covered. Doing this adds structure to the content (a type of map) so that people stay more on track and remember where they are and what they can look forward to. Here’s an example:
Use Visualizations Whenever Possible
They say a picture is worth a 1000 words and when it comes to effective learning I think this is one of the most important concepts out there. Many people learn better visually (myself included) so showing graphics and images to illustrate the main components or players for a topic being covered works well. It’s nice to discuss how things fit together but I’ve found that most people need to see concepts visually especially if several pieces are involved. As an example, we offer a new end-to-end course covering several technologies and one chapter demonstrates how MVC4 and IoC containers can be used together. There are several players involved so I put together a slide similar to the following to quickly highlight the section being discussed and show students where it fits into the overall picture. I’ll have several of these visualizations in the presentation so that people are constantly reminded about how things fit together.
Don’t Make Assumptions
It’s easy to assume that people already know a lot about a technology being presented. However, as a general rule I’ve found it’s nearly always a bad idea to make assumptions about knowledge levels. If I’m not sure about the general level of an audience I’ll set the stage and context for the presentation and then ask a few questions such as “How many have built a production level application using technology X?” If the majority of people raise their hands then I’ll throw in extra tips for them while still catering the presentation to the intended audience. I’ve found that people tend to overstate what they actually know when they’re in a group which is important to take into consideration.If you’ve put in the necessary effort required to teach a technology or concept then you have the ability to adjust the level of the presentation up or down depending on the audience level to maximize learning. Don’t go in with the assumption that you will be able to stick to the original “planned” presentation because in many cases things change.
When it comes to knowledge assumptions, injecting comments such as “You probably already know this” can really frustrate people who may not know what you’re talking about but are too embarrassed to ask a question about it. As soon as people get frustrated they stop listening as intently and the learning process is significantly reduced. Bottom line – don’t make any assumptions about what people know or don’t know and be willing and prepared to adjust the presentation to accommodate the people in attendance.
Break It Down Small
I see a lot of developers getting away from coding live as they talk. That isn’t a problem in and of itself since most people don’t like to watch someone typing a bunch of text or code. However, I’ve found that walking people through an existing application code base or cutting and pasting large chunks of code isn’t as effective as it could be. People need small, digestible chunks fed to them especially if they’re new to a technology or concept.
Typing (or pasting) small chunks of code while discussing them is extremely effective in my experience because people can focus on something small and not be distracted by everything else around it. Opening a file with a lot of code in it and then focusing on a small chunk can be effective if the stage has been set properly. However, it can also be intimidating to people new to the given technology. I prefer to show an overview before jumping into a demo and then show small chunks of code that relate directly to the overview that was presented. I don’t like to open a demo application and simply walk through the code base because some people seem to get frustrated (which as mentioned earlier significantly hinders the learning process) as you jump between files especially if they didn’t completely understand the last code or concept you showed. If I do open a file with a fair amount of code in it I’ll take the time to first explain the overall purpose of it and what we’ll cover. I’ll then zoom in directly to the code being discussed effectively eliminating the other code from view. It’s easy to overwhelm people by showing large amounts of code or content.
The same can be said for text in slides. If people have to read through a massive amount of text then it’s a bad slide in my opinion and definitely doesn’t help the learning process. I prefer to have as few bullet points as possible and as many graphics as appropriate. If I find that a slide needs more content in it but that it’s already full I’ll create a continuation slide rather than cramming everything into the one slide. I’m certainly guilty of creating busy slides over the years but try hard to keep them as minimal as possible. If I’m doing classroom training and need people to have additional information then I’ll add notes and ensure that students can access them.
Involve the Audience
There’s no better way to help the learning process than to involve the audience. A presenter who simply stands up and lectures may be a good speaker but in my opinion is a horrible teacher. Teaching is a two-way street with information flowing both ways. Involve the audience by asking questions from time to time to give people a quick break from the presentation and make them think and evaluate what they’re learning. I recently did some training for a group at Microsoft consisting of advanced developers that really knew their stuff when it came to C# and C++. I was covering technologies that were quite new to many in attendance though so I’d ask specific questions such as “What’s bad about this piece of code?” I’ll pause for a bit to give them time to think and if no one responds I’ll rephrase the question. If I still don’t get any responses I’ll explain how the code could be improved. The first few times are generally low on responses but if you stick with it you’ll see that people start to get involved in the presentation and you have that two-way information sharing going.
Another way to involve the audience is to do some guided demonstrations where you build code with the students. Some people will choose to watch of course but I’ve found those that participate get more involved in the presentation, get more excited about some of the topics since they’re building them on their own and seeing them in action, and learn more than those who choose to watch.
I’ve found the following techniques useful while striving to become a good teacher:
- Set the stage
- Provide a map
- Use visualizations whenever possible
- Don’t make assumptions
- Break it down small
- Involve the audience
There are definitely a lot more techniques that I could list here but hope that you’re able to apply one or more of these techniques. The best speakers understand how people learn and consistently work towards becoming the best teachers.
Follow me on Twitter @DanWahlin.