Last weekend, I spend my entire free time teaching an iOS workshop at General Assembly to 12 very highly motivated beginners. They say that by teaching, you learn. And I definitely did learn a lot!
Here are some things I learned about teaching that I’ll make sure to do when I teach again (soon)!
Brush Up On the Basics
I didn’t realize how many concepts I take for granted as a more experienced programmer. I was prepared to answer questions about more complex programming patterns, such as the Delegate pattern and blocks, but I stumbled when people asked me what a property was or what a Class or Object was.
Have Advanced Content Ready To Go
The students in my class were of varying levels of programming, so I should have anticipated that some would finish most of the Day 2 tutorial by the end of Day 1! I had to wake up early on Sunday to create a much more advanced tutorial, which most people finished in Day 2 without issues!
If you’re teaching people with a bunch of different levels of experience, have different levels of content ready to go!
Make it Personal
I really hate doing tutorials about how to make yet another To Do list. It does not personally excite me at all. So when I was creating a tutorial for my General Assembly iOS workshop, I came up with the idea of making a Resume app. What could be more personal than an app about yourself?
The great thing about the Resume app is that the tutorial can be generic, but the content in each student’s app will be different (their photos / their bios). Here is one student’s About me page:
While some students were really focused on just getting through the tutorial, some really took the time to improvise and look up things they wanted to learn.
For example, one student, a designer by day, took a bunch of time looking up how to add gradients to images. Another student figured out how to make his image circular. Another student figured out how to make the scroll view’s content offset mathematically correct using the size of the view, the text view, and the status bar on the About Me page.
Alena, the student in the About Me screenshot above, took the time to figure out how to add an Launch Image and change the Tint Color of her app to gray:
I highly recommend having some free creative time built into your content to really have the students improvise and work on things that they are personally interested in and are curious about!
Have a Good Mix of Lecture / Working
I only had about a week’s notice before I taught the iOS workshop, so I focused on creating the most scalable content first – a tutorial. The tutorial had a lot of hand-holding details in the beginning, but became more brief as it went on assuming the students should know what to do from the beginning of the tutorial.
During the workshop, I had the students pair up and work on the tutorial at their own pace, while helping each other. I walked around and helped / explained concepts to students in small groups during the class.
The class ended up very hands-on, which is fun, but the feedback I got was that the students wanted more lecture, especially about the basic concepts (see tip #1!). For my next class, which I’ll likely teach in February, I will focus on adding a substantial lecture component to the class!
Have you taught programming to highly motivated beginners? What tips do you have?