Recently, I've had the opportunity to teach the Intro to HTML and CSS course with Girl Develop It, a non profit organization that welcomes all, but focuses on teaching women software and web development skills. They not only teach programming, but also teach programming related topics, such as contributing to open source software, and support other organizations that provide women with opportunities in education and development.
The Intro to HTML and CSS course was created for those very new to programming, and started with the structure of HTML code. Some of the students had taken a course in high school or college where they learned the basics of HTML and CSS, but most had no experience with either language. So we started with the definitions of an element and a tag, and and went from there to creating basic structure, and then on to CSS for styling and positioning.
In the fall, I was a TA for a Girl Develop It Intro to JS and jQuery class, which got my feet wet with teaching coding. For those of you who don’t know me, I was a registered nurse working mostly in emergency rooms until just over a year ago - a position that is heavy in teaching about medical issues, medication regimens, and lifestyle changes (in some hospitals I would also sign off on learning objectives for med students and residents, and teach new nurses the things that aren’t covered in school). I was a tutor in bio and chem courses in college, and also taught kayaking and other outdoor skills.
Having 30 students in front of me, however, was a new and formative experience. There were different learning styles and paces to juggle, questions that I answered by showing students how to google for answers to programming questions (How does that clearfix approach we’re using work, exactly?) - an invaluable skill, but unnerving when you’re in the front of the room. We spent time trouble shooting our code together as a class (why isn’t our text wrapping around this div like we expected?). And the most important challenge- how do we keep everyone on the same step, without losing the attention of some, while leaving others behind?
In general, I like using live examples to teach, so that’s how I approached these classes. I learned quickly though, that its easy to get lost, as both instructor and student, when you’re going back and forth between the slides and code. After the first class, I kept all of the examples ready and available in a file that I tried not to change at all during class (the times I did change both the template and the example files, things got a little messy). I also started to not shy away from talking through problems we ran into with the class as a whole instead of fixing them ASAP and moving on. Coding is about problem solving, and learning how to think through unexpected or accidental behavior and to use developer’s tools are just as helpful as learning any other programming skill.
Next time I teach a course I’ll keep a few other things in mind as well. Taking as much time as needed to review material at the beginning of class, and providing a template for students to start with saves a lot of time and energy rather than answering questions about previous material only as they come up (I'll always encourage students to ask questions as well, of course!). Also, I realized that I’m a small component to big picture kind of person, so that’s how I should teach in the future. Some students will be big picture to component learners, but teaching in the style that I’m most comfortable with will help keep the flow of classes more smooth and organized. I talked individually with some of the TA’s for feedback and advice, but I wish that I had asked for more feedback from all of the TA’s and the students as well.
At Wizard Development, we’re working on creating our own course material, and it’s been invaluable to have this experience teaching a large group instead of the smaller groups that I had been accustomed to. I plan on continuing to teach with Girl Develop It and continue developing my teaching style.
Written by Amy Gimma