in reply to (Ovid) Re(5): A question of efficiency
in thread A question of efficiency

I think, pointing out that my claim that the normal rules governing complex systems also govern programming is wrong because programming isn't governed by the same system is pretty circular.

Actually a lot of really sharp, leading chess openings you do bring out the queen right away. That is a good example of the rule being less important than the exception. For example, in the Winower variation of the French Defense, a popular line is to play Qg4 even before a single kingside piece is developed.

And no, "unlearning bad habits" is really _not_ a normal part of chess instruction. It is done almost exclusively by addition, subtraction isn't employed. If you learn something new, you don't have to unlearn whatever it superceded. Unlearning bad hibits is nothing at all like learning something new, it's a totatly different process. I'm no chess master, but I've been playing tournies for many years and own dozens of chess books.

I had to unlearn a bad habit to stop smoking. I didn't have to unlearn anything to stop writing the spaghetti code I wrote as a teen, I just needed to learn some programming principles and practice applying them. I think this is because of the way the brain works, physically. You don't have a big hash with an index that needs to be replaced. It's more like, you've got a big box, and the new stuff you learn is the stuff closest to you in the box.

In any case, in instruction it is just as important not to teach wrong things, as it is to teach right things. That's why, if you say there are many ways to do it, then it is easy to be right. But when you switch to saying certain techniques shouldn't be used at all, then it's suddenly just as easy to be wrong. It is the same in science... it is easy to prove something _can_ be done with certainty, particularly if it has actually been done. It is very much harder to prove something is impossible.

  • Comment on Re: (Ovid) Re(5): A question of efficiency

Replies are listed 'Best First'.
Re (tilly) 5: A question of efficiency
by tilly (Archbishop) on Jul 19, 2001 at 15:59 UTC
    I think that whether or not unlearning needs to happen has to do with how you learn in the first place.

    If you learn by rote a list of absolute rules, then yes, you will need to unlearn.

    If you learn from the start that in programming you need to constantly make trade-offs, and you learn what kinds of trade-offs the good things that you are learning to do entail, then later you just need to learn more about the trade-offs.

    Applying this to chess, developing your queen early gives the other person an obvious target. What you are worried about is them developing piece after piece, each time forcing your queen to move. And then you wind up with only your queen developed, having been chased around the board, while they have everything out and control the board.

    Teach someone this and they will both learn why they don't want to pull the queen out, and how to take advantage of it if someone else does.

    But if you understand things this way, then you know that it would be nice to develop your queen, and you know that the reasons not to have to do with the ability of the opponent to take advantage of it. As you point out, in some openings this is easier said than done.

Re: Re: (Ovid) Re(5): A question of efficiency
by frag (Hermit) on Jul 21, 2001 at 04:10 UTC
    I think you're right about chess, and Ovid's right about Perl. In Ovid's particular Kung Fu experience, he was kicking in practice but not actually making contact - but once he experienced contact, he learned. In Perl, when you write CGIs it's typically without immediately getting hacked. Once you are hacked, then you can get your feedback to learn from; in the meantime, you can be happily strictless and tainted. Chess, on the other hand, you relatively immediately get your feedback when you screw up, and in a big way (zero-sum games are good for that sort of learning), and from the outset you face the entire task in a combative frame of mind that encourages thinking defensively. Most people don't learn to program that way. Ovid's point is that if they're going to do CGI work for businesses, they should.

    In any case, I think the point stands that bad chess means you lose in game play, but bad CGI code means everyone with a credit card on your site may lose, and in real life.

    Concerning the brain: imho, you're more-or-less right on when it comes to raw acquisition of data, but there is unquestionably interference at the level of mapping that data onto actions, even or especially for abstract 'actions' like making a mental judgement or categorization. And then there's selective blindness - where things that you've learned prevent you from even noticing the things you ought to be learning. Bringing it back to programming, I'm certainly aware of a few personal coding and thinking habits -- not on the same order of magnitude as smoking, naturally -- that have been derailing me lately. Fixing these habits is a process of learning the right thing so well that it swamps the bad habits; to me, the distinction between that and "unlearning" is largely semantic. Maybe you don't have the same experiences (in which case, you're a genuinely lucky man) but I'd propose that a lot of people do.

    -- Frag.