Becoming a better programming teacher
About a week ago I got an email through San Francisco Ruby Meetup Group about a workshop on becoming a better programming teacher and given my background and passion for education, it was a no-brainer to jump in. A four hour workshop was organized by General Assembly, a company that provides bootcamp like programs, part time courses, classes and workshops for everyone who wants to become a better developer or change their career into development.
I was especially interested because of the pair programming aspect of the workshop. In our university in Turku, Finland we use pair programming in freshmen programming classes (with 100-150 students) as a key part of our course logistics and it has proven to be really powerful tool to enhance learning experience and to get students to meet new people. Every week for 2 hours, we have a session in a lecture hall where students pair program through a set of exercises in a platform that provides instant feedback and records students’ progress so both students get the points they earn while doing it together on one computer. We don’t really enforce any pair programming paradigms but students change the one who’s driving every 15 minutes or after each exercise so both students get to drive and navigate.
Source: https://www.flickr.com/photos/78453620@N00/552208117/ (CC BY 2.0)
My job is to bring you to the edge of tears without making you cry
In a workshop of about 20 people, it was great to hear experiences and opinions about pair programming in different situations: small classrooms, bringing new junior developers up to speed or even in interview situations. I was expecting to catch a few new tricks to my teaching repertoire but in addition to that, I got an experience that opened my eyes. Not only did we discuss about how people feel about using pair programming but we also did a little experience of how it would feel like to be a student with little to none idea of what he is doing.
Source: http://en.wikipedia.org/wiki/File:Gospers_glider_gun.gif (CC BY-SA 3.0)
We had a task of building Conway’s Game of Life but the catch was to do it in Fortran since that would be a new experience for (almost) all of us. If you are unfamiliar with Game of Life, read more from the link but it is a cellular automaton system that is often used in code retreats. And that was the moment that reminded me what our students go through. To my surprise, I found myself kinda petrified. Suddenly I was really reluctant to do this, thinking that the other developer would think I’m a bad developer, I felt like I don’t want to do this because I really suck in Game of Life (I have done it in multiple code retreats and still I have no idea how to do it). And in Fortran? I have no idea how to code Fortran or even what kind of language it is.
And so I realized that those are the exact feelings our students go through and I had not been thinking about that at all previously. And let me say, I am a decent programmer and still I felt like that. Just imagine people who have programmed for about a week, don’t know even what questions to ask and we put them to pair program with people they have just met or have never met before. I am not saying we should not do it. We absolutely should, it is really efficient way of learning and it vastly improves learning results of our students. I am just saying that only now I really understand what some of our students are going through in our classes.
After I have finished my internship in San Francisco and I go back to university, I definitely have a better understanding and some new tricks up my sleeve to make the pair programming a better experience for our students.