The Value of Repetition.. Again

I was struck by a comment in Steve Yegge's not-so-new blog:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/03/the-value-of-repetition-again.html

As Anthony Robbins has said (and many others), “Repetition is the mother of skill.”

I agree completely. I always review the basics. I’m no longer surprised at how many new things I discover that I missed the previous times.

Mark,

You have to be careful there though. It’s not a 2-way street. While skill may come from repitition, repitition does not guarantee skill. I’ve seen people repeat the same thing over and over again for years and never get any better at it. I don’t know why. Most people would either get bored with it or try new ways of doing it, but some people just plod along at the same level for eternity.

Which leads to another thing that has often been said (I’ve got to stop quoting others and start making up some of my own :wink: ) – “Doing the same thing again and again, and expecting different results is the definition of insanity.”

Yep, I do realize I was being very simplistic in my statement. It may not necessarily be repetition in and of itself that increases the skill level, but the fact that it’s always a different version of yourself going over the same material and discovering new things you may have missed before, or seeing things from a different angle than before. That’s why it’s often worth the repetition.

  • freshman comp ( journalism 101): tell em what you’re going to tell em, tell em, tell em what you told em.

  • effective teachers/instructors/profs never just read the book back at the students during class (though some students would rather they did), but find multiple alternative narratives for the material. it only seems easy until you have to do it.

Repetition is the heart of successful advertising, else Coke would never need to buy an ad again.

And actually, on a somewhat more productive note, I agree with Jeff – I reread favorite books periodically and learn, or relearn, something each time. Repetition helps internalize things – musicians and music, craft of any sort, reading and writing.

I think definatly covering from different viewpoints is helpful. However, many people mistake this to signify they should just repeat the same thing over.

In the words of King Crimson:

I repeat myself when under stress.
I repeat myself when under stress.
I repeat myself when under stress.
I repeat myself when under stress.
I repeat myself when under stress.

I equate repetition with practice. I think Michael Jordan once said the game is won on the practice court. Repeat the same moves over and over until it becomes ingrained in you, then in the actual game situation your reactions become second nature. Same goes for software development.

Here’s an old favorite saying that wraps it up nicely - “The only difference between an Amateur and a Professional is that the Professional has mastered the fundamentals.”

The article about Parelli mentions repetition in the light of learning gained- I think this is particularly important - I’ve been training as a ninja for years (no, I honestly have) with the club at my local university and each year with the new intake of students we end up going right back to basics and each year there is something new to learn from simple techniques that seemed - last year - to have been mastered. In terms of programming I often find that having put together a big project in a different language makes me think differently about how I should be working in my more regular and familiar environments- currently I’m back with C# after a while working in Ruby and there are a fair few things I’m seeing very differently. Also, I keep forgetting to terminate lines with semi-colons…

Repetition of code usually reflects a repetition of problems. The fact that there are subtle differences in the problem and usually matching subtle differences in the solution is often lost on people.

People take for granted all the things they take for granted. Computers do not adjust to even minor changes in a problem, someone has to do it for them.

And then you get into the slow and tedious process of refining the originally described problem…

I’ve been training as a ninja for years (no, I honestly have)

Best. Comment. Ever.

Seriously…you read Code Complete AND The Pragmatic Programmer about once a year? that’s repetition for sure! :wink:

This advice is golden. As I went through my physics course, I had a list of the simplest problems from each subject I took that I’d try to solve now and then until the end of graduation. The small stuff always comes up as a part of less easy tasks and having their solution be second nature really buys you time to think.