Skip to content

Instantly share code, notes, and snippets.

@practicingruby
Last active August 29, 2015 14:10
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save practicingruby/207ebed01a7b4cabd734 to your computer and use it in GitHub Desktop.
Save practicingruby/207ebed01a7b4cabd734 to your computer and use it in GitHub Desktop.

In order to become a permanent member of the RMU community and move on to take additional courses, each student must pass an entrance exam and then go on to successfully complete their core skills course. The entrance exam is mainly used for ensuring that the people joining the program are diligent workers who have sufficient background knowledge to do well in our core skills course. The core skills course itself though, is something I think is something genuinely unique that you can’t find anywhere outside of RMU.

Each core course starts with roughly 15 students submitting a proposal for a personal project to work on during their session. This can be anything Ruby related, but typically involves the student building an open source application or library that scratches a particular itch of theirs. This is the first learning opportunity of the course, as it filters out those who can’t think of anything to work on. There isn’t a list of suggested projects to pick from, students need to come up with an idea themselves. As each student decides what they want to work on, I work with them to figure out what they can reasonably produce in three weeks which would be useful and show measurable progress.

I’ve found that without some tangible goal to focus on, improving your skills is an abstract, disconnected experience that is only enjoyable until the going gets tough and the novelty wears off. No RMU student can even begin their session with this mindset, which I think is a key part of why the course can inspire such rapid growth. But many folks are only likely to volunteer to work on problems which they find sexy on the surface, which isn’t a good way to master a craft. That’s where assigned work comes in.

While the exercises used in each session are different, I try to include one for each of the following topics:

  • Integrating with other systems (typically web services)
  • Modeling non-trivial business logic (often a game of some sort)
  • Community Service (contributions to RMU and the community at large)
  • Classical Computer Science / Engineering Knowledge (Patterns, Algorithms, etc.)

No matter what the topic is, the end result of the exercises is some sort of real application. Even when we’re studying higher level concepts, we don’t stray too far from things that you could actually use in day to day life. The varied nature of the assignments insures that all students are challenged in one way or another, regardless of their relative level of experience entering the course.

While earlier core skills sessions we ran involved some exercises that needed to be done in isolation, the current course is set up in such a way that the exercises can be actively discussed between students without it spoiling the learning experience. This in itself is invaluable, because most of the lessons learned in RMU are not actually pre-determined by the course materials, but instead, emerge through conversations about the problems.

Rather than doing lectures, I maintain extensive office hours on IRC and the session mailing list, spending 15-20 hours per week answering student questions and discusses topics as they arise through the session. This has been extremely time consuming, so I’ve started to enlist the help of some of our alumni in mentoring session students. But this is also the area of RMU that I find most special and unique. I spend three days a week in constant conversation with my students, which means that I learn an incredible amount about each of them and can tailor the program to meet their individual needs and interests.

Students can submit their assigned work or individual projects for review at any point in time during the three week program. I approve submissions which don’t show any obvious gaps in understanding the key points, the others, I provide feedback on and ask them to resubmit when they’ve made revisions. Students who make good progress at the end of the course by getting at least three of four assigned projects approved, and by doing good work on their individual project, gain alumni status and are invited to stay involved with RMU for the long haul

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment