How to teach programming workshops to adults

How can we teach a programming workshop without wasting the teacher’s effort and participant’s time?

How can we help students learn and feel satisfied with our work?

If you teach, I hope you ask yourself those questions too.

The goal of a workshop

Why do people come to the workshops? There are as many reasons, but the majority of participants belong to one of three groups.

You will see those people during corporate training. They attend workshops for experienced programmers. You can meet them at boot camps for people who want to change their careers. They are everywhere.

  • People who had a training budget and had to spend it somehow. They don’t care about the content. I don’t like teaching such groups because they waste my effort and everyone’s time.

  • People in an endless rehearsal mode They are getting prepared for the job they may get in the future. One day, they will be ready to apply. But not today. They aren’t ready yet.

    You can sell them many workshop tickets, but is it the right thing to do? Instead of learning the same stuff repeatedly, they should take action. If you tell them about it, they will… buy a ticket to a motivational seminar.

    They are genuinely interested in knowing more, and teaching them is enjoyable. They love the workshops. The teacher loves the workshops and gets paid well. That’s a problem. After the lesson, the students are still in the same place. We don’t improve their situations.

  • People who want to learn and use their new skill Those are the people who need a new skill at their current job or want to get a new job. Their motivation may be similar to those who rehearse, but this group of participants will use the skill they learn. In my workshops, I focus on this group because, in this case, my effort makes a real difference.

Workshop is not a lecture or a demo

People don’t come to workshops to listen to an eight-hour-long lecture or watch a demo. I could show how to code. But nobody will learn anything if they watch someone else programming for eight hours.

The participants are here to practice. Not all participants, but the ones I care about want to practice. Those are the ones who want to learn something and start using it right away.

They can watch YouTube videos for free. Nobody came to a workshop to see another person coding. I used to say it during workshops when someone wasn’t doing assignments, but clients told me to stop. I stopped. Yet, it’s still the truth. You can watch programming videos on YouTube for free. You can learn from them for free.

A workshop should offer way more than the free content you can see on YouTube.

Teaching at a boot camp

If you talk with programmer wannabes, you may have a false impression. IT seems oversaturated. Nobody wants to hire programmers anymore. We know it isn’t true.

Nobody wants to hire inexperienced programmers. Boot camps were supposed to give people some starting experience. We should teach skills that help the students get employed.

Instead, many boot camps produce useless boot camp graduates. That’s the worst thing we can do! I hope you don’t teach at predatory boot camps leeching on hopeless people stuck at dead-end jobs.

My selfish goal is to help those people as much as I can. Yes, it’s a selfish goal. It’s selfish because if you help someone who earns a little more than the minimum wage get a job in IT, they will never forget you and buy more from you.

Every business works best when you help people. You don’t even need marketing when you do it. New clients keep coming. Existing clients keep buying.

The purpose of a teacher

You aren’t here to read slides, show the code written earlier, or even do the live coding.

You are here for only one reason. To help the students when they get stuck.

During my workshops, we do assignments almost all the time. The students get the task, and they have some time to finish it independently. Usually, they have three times more time than I need to complete the same assignment. Sometimes more.

I answer the questions and help them when they have a technical problem. Answering questions and helping with too difficult problems is the only purpose of having a teacher during the workshop. Everything else could be pre-recorded or automated.

How to teach a workshop

I follow a simple formula every time I can:

  1. Show and explain one or two examples.
  2. Show the assignment and explain it. The assignment should have an automated test to verify whether the students succeeded. At the beginning of the workshop, I show how to run those tests.
  3. Give the students some time to work on their tasks. During that time, they can ask questions or share their screens to show the errors they get.
  4. Show how to solve the assignment and explain the solution.
  5. Answer the questions about the example solution.

I have a special assignment prepared for the end of the workshops. We do it during the last hour if I have a one-day workshop. During weekend workshops, we spend 3 hours on this extra task. At the end of the workshop, I split the students into groups, and they work on a large task. The assignment requires all the skills they have learned during the workshop.

For example, one day, I was teaching a data extraction workshop for data scientists. During the final assignment, the participants retrieved data from a database. After that, they needed to scrape a website to get more data and produce an Excel file.

That’s it. In my opinion, you don’t need anything else.

To learn how to code, you must write code. Because of that, I want to maximize the time spent programming.

Did you enjoy reading this article?
Would you like to learn more about software craft in data engineering and MLOps?

Subscribe to the newsletter or add this blog to your RSS reader (does anyone still use them?) to get a notification when I publish a new essay!

Newsletter

Do you enjoy reading my articles?
Subscribe to the newsletter if you don't want to miss the new content, business offers, and free training materials.

Bartosz Mikulski

Bartosz Mikulski

  • Data/MLOps engineer by day
  • DevRel/copywriter by night
  • Python and data engineering trainer
  • Conference speaker
  • Contributed a chapter to the book "97 Things Every Data Engineer Should Know"
  • Twitter: @mikulskibartosz
Newsletter

Do you enjoy reading my articles?
Subscribe to the newsletter if you don't want to miss the new content, business offers, and free training materials.