10 Lessons from Teaching Newbie Programmers iOS

This past August, I volunteered to teach a group of beginner programmers iOS in Denver through Bridge Troll, an organization that provides free programming classes to women and underrepresented groups. I was glad to finally do what I had promised to do earlier in the year as a way to give back to women in tech through teaching iOS. (Speaking of giving back, I also have been mentoring a college woman studying STEM – go Stephanie, you rock! But that’s for another blog post. ūüôā )

I learned some things from teaching that iOS Bridge workshop that day, which I am happy to share here!

Lesson 10: Some students may need loaner laptops.
You may need to have loaner laptops for people with slow machines. Fortunately, we had some on hand for 2 students who badly needed to upgrade their Macbooks. (Thanks Pivotal for sponsoring the event and having those computers on hand!) To be fair, hardware is a major investment for some people and if you’re looking to improve your life by getting into tech, but you can’t afford the hardware, it can be a cruel vicious cycle. You need a job in order to buy the hardware to get into tech, but you can’t learn the skills to get the job to buy the hardware if you don’t already have the hardware! And for people wanting to get into iOS development, you NEED a Mac because Xcode (the IDE for iOS development) will not run on a PC, so that bargain PC you got on Black Friday just won’t do.

Lesson 9: You will have to update the outdated curriculum.
Even if you already have access to a great curriculum, you may have to update it for the latest SDKs because technology keeps changing. For several days before the iOS bridge workshop, I went through the curriculum, trying to follow it and update it from Swift 1 to Swift 3 (Yeah, it was that out of date! And, at the time of writing this article, we’re now at Swift 4), in case the instructor needed some help with making those changes (I had signed up to TA). The curriculum also required connecting to a 3rd party API that we were no longer using, so updates also required writing code to call and parse data from a completely different API!

Sasha teaching the intermediate iOS class

Lesson 8: Be prepared to help out with things at the last minute.
Not to say all that hard work in updating the curriculum was for naught but … I had signed up to TA for the regular iOS course, and then the night before the course while helping out at the install workshop, Sasha Heinen, the instructor, asked if I could instead teach the beginner workshop. The beginner workshop, of course, had a different curriculum. Which meant that I had only the night before the BEGINNER’S workshop to update the curriculum in order to teach the workshop the next day. The reason this came about was because a number of the workshop participants had self-identified as “beginner programmers” in the pre-class survey. If I wasn’t going to teach a beginner workshop, and no one else was willing to do it, then it’s possible that those students would get lost in the “regular” iOS workshop which was more aimed at intermediate level developers, or those with some iOS experience.

Lesson 7: Meeting a need is more important than being perfect.
So, sometimes although you sign up to help out with one thing, there may be a greater need elsewhere. Was I worried that I would be unprepared to teach on such short notice? Sure. Was I worried that things might be a little bumpy during class? You bet. But I’ve taught numerous times before, indirectly through my blog posts and articles, and directly through the technical presentations I’ve given at local meetups and for my paying clients back when I gave private programming lessons as a freelancer. Teaching was something I was certainly qualified to do, even if it wasn’t going to be perfect. And so, I said yes to teaching the beginner course, since meeting that need was more important than being the perfect teacher.

Lesson 6: Have TAs help you teach the class.
But there are things you can do to make a last minute class run more smoothly. One is to get amazing TAs to help you! I gotta give props to Jeanette Head for being my TA. Several times she reminded me to stop and go over concepts that I’ve taken for granted from being a developer for many years, like: What is a variable? And, what’s an array? Jeanette’s superhero origin story actually began when her mother started teaching her programming when Jeanette was 8 years old (shouldn’t everyone have such an awesome mom!). Jeanette also literally builds robots in her spare time. Thanks, Jeanette, for your help that day!

Now class, pay attention! – is what I might have said

Lesson 5: Figuring out what to teach and what to leave out can be a challenge.
iOS development is a vast ocean. There’s so much to learn and there’s no way to cover everything in a daylong class, whether it’s a beginner course like the one I taught or the intermediate course like Sasha’s group. Sometimes you have to decide to leave some details out just to get through the basic stuff, and provide students with resources to continue learning on their own later. For example, for the beginner course, we focused on laying UI components out on an iPhone 6 screen. We didn’t mess with auto layout, a skill you use to make an iOS app look good on all the iPhone and iPad devices out there in portrait and landscape modes, since this is a topic that entire online tutorials and chapters in iOS books are devoted to.

Lesson 4: Group students together so they can help each other.
Also, get people to pair up so they can help each other. Fortunately, I had a pretty small class, so we just grouped up at one end of the table. With my and Jeanette’s help, they did a great job helping each other answer questions and getting through the class together. You ladies were a fantastic group!

Lesson 3: Everyday heroes work on their skills so they can provide for their families.
Speaking of superheroes, we spent some time before I started teaching¬† briefly introducing ourselves, and why we were there. Two of the students were mothers. Although iOS Bridge didn’t offer child care, they found a way to be there for the workshop and I was so proud of them! It takes a village to raise a child, as they say, and I’m so happy they had supportive family members or arranged daycare to watch their children so they could be there at the workshop. I didn’t ask them where their kids were or who was watching them, because no one would ask a father that if he was attending a training workshop for his career. But the fact that these women were here honing their dev skills in order to provide for their families made them heroes in my eyes! As I told those women, “you are an amazing role model for your kids!” At the end of the day, my students built a tip calculator app. Here are a couple of screenshots:

Lesson 2: It’s about creating a safe space for underrepresented groups to learn.

At the end of the day, iOS Bridge was about creating a safe space for women and other underrepresented groups to start learning something new, and to give them an experience¬† that some of them might not have¬†otherwise had without that supportive environment. For example, Women Who Code provided that safe space for me to learn IoT when I participated in a women’s hardware hackathon in 2016 and since then, I’ve built IoT projects, competed in other IoT hackathons, and become an Intel Software Innovator!

Lesson 1: It takes a village to pull off an event like this.
One final lesson learned is that it takes a village and corporate sponsors that believe in diversity to pull off an event like this, including: rooms/physical spaces to teach, infrastructure/logistics, food, loaner laptops, and amazing teachers and TAs! Thanks to the iOS Bridge sponsors: Pivotal, Turing School, and Google; my fellow instructor Sasha, and all the amazing TAs and organizers from the event page here. And special thanks to Bridge Foundry for creating the curriculum that we used to teach both sessions of the iOS Bridge workshop! It was an honor for me to teach and to be a part of my students’ experience.

Advertisements

Leave a Reply. Note that comments are moderated on this blog.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s