25 February 2016

Adventures in Teaching a Ruby on Rails Programming Class

To help get our local chapter of Women Who Code off the
ground, I have been volunteering to help with classes. As the only developer working with Rails on
a day-to-day basis, it seemed like a great idea for me to lead a Ruby on Rails class. Now, I haven’t
even really given a full presentation before, but if I can make a simple blog in under an hour,
certainly I can make a quick class about it.

My coworkers, who have a lot more experience in this area, were a little more skeptical. I got a lot
of reactions along the lines of “That sounds ambitious, but I’m sure you’ll do great.” They were
definitely right. I got to give my first big presentation a few weeks ago, and we didn’t get as
far as I wanted to, but I think both the students and I were able to get a lot out of the course.
We were able to cover a lot of the high-level concepts used in Rails, and I got to learn a lot about
putting a large tutorial together from scratch.

One of the best things you can do after taking on a large project like this is to hold a
retrospective. We already do this for our software projects to help us continuously improve at our
craft, so why not apply the same technique to other things? To make this retro more than “me,
myself and I,” come along with me on my journey and hopefully we can all get something out of this
experience.

Building the course

I always struggle to get started on anything. I always seem not to know what to do next to get
towards my goal. I will put in a little work here, a little work there, but it didn’t seem to come
together into a cohesive slide deck. After struggling for a few nights, I took a step back and
approached the problem like I would approach a new project at work by asking myself the questions

What is our end goal? What is the minimum work we need to do to get there?

This is a lot like how we build a minimum viable product for our clients. Being able to start with
a familiar approach finally made everything come together. We had already planned on making a blog
post app for our Rails course, so that was my end goal. To determine the minimum work to make a
project successful, we would normally use story mapping to lay out what needs to be done. In this
case, I came up with a
single page cheat sheet
that acted as a rough skeleton for all of the information that I needed to teach. I followed along
the cheat sheet to generate the whole course, and the
slides
practically wrote themselves.

Knowing that attendees were not going to walk away being Rails masters, I wanted to make sure
that I gave them enough information to continue on their Rails adventure if they were still
interested. There are tons of resources available around the web for free, from blog posts, to
Youtube tutorials, to local Slack channels filled with people who are ready to help. I’m not sure
that my slides covered that enough, but many of the students joined our Slack channel to keep in
contact with us about Rails and any of our future classes.

Takeaways

The most valuable part of any retrospective are the takeaways and lessons learned from the
experience. I feel like there were several things that I could do better if I did another course,
which seems likely because I’m on the schedule for a TDD session in June!

Rails might be too much for half a day

The class went very fast for both the students and myself. While some might say it was great because
it was action-packed, I didn’t feel like I was able to cover topics in enough depth. Even then, we
didn’t cover all of the topics that I would have liked in the three hours we had allocated for
Rails. The straight lecture format was also a little difficult to keep moving because there were
breaks to keep everyone on the same step. Thankfully, several students let me know that they still
got a lot of the course by just covering the basics. It helped me feel better about how well I did
overall.

Could this problem be fixed by extending the length of the class? Possibly. We had discussed making
the class a full eight hours, but it did not feel quite right. Not only is that a long time to
lecture for the instructor, and a long time for the students to stay in one spot, but the space
was being donated to us. It did not feel right to ask a sponsor to provide a full day of their time
to keep the space open and also feed us for the day.

There is definitely demand for a full Rails course, but I haven’t quite figured out how to deliver
that yet for an affordable price. I am still looking into this issue and hopefully we can announce
something in the next few months to help fill this need in our community.

Slides are not always the best medium

I found myself fighting with the slides constantly. If you happened to take a look at them, you
might notice that the text is HUGE. It’s hard to anticipate the smallest font size that will be
legible if you don’t know what kind of screen you will be working with. This resulted in me needing
to split code examples across a few slides, and not feeling like I could add enough text to explain
what was going on.

After the class, a coworker showed me
this book on React and Webpack
and I really liked how the material is presented. For my next course, I am considering using
something like this. My writing style will likely work a lot better with the book format, and I
think a guided tutorial format will work well for the TDD class. It also completely solves the
issue of having large code examples because the page scrolls. I’ll be sure to write an update to
let you know how that goes in a few months.

Bring plenty to drink

Don’t forget to bring something to keep your throat from hurting too much after presenting! After
four hours of talking, I found myself constantly clearing my throat. I had a large coffee at the
beginning of the session, but I was definitely craving a big mug of mint tea by the end. A nice
warm beverage always helps me keep talking for hours.

Have fun!

In the end, I found teaching a class to be a very rewarding experience. It has helped me get over
the fear of presenting at meetups and conferences, and I learned a lot about my presenting style. I
don’t know if I would recommend taking on a four hour class for your first presentation, but you
should definitely take on a presentation if you haven’t already. It’s a lot of fun to share what
you know with others.

Heads up! This article may make reference to the Gaslight team—that's still us! We go by Launch Scout now, this article was just written before we re-introduced ourselves. Find out more here.

Related Posts

Want to learn more about the work we do?

Explore our work

Ready to start your software journey with us?

Contact Us