A list of teaching tips
This week I had the honor to help out as a mentor at Development Bootcamp. While I only had the time to help out for a single day it was great fun. Maybe I learned as much as the students that day.
Joost Elfering, @yopefonic on Twitter, had a great Keynote which was a great help for setting the tone of the day. Time for fun but also serious coding! :smile:
I am really interested in learning to code but also teaching to code. How do you learn someone to code? How can you teach yourself to code? The last several months I’ve been listening to podcasts, reading up on learning and teaching and heard a lot of people saying the same things. This is a short list of things that came bubbling up in my head when I was mentoring (and unfortunately also the day after :smile: ). Some tips come from the Ruby Rogues podcast, some from Thoughtbot, others just from regular discussions with colleagues. Here goes:
Make the students tell you what they are doing.
When asking questions you should want to know some of the backstory. Why is someone trying to accomplish said task? Most of the time you can steer the student in the right direction in stead of laying out the actions to take. Making the student telling you what they are doing makes sure the student understands the problem at hand.
Make the students think about what they are doing.
Ask the student what they are trying to achieve and start with some counterquestions. “I am trying to loop over this collection of hamsters, but this is not working. Why?” In stead of answering with a solution or a direction to a solution. You could also ask why they want to loop and what they are trying to achieve. This way the student should realize if they have chosen the right solution to the problem.
Instead of just answering all questions make sure you also ask questions. Don’t be embarrassed if you do not know the answer to one of the questions.
Do not make the student feel dumb!
Granted this is stating the obvious. But easier said than done! Answering the question “What is a html tag?” with “You don’t know what a tag is?” isn’t really helping anyone. Be thankful that someone is devoting substantial time to learn something new. Approach these questions with a positive answer. “Ah that’s a good question. Let’s look this up together.”
Do not assume the student has knowledge on any subject (or should have for that matter).
Assuming that the student is further along the track will make them feel dumb. (In my experience at least). They are more likely to just nod at your answer, wait till you leave and just ask someone else. Try to tune in to someones reactions and adjust your level of communication accordingly. You might even learn something yourself here :smile:
Do not take over the keyboard (not ever!).
This is a trap where I keep falling into myself on a regular basis. Taking over the keyboard does not teach the student anything. The student won’t pick up anything if they see you typing or solving a problem. Try to explain the problem at hand and guide the student through the problem solving process. This means be patient, be understanding and do not get frustrated! This can be really hard but this is a point where you as a teacher can really shine :smile:
Do not tell the student what editor to use.
Try to not imprint you own workflow onto the student too much. Chances are you are further on the track and have you setup all thought out. When the student is in a development bootcamp to learn Ruby, the main goal is to learn Ruby. Not to learn how Vim works. Try to keep the focus on learning Ruby. Adjust your own workflow to match the student`s one.
Be positive and hand out compliments
Try to be extra positive and hand out compliments on the regular. Let the students know they are special and how hard they are working. Someone who is positive and feeling good will learn much easier than someone grumpy.
I hope this will help someone, student or teacher. I know writing this down helped me a lot :smile: