Making Virtual Programming Classrooms Better

Ryan Adams
5 min readJan 16, 2021

I teach people how to write code. I help make programmers. I’m a software trainer. For more than 15 years, I developed, then managed developers, then managed development. For the last 15 months (and a bit), I’ve been teaching. Half of that time has been in a distributed (or virtual, online, remote) classroom.

A black and white photo of my teaching setup, with a laptop flanked by two screens.

I’ve also been working in education since 2003. First it was Higher Education, then BBC Online Learning, then in e-learning before becoming someone who teaches (ok, I admit I had a brief flirtation with the news media, but I think that’s actually learning too). After all that time I know a little bit about how people learn.

Myles Runham is smarter than me. He suggests that the key thing we miss about classroom training isn’t performance or behaviour improvements (or perhaps even the “learning”) but about the experience of being in the room. We like classroom training because it’s fun, or because we get time away from work, or because we get to meet new people. Sitting at home on a virtual classroom course, watching me on screen and doing programming exercises doesn’t really qualify as any of these things.

Back in March 2020 we shifted to delivering distributed, virtual training via Zoom and collaboration software (you’ll know Slack — we don’t use that, but something similar). It’s not as good as physical classroom training. It’s not as good as online learning. But most attendees seem to like it; and it works. Maybe it’s “just good enough”?

I imagine, vaccine permitting, we’ll go back to the physical classroom sometime in 2021. And when we do, I want the online stuff to continue. But probably not in its current form. I’ve become convinced that people learn programming better when they do it asynchronously, in their own time, with expert guidance on hand when they need it. The role of developer is more learning oriented than many jobs. After all, our job involves making computers do stuff that hasn’t been done before and we don’t yet know how to do that. So we learn new things. All. The. Time.

So is there any point in classroom training for a developer if they are always learning as part of their job? (of course there is…) I said it a few paragraphs ago, but let’s restate it.

Classroom training is good for getting a different perspective; seeing how other people do things; meeting new people; getting time to think that’s not focused on a task defined in a Jira ticket; getting a head start on a new skill.

But, none of those things require a classroom.

Maybe it’s the sandwiches, the coffee and a different office for the day? Maybe the experience is actually what counts. It’s the trainer that differentiates the classroom training experience from e-learning. It’s the environment and experience created in the room by the expert at the front.

I have significant imposter syndrome as a result of that conclusion.

Ok, so let’s talk about online classroom training.

It’s currently pretty poor to be honest. We’re still in the responding to a crisis phase, but hopefully we’re near the end of it. To steal a bit of a Ben Thompson quote that Myles referenced, we’re still “copying what came before, poorly, and only later creating something native to the medium”.

We’ve lifted and shifted our classroom training onto the Internet. And we’ve lost the “in the room” affordances but not fully gained from the online ones.

Here’s a few ideas about what makes a distributed classroom training a good experience.

We need to optimise for teacher presence. Access to the teacher (trainer, coach, mentor, whatever) is what differentiates online classroom-based experiences from general online learning. While actual classroom training might be personality or experience driven, with online classrooms the differentiator is time spent with the expert, them adjusting the training to suit your needs, responding to your questions as you have them or giving you personalised assistance. We need to find new ways to make this work better when the students and the teacher are on Zoom, or when everyone’s working at different times.

Embracing asynchronicity makes a big impact. People work at different paces and everyone’s past experiences vary — people are going to pick up a new skill in their own time. We need to let some jump ahead while others take that bit longer. Asynchronous training allows for that; but we need better tools that let us serve people according to their needs and optimising teacher presence with each student.

There’s a sales problem here though, because buyers think buying classroom training means paying for trainer time rather than paying for learning time. Just because you aren’t on a zoom call with the trainer from 9am until 4pm that shouldn’t reduce the value of the training you’re receiving.

Taking advantage of the technology. Learning styles have been widely debunked, but teaching styles are a thing. And an online delivery lets us be more varied in the styles we use. Pre-recorded video that we can dissect, enhance or explain in real time on group chat; offline project work that involves writing blog posts or improving documentation; distributed mob-programming exercises where everyone codes on the same solution; one-on-one sessions via private video calls. Being distributed makes it difficult to support these different teaching styles, so we need to find solutions that smooth the process.

We must strive for engagement. One thing I’ve noticed about the training courses I’ve been running over the last 9 months is that there are always some attendees who don’t have cameras on, don’t ask questions, don’t share solutions or speak up in discussions. Of course, this doesn’t mean they are not learning, or not benefitting from the training, but it’s difficult to support people when they offer no feedback. There will be valid reasons why people don’t connect, and I think it’s wrong to make them do it. I am training adults after all.

The challenge I face is to lean in to the lack of feedback rather than to fall back on the easy option of talking and showing slides, of ignoring the black boxes and talking only to the faces I see on Zoom. Engagement is not the same as learning, but the big benefit of trainer-led online courses is that students can engage with the teacher. So if students aren’t what’s going wrong? There are definitely assessment techniques that can help solve this problem.

I think perhaps a good online classroom experience is going to be harder to achieve than a good physical classroom experience. But the result will be a better learning experience. They certainly won’t look anything like each other. Maybe this is one place where the online needs to cost more than the physical?

--

--

Ryan Adams

Part time man-in-shed. Cul-de-sac dweller. Perpetual newbie. Wannabe Woodsman. Flâneur. Software trainer