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.

Would you like to help fight youth unemployment while getting mentoring experience?

Develhope is looking for tutors (part-time, freelancers) for their upcoming Data Engineer Courses.

The role of a tutor is to be the point of contact for students, guiding them throughout the 6-month learning program. The mentor supports learners through 1:1 meetings, giving feedback on assignments, and responding to messages in Discord channels—no live teaching sessions.

Expected availability: 15h/week. You can schedule the 1:1 sessions whenever you want, but the sessions must happen between 9 - 18 (9 am - 6 pm) CEST Monday-Friday.

Check out their job description.

(free advertisement, no affiliate links)

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.


Remember to share on social media!
If you like this text, please share it on Facebook/Twitter/LinkedIn/Reddit or other social media.

If you want to contact me, send me a message on LinkedIn or Twitter.


Bartosz Mikulski
Bartosz Mikulski * MLOps Engineer / data engineer * conference speaker * co-founder of Software Craft Poznan & Poznan Scala User Group

Subscribe to the newsletter and get access to my free email course on building trustworthy data pipelines.