Thoughts on Ruby Wizardry
Overall, there is much to like about Ruby Wizardry. The book reads as a story rather than an instruction manual. The story is whimsical, silly, has some mystery, and above all is easy to understand. When teaching something, it does not have be boring. Often, education is looked upon as being ârightâ when it is rigorous, dry, and not enjoyable. If you want kids to learn, then having an enjoyable approach to the subject is a good start. Ruby Wizardry does this very well.
Ruby Wizardry has two kids act as the âheroesâ of the the story. Adults like the King can be rather clueless and are in need of the kidsâ programming skills. I think that students can find this more relatable, or the very least more interesting that kids are not portrayed as helpless or in need of adult supervision. Though there are adults like the Queen who have superior knowledge of Ruby than either of the kids, it is the kids who take that knowledge and put it to use to solve the mystery. While the King appears absentminded, acts as an instrument to reinforce the Ruby lessons. After leaning something new, the King says something along the lines of, âInteresting, but could you tell me again how that works.â The author then goes about teaching the same thing but in a slightly different way. There is constant little reinforcements of ideas and connections to previous topics from the book. The book is also full of little example code that you can type into IRB to see for yourself how the code works. The book even tells you what the output should be so you can always follow along. At the end of every chapter, it is time for the reader to write a Ruby file that covers the subject of the chapter. This invitation to code helps to solidify  how to write Ruby. They even offer a few suggestions on other things (bonus work) you can do with the code. This offers more of a challenge for those who pick up quickly on how to write Ruby. However, there is no provided code for this extra work. Should the reader get stuck on this extra work, they may become frustrated. The final part of the chapter is a formal review of the subject matter.Â
As an aside, I like how Ruby Wizardry addresses some of the implicit biases we have. When one of the protagonists, Ruben, met a knight and a dragon, he was surprised that the knight and dragon were female. Ruben referred to them as a âlady dragonâ and a âlady knight.â Both the knight and the dragon thought this was silly and responded with, âYou wouldnât say a âman knightâ would you?"
The story takes the reader along a journey that introduces some of the aspects of writing Ruby. Since the book is written to use a simple Ruby installation, the reader works with text. In 2015, you can make a good argument that kids will not find text manipulation to be all that engaging. Think of all of the high quality games, apps, websites, and videos that are readily available on their computer or tablet. Putting text in the console just really doesnât compare. Ruby Wizardry is just a book, not a complete educational system. That is, Ruby Wizardry approaches Ruby as it is, not as it could be in an ideal form for beginners. Ruby is capable of manipulating the internet, images, sound, etc. However, Ruby does not come like this by default. The tradeoff of a quick and easy install for a beginner is a limited interaction with the language at first. The same critique could be levied at most popular programming languages.
I did appreciate that the final two chapters dealt with file I/O and getting a web server running on a local host. This was a nice departure from text manipulation done up until this point. As this is a book written for beginners, not much time was spent on either of the two aforementioned subjects. I would make the argument that this was an opportunity lost to really grab the attention and imagination of the reader. These areas could be a real creative outlet. The downside of this is that the book was transition from a general introduction to the language (with a story) to a more focused and difficult instruction manual (without a story). Striking a balance between an accessible introduction and instructions for a specific task is harder than it looks. I think it was wise of Ruby Wizardry to err on the side of accessible introduction.
Many of the criticisms I have regarding this book relate to it not being more aligned with educational needs in the classroom. However, this book was never intended to be a formal textbook. It is an autodidactic tool, and a good one at that. Moreover, I think a classroom curriculum could be developed around Ruby Wizardry. As it stands, the curriculum already has a set of lessons with examples. The chapters have bonus questions at the end of each chapter that can serve as the starting point for supplemental work. It would take some trial and error to work out the details for the classroom portion of the work. I would like to see some more focus for the students. What are they gonna make once they have the basics down? Kids like games. Speaking of, I recently got this book. I would like to see how an approach like Ruby Wizardry differs from game making instructions. Moreover, how could how could a story teach game making? I hope to find out.