When I started learning Chef in earnest I realized quickly that my need to know what was happening was leading me to need to dive into a book on Ruby and figure out what all the magic I was seeing in Chef was really about. Chef has an amazing way of being usable for those who don’t know much Ruby, but I’m the curious type that just needs to know.
I started out with The Ruby Programming Language but found it to be too much of a reference work that basically stated facts about the language instead of walking the reader through the learning process. I was delighted to find Programming Ruby to be exactly that.
I was able to get through the book in a few days. It starts you out with objects, which for Ruby is the right place to start out. As I’m teaching my son how to program, the concept of objects is very easy for him to pick up. You don’t need to start with primitives, then control flow, then objects for people to learn. Learning is less logically structured than that. People don’t think like computers.
Each chapter in the book is about fifteen to twenty minutes of time investment and walks you through an example that you can easily code on your own. I find that when learning these things, I can’t just read it and know it. I need to do something as well. This book did a great job at keeping me engaged with my ruby interpreter as well as with my mind.
In November, I set a goal to be working with Ruby every day by February. This book did a great job at making the goal possible. It demystified how Chef was doing its magic, but it has done so much more. It has opened me up to a whole new world of possibilities by quickly being able to script a solution to a problem without having to go through all the hoops of a statically typed programming language. While I still love C# and will use it for certain problems, Ruby is not a part of my life, thanks partly to this excellent book.