Before I became a programmer, I was a teacher. For the most part, I taught academic English to speakers of other languages at a University. Although I’ve switched careers, I find that my teaching experience becomes applicable very frequently in my job, and I love taking on a teaching role whenever I can.
About a year ago, I studied at Enspiral Dev Academy, a coding bootcamp based in Wellington, New Zealand. After completing EDA, I worked there as a teaching assistant, helping bootcamp students navigate the course, providing help with coding challenges, and helping to develop the curriculum.
I’m also part of the team that organises RailsN00bs — it’s a meetup group that meets once every three-ish weeks in Wellington. We’re open to all people who want to learn about Rails, or get into programming. We get a wide variety of attendees every session — folks who are professional programmers, who have been programming in other languages for many years, but want to learn about Ruby and Rails; People who have never seen command line before and have never written a line of code, but would like to learn; People who have been teaching themselves online, and want to connect with other programmers IRL.
So, I’m frequently a beginner, but I’m also frequently in a position where I am helping and guiding other beginners, at many stages of their career. From my experiences, I’ve learned a few things about helping beginners, which I shared at a talk at RailsCamp NZ 2016, and have subsequently written up here.
So. How can you create a welcoming space for beginners?
It’s important to frequently reassure beginners that it’s okay to ask questions, even (or especially) if they seem ‘dumb’ or ‘simple’. Often when I’m learning something new, the person teaching me or the group will say this once. It’s important to re-iterate this often, though. Beginners frequently feel intimidated and unsure of themselves, so frequent reminders that it’s okay to ask questions, it’s completely cool to not know something, and that it’s fine to be wrong about things, are always welcome. Remind people multiple times, every day, until your audience becomes comfortable asking questions. If your learners seem reticent, it’s your job to remind them, and encourage them.
Never ask ‘Does that make sense?’
This was the first thing I learned in teacher training. Never talk at a learner and then ask ‘Does that make sense?’
Let’s be honest, when someone asks you ‘does that make sense?’, your immediate instinct is to reply ‘yes’, even when it doesn’t. You want to please the teacher by giving them the answer that they want.
Let’s be even more honest — most of the time when someone asks you ‘does that make sense?’ you haven’t even had enough time to parse and analyse the information that they’ve given you, so you actually have no idea whether or not it makes sense at all. So, you’ll reply ‘yes’, because the asker is waiting for an answer and wants to move on. It’s only later on, when you try to implement the knowledge that has been given to you, do you realise that the explanation didn’t make sense at all.
So what to do instead?
Ask specific questions. Ask questions directly related to the information you’re trying to impart. For example: “Can anyone tell me what sorts of attributes at User model might have?”, or “Who can tell me what a controller does?”
By asking specific and relevant questions, you’ll be able to gauge your learners’ understanding of what you’re trying to teach. If no one can answer, you need to refactor your explanation!
After asking a question, and receiving no answer, wait three seconds longer than you usually might before answering your own question. Embrace that slightly awkward silence, and give your learners a little more time to formulate words. You might be surprised at how often, in those three seconds, someone hesitantly raises a hand, and gives an answer that’s spot on. In fact, even if the learner’s answer isn’t quite right, getting them comfortable having a go at answering a question is valuable in itself.
Too often, I find that teachers and presenters move on too quickly. Taking the time to slow down and having a learner answer a question can be hugely valuable for everyone — you might learn a new perspective, or if a learner answers wrongly, it might shed light on a mistake that you’ve made in explaining a concept. By seeing a learner answer a question, other learners will gain confidence in their own abilities to do so, and perhaps pipe up next time. Just give them those three seconds.
Perhaps this is my background in English teaching coming through, but I am a big fan of defining jargon right off the bat, to lower the barrier-to-entry for beginners. At Railsn00bs, when we do our Intro to Rails session, the first thing we do is create a new Rails project, and bring up the default welcome page that every Rails project comes with. There’s lots of helpful info on that page, but it’s littered with jargon.
We start of by highlighting every piece of jargon on that page and asking the class to help us define each of the terms — models, views, controllers, migrations, and so on. We write down the definitions, and save them to refer to throughout the session, and for learners to access later when the session is over.
Not only does this serve to get everyone on the same page, it also gets learners thinking about what they already know, and thinking about how to apply that to Rails. Building this confidence early is really important to getting learners excited about Rails and trying new things.
Use real-world examples
When helping beginners, use real-world examples where possible. At Railsn00bs, we often build a project such as a super simple blog, or gallery. Something that learners are familiar with, and that we can talk about by relating to already familiar concepts. People generally have an idea of what a User, a Post, or a Category are. We use that prior knowledge, and build from there.
Where possible, avoid `foo`, and `bar`, and `baz`. I find that learning something new is often stressful enough, and talking only in abstractions can be even more intimidating for beginners. Don’t make someone think more than they have to! Take the guesswork away by providing something more solid for the learner grasp on to.
Get into the habit of enthusiastically praising your learners for trying things, for getting things right, and for working hard. It can feel awkward (particularly for Kiwis — we can be a reticent lot), but as a learner, I certainly appreciate a few words of praise. That sort of encouragement can help keep me going when I’m stuck on something, or when I’m finding things particularly hard. It can be the difference between giving up, and trucking on.
On that note, thanks for reading, reader. I hope you found a small nugget in here, something that you can take away and use in your day-to-day work, or try out the next time you’re in a position to teach. I’d love to hear more about your strategies and experiences, as a learner, as a teacher, or both. Comment here, or chat to me on Twitter!