My family counts many teachers. My grandparents were teachers, my father started as a school English teacher and is now a University professor. My wife changed her successful career to become a teacher.
My own first encounter with education as an instructor was teaching elder kids the proper pronunciation and the meaning of the Beatles songs in the depths of the winter coat check in Moscow school No. 80 (now 1266). I was probably 10. Those kids were 8th graders, probably 15. Why me? I could speak English and my dad had a few rare Beatles tapes. I was also a terrible singer, but I knew what they were singing. Without realizing it, I encountered a magical desire to learn from a group that bullied me into teaching them.
Sgt. Pepper’s Lonely Hearts Club Band …
the school I went to and Gagarin Square nearby
I got an opportunity to teach a Ruby-on-Rails class to a group of 15 developers at GeneralAssemb.ly around September last year. I have given a few 2-4 hour talks at GA to various groups and I was excited by this prospect. The audience in my talks was always eager to learn and I met a large number of smart people through the exercise. Matt, who works full time for GA, would produce a properly structured, six week affair, paid and supported, as with all GA educational events. So we settled on a good size for the class, took lots of student applications, found an experienced RoR teaching assistant, Dimitri, secured a space, arranged office hours and a lot more. The big missing piece was a curriculum that I began working on.
Learning in a classroom is not the same as learning with a tutorial. An online document doesn’t look you in the eyes or help you when you’re stuck. It can’t monitor the room for blank stares of forgotten students. It doesn’t even sweat when live coding doesn’t translate into working software. And a tutorial can’t help you with issues unrelated to the immediate task, such as setting up a working local database or editor. But I learned with a tutorial and I always wondered whether I could be better at what I do had I learned wit ha mentor. I decided to build a new curriculum that would transmit my working RoR knowledge and deeper understanding of the system over the six weeks of tutorship, instead of six months of copying, pasting, stumbling and googling.
How long does it take to create a 12-lecture, 8-week course?
I spent between two and four hours per lecture researching and writing it, then about two hours preparing exercises and doing a dry-run through my own material. This is essential to avoid stumbling during live coding - just like for an important demo or talk, the last thing you want when presenting a course is to type some code and fail in front of an audience. I also created, assigned, reviewed and graded exercises after the first six lectures, which usually takes fifteen to thirty minutes per student, lets say another four hours. And I prepped a talk at NYC.rb too :) This adds up to about 60 hours of preparing for the lectures, about 25 hours of total homework, 24 hours of actual lecturing, 8 hours of project collaborative coding in a classroom (we extended the class by two weeks for this). Grand total 117 hours, which is very roughly three weeks of full time work.
Thanks to GA, the curriculum is now open-source and free for non-commercial use. If you’re teaching a class, consider using it! You can find it at https://github.com/dblock/ga-ruby-on-rails-for-devs. And, while we had our first public pull request this morning to fix a couple of broken links, I can’t wait for some feedback and substantial contributions.