First, thanks for volunteering your time to teach a workshop. Here we've
tried to capture tips to make your experience, and your student's, better.
# First, Do No Harm
The <strong>most important</strong> thing you can do as a teacher is to make
people feel they are in a <strong>safe learning environment</strong>. The worst
outcome is for a student to leave frustrated, confused, or belittled and never
wanting to try programming again.
# Plugging In, Setting Up
## Teacher & TA Huddle
It can be really helpful to talk with your TAs briefly before you begin and set
the tone that your classroom will be a collaborative experience, not just a
lecture. If any of them are up for it, you can have them teach a section or even
just explain or diagram a tricky concept like databases. But don't push people
if they aren't ready.
## Laptop Setup
* Get your screen on the monitor or projector. This is never 100% foolproof!
* Zoom your browser and text editor fonts.
* Disable any potential popups like work email, etc
## Try to Put Yourself in a Student's Shoes
If you code all day for your job, it's easy to switch windows without stating
your intent, and use all sorts of timesaving shortcuts without even realizing
* Always annouce keyboard shortcuts and commands, along with
<strong>where</strong> to run them. Beginner students often get don't know
the difference between bash, IRB, the Rails console, etc.
* If you want, you can try
[KeyCastr](https://github.com/keycastr/keycastr) which will display shortcuts as you
type but be careful if you type passwords ;-)
* Be explicit: "Let's go back to our <strong>text editor</strong> and find
the <strong>topics.css</strong> file in the app/assets/stylesheets folder so we
can change the style."
# How to Begin the Class
Go around the room and have people introduce themselves. You can use
icebreaker techniques like having people name their favorite SF structure,
to use one example.
It's also tremendously helpful if everyone states what they want to learn.
This can be really useful in higher levels to tailor the content to
what the students want.
If it's clear that the class is generally at a lower level that the color, slow
down accordingly. It's also a good time to remind them that anyone is free to
change levels at any time, especially if it sounds like some students are
already at a higher level.
* Many people like to know the destination before they begin the journey so
don't skip the "Objectives" part of each session
* The less advanced levels won't finish the entire curriculum so it's good to
tell them that upfront and remind them they can come back next time or try the
rest on their own
* Hint: almost all new teachers go <strong>too fast</strong>
* Repeat, repeat, repeat
* Stop a lot so that the slowest person can catch up to the fastest
* If almost everyone is done, ask a TA to help any students who are stuck and
* You can also use pauses while TAs are helping troubleshoot to ask questions
or suggest things to try.
# Ask Questions!
* "What do you think will happen when I run this command?"
* Give generous pauses (count to 10!) after asking questions
* Don't be afraid to call on people by name
* Simply asking "Does everyone understand?" or "Any questions?" tends to
mask confusion. Be specific!
If you have whiteboards, take advantage of them. Ask a TA to write
out new vocab there so it won't disappear as you move through slides.
Many people are visual learners so diagrams can be very helpful too.
* <strong>Don't forget about the breaks</strong>. It's easy to get into flow
* Use a timer on your phone or ask one of the TAs to be a Timekeeper
* Try to politely leave the room yourself. It can be easy to spend all the breaks
answering questions. Teaching is a ton of work. Give yourself a break too!
# Wrapping Up
* Set aside 10-15 minutes at the end for questions
* Hopefully you've got at least some students who are hooked by this whole
world of coding and want to learn more so share your favorite resources
* Ask the TAs and students to do the same
* Many students use online tutorials and can recommend good ones
## Final Words
* Remind them how much they accomplished
* Encourage students and volunteers to come to the after-party
* Encourage everyone to come back again
* Encourage them to stick around for the final presentation and retro
The best prep is to read through the curriculum and do it yourself.
# More Resources
If you have time, you can read the full slide deck that this doc was adapted
from, as well as these general links about teaching.
* [Teacher & TA Training Slide Deck](more_teacher_training)