Skip to content
All posts

Why you should teach at a Community College

Posted on: 22 April 2023

6 minutes to read

Last year, I took the plunge and held IT courses at the closest German equivalent of a Community College. In retrospect, this was one of the best experiences for my technical career. Here are my reasons to endorse teaching as a Software Developer:

Continue reading to learn more about my personal experiences teaching and my takeaways.


Getting to know the average user

One of the truths of software development is that users will always find a way to break your software. No matter how much thought you put in, how much user testing was done or how expertly designed your interface is. Users will break and misuse it. It is easy to lock yourself up in an Ivory Tower and ignore all complaints by users that are not perfectly tech-savvy. But that’s not actually the reality. And it’s certainly not the reality that you should be designing for.

Teaching gave me an idea of how small details, which I would not even notice, can make users fail. For example, in my course about WordPress, I often created some screenshot-guided tasks that my students were supposed to complete. However, since creating those was tedious (and I admittedly rushed creating them more often than not), I sometimes forgot to include steps like “click on the button”. Also, the students rarely voiced their confusion and instead spent a lot of time trying to figure it out on their own. But with their limited tech knowledge, this would only lead to frustration and eventually to giving up.

The students were not even average users per se. They decided to sign up for the course, they were willing to sacrifice their free time to learn something new, and they paid for it — even though such courses are fairly cheap here. So their motivation during the course was higher than what you might expect from a typical user. This means that if even they get frustrated by unclear user interfaces, you can be sure that your average user will be even more irritated.

From a teaching perspective, this taught me that instructions should be very detailed. More detailed than you think they should reasonably be. I also introduced more frequent checkpoints, I actively asked my students if they have some troubles, and I made sure to always have a backup plan in case they got stuck.

So, as a developer, make sure to

  1. Give instructions which are very detailed
  2. Provide assistance and checkpoints
  3. Think about your users’ emotional state

Multistep registration or activation forms, in particular, can benefit from having optional “Got stuck? Click here for help”-prompts that will prevent user frustration.

Honing your language skills

The only people I normally talk about tech with are programmers or at least techies at heart. So I often fall into the trap of over-relying on technical terms, jargon and acronyms. Especially since English is not my native language, I end up communicating in a weird mix between English terms and — in my case — German prose. My excuse has always been that using such terms helps me to be less verbose and more precise. But that’s not true. It’s just a lazy way of communicating.

Don’t get me wrong, there is nothing wrong with being lazy while communicating. Not every chat you have with coworkers needs to be a deeply insightful and well-crafted conversation. The goal is to first and foremost get your point across. But when you are teaching, you need to be concise and clear. You need to be able to explain complex concepts in a way that is easy to understand without using some specific terms. And especially when students ask questions about some feature’s background, that’s not easy.

For example, many questions about more advanced features of the WordPress block editor required knowledge about HTML. I suggest you to not fall into the trap of saying “Sorry, the answer requires too much background knowledge and is out-of-scope”. Instead, try to give some idea about the why and how. There is actually a lot to learn from those “X explained in 3 minutes” videos. Many of them do a great job at compressing complex topics into a condensed video. And this brevity is really needed to not lose your students in the midst of a lengthy explanation.

My advice is to look up some explainers on YouTube for topics that you are familiar with and pay attention to how they explain things, but also to where corners were cut and where not.

Learning to teach

I never wanted to teach, the idea alone sounded dreadful to me. However, on a random Sunday morning, I stumbled upon this job posting for a teaching position at the local Community College. My biggest motivation was money. Having some extra money is always needed, especially as a student. And I honestly expected it to be a quite low-effort job but was thankfully proven wrong.

One of my mistakes was consistently underestimating the time needed for any task. The administration asked me to draw up an initial plan for the course so that they could schedule and advertise it. For a course about the basics of HTML, CSS and JavaScript, I deemed 4 lessons with about 2 hours each to be sufficient. Because of that, the course ended up being extremely fast-paced and reliant on homework. When presenting ideas and concepts, I quickly realized that I needed to slow down and explain things in more detail. And besides that, students (thankfully) had a lot of questions. So answering them also took a good chunk of time.

In my other course, the first lesson was basically spent to set up all the student’s local environments. For WordPress, I decided to use XAMPP with some pre-bundled WordPress installation. My naïve assumption was that this would work out smoothly, but the issues were endless: work computers without the privilege to install software, Mac users (for which I wasn’t prepared), students that had issues just sharing their screen with me, etc.

Surprisingly, explaining many of the technical concepts worked out quite well. I made heavy use of metaphors, similes and used popular and widespread websites as demonstration. For example, teaching CSS can heavily rely on interactive playgrounds and visual demos.


The added benefit of teaching: You can help people to learn new skills and be more capable when using technology. With the growing shortage of teachers, especially in STEM, any helping hand is needed. In Germany specially, the level of commitment is quite low, and the pay is tax-free until a certain threshold: So if you got curious, check out your local Community College and see if they need some help.

Discuss on Hacker News