Ah! Exactly. Dave, where did you find this out? Or is this just ROR tribal knowledge? Sam, yes, that link (“something like this”) is what I was looking for. The page leaves me wanting more though.
I’ve read (somewhere) that the ROR community relies more on people reading the source code as the de facto documentation rather than writing formal documentation. This might work for the early adopters but I just cannot imagine how ROR will gain wide spread adoption without a much more serious documentation effort. I think a lot of the tutorials tell you how to do things but I get this feeling that people are left wondering what to do next. Were is the ROR body of knowlege, like the Perl “Camel” Book for Perl programmers for example. I knew when I started learning Perl 14 years ago that I could read the Perl documentation and find answers to my questions. There was a complete set of documented functions and language features that I could refer to to grow my understanding. Each new release of Perl just made the documentation even better. With ROR, the information seems rather scattered. I keep asking myself what do I really need to do to really learn ROR.
For example, to learn Perl (now) I would…
- Read the Learning Perl book. Write a few scripts.
- Get the Camel book and read sections for script areas I’m weak on. Start writing modules.
- Study data structures, module layout, and object oriented programming aspects of Perl. Start wring OOPs modules.
- Expand to CPAN to get modules written by other users for pieces I did not want to write myself. Include modules in my work from CPAN.
- Get the more “expert” level books on Perl to move into advanced subjects.
What path should a programmer take to ramp up on ROR? It would be great if you could sketch out a “how to learn ROR” road map. For me, so far, it’s been:
- Read “The Ruby Programming Language” O’Reilly book
- Read “Programming Ruby” pragmatic programmer’s guide (beta book)
- Read “Agile Web Development with Rails” 3rd edition (this forum), follow the tutorial.
- Consult “The Rails Way” by Addison Wesley - So far this book has been a slow read and seems to dive into the parts without really giving me a feeling of context.
- Consult “Rails Cookbook” by O’Reilly - leans towards a focus on the parts, assumes knowledge of the whole but is a step in the right direction
- Consult “Advanced Rails” by O’Reilly
And mixed into all that, consult the Rails API on the web. This seems like a haystack of knowledge, so I don’t really know what pieces to read or focus on. Oh, and I have “Rails Recipes” too but that assumes the person is up and running with a working core knowledge base and the code is a bit dated now.
Consider this. A google for “ruby on rails” leads me to http://www.rubyonrails.org/ as the first search result. This site leads me directly to your book under “getting better” (http://www.rubyonrails.org/docs). So, the default first stop people are going to take when trying to learn ROR is your book. It would be nice if your book could sketch out the lay of the land on how to learn ROR and get the root documentation. A number of the reviews of the ROR books on Amazon complain about the absence of information like this. (“After I read this book, then what do I do?” sort of thing.)
One of the things I’ve noticed too is that with programming by convention, there are A LOT of assumptions made regarding how things work (meaning what’s done for you by magic). Where are those assumptions documented and how do I learn how to intelligently override them? I don’t want to break all the conventions but I’ll need to know the advanced things when I develop more complex web functionality. The downside of coding by convention is that when I look at the code, I cannot connect all the dots. Yes, I see that it works, but I’ve no clue how or why because I can see why it works, the code that is really running is behind the scenes. It’s the same frustration new Perl programmers have when they see a Perl program operate on the $_ and @_ variables but those variables are not coded into the source explicitly, except in ROR, it’s an order of magnitude worse because there is so much more being done for you.
The know how seems to boil down to:
1. Show me a working example. Your book covers this.
2. Tell me everything that is being done for me behind the scenes in the context of the “big picture” MVC world view. I think this is the second half of your book as well as (3).
3. Tell me how to override and/or extend the default magic actions
4. Where do I find the first person (not second person) documentation on all those things so I can take it from there. This is where there seems to be a deficit in ROR in general.
This has been a bit of a ramble, I hope you don’t mind, just trying to help.