You may have heard from such places as “instant message”, “t3h twitter” or “that one coffee shop Trek hangs out in all the time”, that I’m planning on finally putting together a book for Rails beginners. Many will scoff: there are quite a few books already aimed at Rails beginners (including my currently personal recommendation Simply Rails 2). Plus, Rails 3 (with some pretty major changes) is right around the corner which will probably require reworking every example in the book mid-writing. With both a saturated market and major revision looming, this very moment in history is probably the worst time for writing a book about Rails.
Still, I find myself at a moment in my life particularly suited to writing. I’ve spent time explaining Rails since nearly the beginning (starting with a few people in September of 2005). Over the last four years I’ve have a nearly unbroken streak of teaching Rails to classes, groups, and individuals (joined by the amazingly brilliant Jesse Sielaff). Even including my 11 month engagement doing 80+ hour weeks at a startup working in Rails I’ve logged more hours explaining Rails than I have using it.
Rails has also changed a lot over the years. The pieces have become more cleverly designed. The patterns have become better understood by the people using them and more latent inside the system itself (remember a time when a RESTful app was more a clever trick than required practice?). These improvements have made Rails easier to explain and easier to teach in a systematic manner (unlimited choice is the enemy of the beginner).
Jesse and I have learned a lot about teaching Rails over the years. I’m hoping to capture some of that knowledge in print both for use in future courses and for those who want to learn Rails on their own.
What It Will Be
Our basic theis for teaching Rails is “tricks won’t work”.
Rails includes a ton of features that can increase the speed of development for experts. These features are absolute poison for a beginner. They make Rails seem like a collection of clever shortcuts instead of thoughtfully crafted framework for writing web applications. I have come to fear the phrase “Rails Magic.”
Even something as common for Rails programmers as form helpers represent a major conceptual hurdle for a beginner. I’ve watched literally several scores of learners stumble trying to understand how forms helpers tie into controllers. Most, sadly, end up just “trusting the magic.” They’ll use brute force later in their code to work around some problem that, if they understood how Rails handled form submission, would be trivial to solve.
Jesse and I teach Rails with no tricks. You’ll find no script/generate resource, or even script/generate controller. Definitely no form_for. Something like map.resources is too magical to start. Hell, we don’t even show people link_to until they’re ready.
So, if you’re a Rails beginner (of have even been doing Rails for a while but it still feels too magical for your taste) give me shout on twitter @trek if you’d like to beta-book this with me. I don’t know what compensation I can offer (other than some “freeducation”). If there’s someone you think could benefit from a book like this, feel free to send them my way.
I except beta-bookers to know HTML, CSS, and enough Ruby to be a danger to themselves.