a year of teaching in a coding bootcamp

Teaching code has been my main job for the past year and a half, before I started teaching I was in my senior year studying software engineering and working as a freelancer software developer, I didn’t have much real teaching experience, mostly helping my fellows in the university from time to time and did maybe two workshops and few webinars, then I started my job as a coding instructor.

Good teaching isn’t easy at all, I learned a lot of lessons during my time teaching coding, so in this article, you will find what things I learned, things to avoid, how to handle students' problems, and all of my learnings to teach experience.

I will divide the article into two main headlines, in-class, and outside-class as each one has its own topics.

Note: all this, is virtual, I’m working remotely and classes were held on zoom, other types of communication were on slack.

Table of content

A teacher in class

Being the teacher and having the light on you all the time isn’t interesting for some people, in general, you have to be good at speaking, easy-going, knowledgeable, and good technical skills overall.

It’s ok if you don’t have all the proper skills at first but it’s very important to pick up on new skills fast and work on the ones you have, you should know that most of these students may be looking up to you and how you handle problems and code, maybe even try to copy what you do some times as a developer.

Here is a list of things I did that changed the way my classes were going for the better:

having a code of conduct for your classroom is very important to do in the first class, even try to emphasize it for the first few classes, I usually set the zoom policies like opening camera, raising hands, voting, and also set the way to ask and answer questions, like ask when I finish my sentence, don’t interrupt someone asking or answering, try to ask within the context of the subject and so on, I also touch on laughing and making fun of one another is totally unacceptable in this class, these help you set the standards for your classroom ahead and you wouldn’t struggle with keeping up with such problems later.

in the first-class set some time to introduce yourself, this would make your students know you better and feel that they are in good hands after they hear that you have experience in this field, and get more comfortable around you.

For that I would answer these questions about myself:

  • Where I’m from? maybe talk about my family’s background real quick
  • What I did before teaching coding?
  • How long I’ve been teaching coding?
  • How I started mycareer?

