« Back to blog

My first month in the Ruby Mendicant University

If you develop software and haven't heard of the Ruby Mendicant University, take some time and look into it. Gregory Brown, RMU's founder, is attempting to redefine how the craft of software is taught by employing a free, project based, online curriculum. This curriculum, the dedication shown by the RMU staff, and the feedback given to me by my fellow students resulted in me learning a huge amount and improving as a software craftsman.

The three-week-long "Core Skills Course" is entirely project based -- there are no lectures. Gregory and his assistant instructor, Shane Emmons (@semmons99), maintain office hours via IRC almost every day where they make themselves available to answer questions or perform code reviews. What makes RMU unique, however, is that Gregory encourages the students to review each other's work before submitting a project to the instructors. These peer reviews not only increase the amount of feedback you receive for the code you write, but it also asks that you spend a significant amount of time reading the code of your peers. Whether you are contributing to an open source project, working as a contracter, or working full-time as an in-house developer, reading code is a vital skill that the software development community needs to spend more time practicing. We should strive to optimize our code for readability, and Gregory's approach asks his students to do just that. 

Depending on the students to review their own work does not mean the instructors slack off when it comes time to formally review a submitted project. I was blown away when I received my first round of feedback from Shane ... the post contained over 800 words and several code examples that would improve my project. 800 words! Multiply that effort times twelve students, four projects per student, and add in daily office hours, and you'll have some idea about just how much time the staff invests in RMU and its students. In addition, RMU has a small army of volunteers who work behind the scenes to give feedback to students and improve the homegrown RMU infrastructure.

RMU is always striving to improve itself, so I'll offer one bit of criticism: in my class, the peer reviews didn't begin in earnest until the second week. Perhaps an ice-breaking exercise at the beginning of the course where the entire class reviews a pre-written bit of code would have gotten the reviews flowing. I think it would have shown the students what is expected from a review, as well as jumpstarted the always interesting conversation about what constitutes good code.  

I have been developing software professionaly for about nine years, but I am somewhat new to Ruby and what I know is entirely self-taught. So, I came into RMU having a somewhat spotty knowledge of the Ruby language and its idioms. While I have filled many of those gaps, the three weeks within RMU have given me a firm foundation to build upon and a network of peers eager to help me improve. I will be forever grateful to RMU for not only kickstarting my interest in the Ruby language but also inserting me into a community with a noble purpose and the skills to see it through.