NOTE:This blog had a good run, but is now in retirement.
Please see Practicing Ruby for Gregory's more recent works.

How Mendicant University Works

2011-12-02 22:00, written by Gregory Brown

Back in June 2010 I announced via this blog my intentions to create a free online school called Ruby Mendicant University. After a year and a half of hard work, the school is still alive and kicking. These days we call it Mendicant University instead of Ruby Mendicant University, but it’s still very much a place designed to help Ruby programmers improve their craft. In this post I’ll walk you through how our program works so that you can figure out whether it’d be a good fit for you or someone you know.

The entry point into the Mendicant University community is our core software development skills course, which we now offer three times a year. To qualify for this course, prospective students take an entrance exam which uses PuzzleNode problems to determine whether or not they are ready for the course. We try to make these puzzles as fun and interesting as we can so that the admissions process feels less like a chore and more like a learning experience.

I review new applications as they come in, typically within a day or so. I spend 10-15 minutes looking over the submitted code and will occasionally make a decision right away whether to accept or reject the application. However, most applications are send for further review by our alumni to get their thoughts on whether the candidate looks like they’re ready. This typically takes a day or two, but can be longer or shorter depending on the situation.

Once admissions closes, we reach out to all applicants and give them an opportunity to schedule a code review session with one of our alumni, whether or not they were accepted into the core skills course. During this code review feedback is given on what could have been done better, as well as what the student can study in order to improve their skills. This helps accepted students identify their weak points so that they can be better prepared for their course, and helps those who were not accepted figure out what they’d need to do in order to be better prepared for a future session with us. Many students who are not accepted the first time around end up staying involved with us through our mentoring program and IRC channel. Some have even gone on to be accepted into a later session after getting some guidance from us on how to study and practice Ruby programming. We love the fact that our entrance exam tends to draw people into our community rather than push them away, and we plan to keep it that way.

Those who do get accepted to the core skills course soon learn that they have their work cut out for them. Before participating in the core skills session, each student is expected to propose an individual project which they will implement, clean up, and publicly release during their three week session. The student must also come up with a plan for contributing to an existing open source project during their session, choosing from a list of projects that we’ve selected because of their friendliness to new contributors. Both the individual project and community service proposals need to be accepted before the course begins, but we have alumni mentors standing by to help students through the process.

Once the session begins, three open-ended exercises are released. Students are expected to complete the functional requirements for two of these exercises, and must choose one to polish up nicely so that it meets the Mendicant University quality standard. Both the individual project and the community service project also need to meet our quality standards by the end of the course. We set several intermediate checkpoints to make sure these goals are met and that progress happens fairly evenly throughout the three week session. While the course is lot of work for our students and can be a tough balancing act when it comes to time management, the support we offer to our participants is nothing short of excellent.

Shane Emmons and I divide up the teaching responsibilities for each course, taking turns providing code reviews, evaluations, and office hours for our students. We also have a total of four alumni mentors in each session to help our students with informal reviews and general questions. We tend to vary three of the positions while keeping MU staff member Andrea Singh on the mentoring team in each course, to get a nice balance between consistency and new insights. All in all we have 15 students in each course, and 6 people who are available to help them on demand, which is a pretty good ratio. On top of this, we tend to put students together into review groups so that they can benefit from the insights of their peers as well.

The atmosphere of the course is similar to what you might find on a well functioning open source project. Code reviews are happening often via the mailing list, IRC channel, and our homegrown university-web software. Discussions about topics of general interest to Ruby developers happen organically, and as long as they aren’t too much of a distraction add to the overall learning experience in the course. The projects are open-ended and so they can be discussed openly without worrying about spoilers, but because they overlap on theme the students still can interact with and help each other in meaningful ways without feeling like they are being pulled away from their own work.

Those who make it through the session successfully are invited to join our alumni network. This is where they find that the core skills course was just a starting point, and that a great community full of folks with common interests is now available to them. While the Mendicant University alumni network is still something that we are actively developing and evolving as time goes on, it is where our students find opportunities to interact socially with one another, participate in projects, take additional courses, and optionally involve themselves in the forward development of Mendicant University itself. Most of our students contribute back to the program in some way, which is a sign that we must be doing something right.

Underneath all of this, there is a hard to describe yet palpable feeling that what we are doing is more than just some sort of humdrum training program. Our students and staff are folks who care about a lot of different things, and they care enough about those things to want to improve themselves so that they can go out and improve the world in some way. While that will mean something different to every one of our community members, the spirit of courage, kindness, and generosity that our students have in common makes it a wonderful place to teach, and a wonderful place to grow.

If you would like to join us, please take our entrance exam for the January 2012 session. I’d be happy to answer any questions you have, either via the comments on this blog, or via the #rmu channel on Freenode.

NOTE: I only blog here on relatively rare occasions. If you want to keep up with my projects and announcements, follow me on twitter here

blog comments powered by Disqus