You can add more but try to not make it more than 5 minutes because it will feel weird as you are only talking about yourself for a long time (:

Having a 5–10 minutes stand-ups at the beginning of each class is really nice to refresh everyone’s mind on the previous class and just making a nice environment of updates and Q&As, you will be surprised by how many questions you get from students on previous class topics, sometimes they get questions after studying the topic and here stand-ups becomes useful.

Creating a one-slide agenda for each class can be impactful, lay down what today’s class will look like, it’s good to let everyone know what they are going to learn and what are the outcomes of this class.

This is one of the most important things to focus on that lead to a good and safe classroom experience, the students you have in class mostly have close to zero experience with whatever you are explaining, some will be shy to ask especially in the first few classes, some may have questions they think it’s stupid to ask them, some don’t even know how to ask questions, and it’s all on you to make them feel comfortable asking and participating, what to do here is make sure you listen very well to their questions and take some time after they finish the question maybe 3–5 seconds in case they wanted to add something.

You can encourage them to participate in the first couple of classes by asking them to demo their work for example and maybe give a quick round of paluse after each demo.

Another part of handling questions is not knowing how to answer some questions, when you don’t know the answer, you shouldn’t try to make things up, maybe it will work the few times but they won’t trust you after that, it’s better to tell them you don’t know the answer and you will get back to them later with an answer after you look it up, or maybe look it up together in-class.

An only serious class isn’t a good class at all neither a fun full of jokes class, for example, being serious about the homework is important, showing how serious you are about the things you are teaching can add value to them, acting and listening in a serious face for them is important, that will also encourage them to ask more as there is someone actually listening to their questions and answering in all seriousness, on the other hand throwing some jokes at the beginning of class or when you make a mistake in the code or naming variables in funny names (only sometimes), can also add a nice touch to the air especially after a hard demo or activity. I usually take the stand-up in a fun way and try to give some fun comments here and there at the beginning and end of each class.

While you are doing a code along or explaining a topic in general, try to leave space for them to participate and don’t explain everything yourself, leave something not explained and ask them if they know what it is, sometimes I try to take more than one guess and ask them to vote on the one they think is right, it motivates them a bit during class and get everyone to participate. You can also ask them to post the solution later if they solve it by themselves after class, that will also get them excited.

Many times you want to mention something at the beginning of class or want to add specific notes on a subject but you end up forgetting both things and start going around your laptop during everything going on and it gets messy, what worked best for me is to have quick access notes that I update for each class, whenever I have something to mention in class or notes for that class’s demo I will write them down, it helped me a lot to not forget anything I wanted to mention.

Boosting you students confidence can be a very big factor for their success in the class (even outside), always try to encourage them by giving rounds of plauses, or when someone ask a question you can say “That is a good question”, “Good you mentioned this” and such nice words will help stimulate their confidence and feel kind of proud for doing what they did.

The fact that you have different levels of students in the class is real and you shouldn’t handle all students the same, specially knowledge wise, ask the students who are advanced harder questions than the ones who are struggling, give them more homework, make them feel challenged.

I usually reach out to these students or when I see them comfortable doing challenges and ask them if they want extra projects or something to work on and most of the time they say yes and they end up doing it!

When teaching coding you introduce new concepts usually, and these fellows haven’t had any experience in real-world projects before, for example when you name a function func() or a variable x, or you name a const with capital letters like BASE_URLwithout mentioning why and when you should do that, it’s not going to teach them best practices at all and they will keep naming there variables x and y because of that, the real-world example always get them to understand the idea faster and better as it make more sense.

a mentor outside the class

Teaching doesn’t end-up once the session is over, you have to communicate and keep in-touch even outside of the class, most students struggle from talking in-front of their peers or shy to mention that they couldn’t do the homework, that is when your outside-class work becomes very valuable.

Holding 1:1s with every single student you have is essential, in particular at the beginning of the Bootcamp, schedule a 20 minutes call with everyone, try to ask them about themselves, their background in-coding, and few other questions about the Bootcamp and class and how they are doing, this will get them to feel more comfortable around you and you also get to know them individually, what are their goals, their time availability, and few other things depending on what you ask them.

This doesn’t have to be for all students, but maybe once a week or two try to get some time to write a short few lines message asking them individually about how they are doing, or if they did understand this topic after they weren’t, depending from student to student but this message can have more impact than can you imagine, I even send a message congrating students who do something extraordinary and cheer them up a bit.

the responses I get for these messages are very nice and it leaves a very big amount of impact and energy on them.

This may be debatable from one instructor to another but from my experience, this left a big mark on the ones I went through this with and I saw a big change after that.

Some students struggle from the homework and the pressure of classes, or not getting along with their teammates and the Bootcamp in general, they are either university students or working full-time which adds even more pressure on them, most of the problems are time-management related, they get to the point where the burn-out and have no-one to talk to, they usually send messages about this but if you ask them what is the problem they will start talking non-stop about it and your only job here is to listen and that is it, after that you can give your advice on the situation (a real serious one) and evaluate the situation with them to get to a solution, this will help a lot giving them a positive energy and getting them back on track.

Conclusion

Teaching is an amazing and rewarding job, you feel lucky and privileged to be part of lots of people’s learning journey, although, it’s not easy at all to be a good teacher and create a safe and nice classroom environment, like making sure everyone is having a good fun experience and taking it seriously in the same time, can be hard to balance, handling bullying and wrong behaviour while staying calm and taking actions towards them is hard, giving special 1:1 attention while not over-spending time is very valuable and can leave a huge impact, sharing your personal experience and career advice from time to time is really good to do, also, staying few minutes after class and having a quick discussion with those who wants to stay, will give a very nice impression on you and the class enviroment.

Finally, I would recommend another very nice article by my co-worker Louis that is mostly for students but has some advice for trainers too

https://louisrli.github.io/blog/2020/11/22/advice-for-students/#learn-to-spot-the-difference

Software Engineer, food lover, fitness guy, amateur photographer, maybe filmmaker!? Who knows