Since January 2024, I’ve been teaching at Code4Fun Sydney Programming School, where I’m currently a Lead Coding Instructor. Most of my classes run in-person at schools around Sydney, with some online. A class is usually comprised of 15-25 students, anywhere from about 5 to 13 years old.
What I teach
- Scratch for younger children. Drag-and-drop blocks are used to simplify complex programming concepts and explain them to younger children, without the daunting aspects of typing out their own code.
- Python or Java for the older students, once they are ready for typing actual code. This is where they hit their first syntax errors, and where a big part of my job becomes convincing students that an error message is a clue, not a punishment.
Alongside the regular classes, I am also currently building a beginner cybersecurity course that teaches hashing, passwords, and phishing at a level a ten-year-old can follow. The avalanche demo on this sites homepage started as an idea for that course.
What the job actually involves
| Thing | Explanation |
|---|---|
| Running the room | Twenty kids, twenty laptops, twenty different speeds. Keeping the fast-paced students challenges while making sure nobody gets left behind is something that takes a lot of practice. |
| Lesson design | I write and adjust lesson plans, breaking ideas down into small steps that each end with something on screen working. If an activity doesn’t land with a class, I’d consider rewriting it. |
| Training new instructors | New instructors start as TAs in Lead Coding Instructors’ classes. When I have new instructors in my classes, they watch how lessons run and gradually take over parts until they’re ready to teach their own class. |
| Talking to schools and parents | Parents and school staff often require regular progress updates on students, class progress, etc. |
What it’s taught me
Teaching is the best test I know of whether you actually understand something. If I can’t explain a concept to a nine-year-old without hand-waving, I don’t understand it as well as I think I do. That habit carries straight into security work: writing clear reports, explaining a risk to something with a non-technical background, or documenting how something broke.
It’s also made me very calm about things going wrong live. A projector dying, Wi-Fi dropping out mid-lesson, or a whole class’s project vanishing is a regular Tuesday, and at some point you just have to accept it and work around the problem.