[rspec-users] The problem with learning RSpec

Rick DeNatale rick.denatale at gmail.com
Thu Jun 11 17:53:26 EDT 2009

On Thu, Jun 11, 2009 at 2:48 PM, Stephen Eley<sfeley at gmail.com> wrote:
> So...  In the recent five-hundred-and-forty-seventh iteration of the
> "What's the point of mocks?" discussion on this list, David Chelimsky
> ended a message with:
>> [ . . . ]   Really, I think
>> that's what we should all be striving for. Not so much "should I use
>> mocks or not," but "when should I choose to use them?"
> And here...  Here you made me really pause and think.
> David: Now that you're a Pragmatic author -- have you read Andy's
> _Pragmatic Thinking and Learning?_  Damn good book.  The most valuable
> part of it to me was in the first couple of chapters, which laid out
> the Dreyfus model of skill acquisition.  Having learned about it a few
> months ago, I'm starting to see it everywhere now.  I don't intend to
> rehash the whole theory, but it basically says that the development of
> a skill (_any_ skill) follows a predictable pattern:
> 1. Novice (needs clear checklists or recipes; not ready for theory or
> problem-solving)
> 2. Advanced Beginner (can solve typical problems and alter the recipe
> within parameters)
> 3. Competent (understands the theory behind the recipes and can act creatively)
> 4. Proficient (acts on principles rather than recipes; using the skill
> is nearly automatic)
> 5. Expert (defines and innovates the field; works on intuition rather
> than rules)

And look at the chart in the section "Is a Ruby Code-base Hard to
Understand?" in the article which Martin Fowler just published today

It shows a curve of the usage of metaprogramming in Ruby as the
experience of the programmer progresses, along with annotations about
what the thoughts about the technique during the leaning progression.

The progression goes:

Attitude                Usage
Scary and bad       low
Scary and good     at the high end of the sensible range
Obvious and good high in the "over usage" range
Obvious and bad   at the high end of the sensible range

The real key to mastery is gaining experience by making mistakes and
learning not only techniques, but the trade-offs in when and when not
to use them.

Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale

More information about the rspec-users mailing list