Lessons Learned After Two Years of Teaching Software Development

In the summer of 2015, I got an email from my ex teacher. He wanted to know if I would like to teach software development in school. A few months later I was 21 years old (being by far the youngest teacher in the school – or in the entire country?) and found myself teaching software development in a class room at HTL Dornbirn.

I lowered my working hours at the company I worked at that time from 100% to 90%. Once in a week, I went to the school to teach for six hours.

As a new teacher, I had to put a lot of time and effort into the preparation of my classes. I didn’t want to improvise anything and wanted every class I gave to be well organised and perfectly prepared. Of course this required a lot of time. Some weeks I was working every day, totalling around 60 hours of work or more. But it was worth it, because my classes were great (at least I think so). However, after about a year, I had to lower my work load from 90% to 80% to catch up all the hours I missed at my company. I underestimated the amount of work that I was working for the school instead of working for the company.

So what was good about the teaching experience?

You learn a lot

If you want to teach something, you have to be able to explain it even to someone who has no precognition about the topic. This obligates you to fully understand things. It’s not enough to kind of understand a topic. You have to have detail knowledge about the topic you’re teaching.

Of course you already have detail knowledge in a lot of topics, especially the ones that you use on a daily basis. However, most people don’t know everything. Imagine you need to teach about algorithms - I assume that most developers do have a certain knowledge about these topics, but not enough to be able to teach about them. This forces you to do a lot of research and you will learn a lot while preparing your classes.

It’s a good balance

As a software developer, you might spend most of your time behind a screen, interacting with a computer. Depending on your roll, it might be that you have little contact with people outside your team.

Being a teacher is the complete opposite. It’s a highly social job. You have to be a good communicator. Maybe you even have to do things you’ve never done before (unless you have kids), such as reward very good students or “correct” students.

Having a social job and interacting with young people was a healthy and important balance in my working life.

You’re the mentor of tomorrow’s developers

Some of my students never programmed before. I had the honor to introduce them into the world of software development. It was so satisfying to see how fast some students made progress and how interested they were in programming.

Sometimes, I walked into class and students of 16 years asked me if I heard of (insert brand-new framework here). Of course I am not responsible for their passion about programming, but maybe, if I did a really bad job, they wouldn’t be as interested in programming as they are now.

In those two years of teaching, I learned a lot and got to know some extremely talented, young people. Although it was a lot of work, it was worth it and I think it was a good thing to do.

What about you? Would you consider a second job as a teacher?