From: David Masover Date: 2008-05-29T05:52:23+09:00 Subject: Re: Rails tool, advice much appreciated On Wednesday 28 May 2008 14:37:56 Mark Wilden wrote: > On May 28, 2008, at 4:03 AM, Albert Schlef wrote: > > > Mark Wilden wrote: > >> Programming is much more about knowing where to find > >> the answer > > > > Flash cards aren't meant for "finding the answer". That's because > > they're random (and flashy ;-) > > That's exactly what I meant. Since programming _is_ about "finding the > answer," I don't think flash cards are the best way to learn a > framework. But learning a framework is very different than learning to program. There are a few Rails-isms that are very much syntactical, like 5.hours.ago > I try to state it more simply: Flashcards are great for memorizing > stuff. Memorizing stuff isn't very useful in programming. Therefore, > flashcards aren't very useful to learn programming (including learning > a language or a framework). I think the point is that learning a framework is very different than learning a language. Learning a language involves a new way of thinking, and problem solving, and a bit of syntax. Learning a framework is mostly memorizing. Simple example: It would probably take less than a day to teach any programmer C, assuming they didn't know. There's just not much to it. However, to learn to _program_ in C, you're going to want to know the C standard library, at least. That's going to mean knowing things like strcmp. And it's going to be almost entirely memorizing. There is some overlap, of course. Some frameworks, especially in a DSL-heavy language like Ruby, will play tricks with syntax and with your assumptions about the language. But I can see why this argument is being made for Rails -- once you grok MVC, and a few odd conventions like method calls in your class definitions (has_many, validates_uniqueness_of, and friends), the rest is mostly going to be memorizing details like the difference between AssociationProxy#size and AssociationProxy#length. (That's important, by the way!)