How To: Teach Coding Remotely
Tags: teach, codenewbie, programming, remote
Published: 2021-05-04 20:53:43

The world wasn’t given a lot of time to react to everything going remote. We were thrust into it by a lack of options, and as I spoke about in a previous blog post, I myself attended only four days of my coding bootcamp before we transitioned into entirely remote learning. Our cohort essentially ended up being the guinea pigs for our school to figure out how to properly navigate teaching this way.

Remote learning isn’t something new. Tons of schools are entirely online, and people have been starting careers and flourishing from degrees earned without ever setting foot inside an actual classroom. However, most of these courses were designed to be read-only style courses, with no set in-person lectures.

Our setup was lectures in the morning and labs (exercises) in the afternoon. Through this process, I learned some really effective methods of communicating and learning online. I also learned the things that absolutely didn’t work for myself or anyone in our cohort.

**Time Management**

Our 12-week bootcamp ended up turning into 18-weeks. The switch to remote was fairly painless, but for a myriad of reasons, time was just sucked away from us. 

The first and largest reason was only having a single source of verbal communication open at once. In a classroom setting, when multiple people would encounter a problem such as installation errors (this was a very reoccurring issue and I will speak more on this in a second), people could sort of help each other out while waiting for individual help from the instructor. Through the online platform we were using at the time, none of us had the ability to create individual meetings. 

Furthermore, if your course is entirely online, there will be significantly less socialization and communication between the students. It makes it harder and more nerve-wracking for students to reach out to one another for help. In something like a coding bootcamp, the support of your peers is essential.

Regardless of peer-support, solving problems online is more difficult. Someone has to share their screen, there can be technical difficulties, permission issues, and the like. We had multiple “lectures” that were entirely lost to technical difficulties. What I want to emphasize here is that managing those difficulties remotely is a lot more challenging than in person. While I have a couple of recommendations for how to avoid some of those challenges, I think for something like teaching code in an online setting, anything that is prone to difficulties (such as installing new software or languages) should be done before the lecture is started. If possible, allow time at the end of the day to get students started to prepare for the next day's class. This will give students time to reach out to both you, another instructor, or a peer to help them if they face difficulties without it eating into everyone’s time. 

**Methods of Communication**

Directly relating to what we just discussed, having a single line of communication was a source of a lot of issues. People would speak over one another or have a lot of background noise and be difficult to hear, or even worse, just wouldn’t be paying attention at all, slowly everyone down.

Navigating difficulties with specific students is an instructor’s choice, but having what is often referred to as a “break-out room” is an incredibly helpful way to navigate some of those challenges in a more organized setting. Being able to separate students into separate online “groups” is incredibly helpful.

Now if you’ve read all that and are thinking “none of this applies to me because I make pre-recorded videos or stream live casts to completely random people”, then don’t worry, because everything else applies to both situations.

Even if you’re not teaching in a classroom-style setting, some of the previous advice remains true. Find clear ways to make people aware of what tools or content they will need before starting a live stream so people are prepared to follow along with you. It’s expected that everyone will work at a different pace, but if you’re doing something live, you want the majority of people to be able to keep up with you. This brings me directly to my next point.

**Pacing and Engagement**

Bluntly speaking, there are aspects of coding that are dull to learn. People will either enjoy the topic less or perhaps they already think they know it well enough that they start to tune you out.

We’ve all been on the receiving end of a very slow, monotone lecture or meeting that feels like it will never end. I bet if you think back to those moments you can hardly remember what the content of the lecture or meeting was even about, just that you were bored. In addition to this, coding can also be incredibly misleading. Concepts as a whole seem so straightforward until you have to put them into practice. Then suddenly nothing makes sense again.

When teaching coding its usually and often via projects, as the easiest way to learn code for most people is to write code. The advice I have regarding this is to make what you're doing fun. If possible, pick something that involves references to pop culture, involves animals, or just something that will engage the learners. Some of the most popular coding tutorials online are ones that teach things in a more engaging way than ‘hello world’ or ‘to do apps’. I’ve built out things like Pokedexes to showcase RESTful applications, and getting to work on a project like that is way more exciting and keeps you wanting to code. 

If you make the content interesting where possible and keep your voice as clear and engaging as you can, you’re off to a great start.

**Extra Content**

If your remote teaching is mainly through video or live-casting format, then providing additional content and materials is one of the best things you can do to ensure your students' success. Have open GitHub Repos where people can clone your code, provide slides or notes you show as pdfs so people can refer back to them, and if possible, make yourself reachable via social media or another source. Keep your students engaged and working even after you have logged off. 

There is an endless amount of advice and tools you can use to better teach code remotely. These ones are definitely a strong starting space, and in conjunction with our previous blog on the matter, I hope we have provided a solid foundation for you as you navigate through the world of online and remote teaching.

Originally published at [codecast.io](codecast.io/blog) by [Amy Oulton](https://info.codecast.io/author/amy-oulton)