in reply to Re: Learning methods (valid use for reinventing the wheel?)
in thread Learning methods (valid use for reinventing the wheel?)

Different people pick up things differently. Educational research has shown that.

Most people use a combination of the above in different situations, depending on how "at home" they are in the material they're trying to grasp. Obviously most people wouldn't even think of re-implementing Perl when they're trying to get to grips with the language in the first place.

But I guess sometimes, just sometimes a bright person comes along and does just that. Then it's up to the rest of the world to judge whether it is any good or not.

Liz

  • Comment on Re: Re: Learning methods (valid use for reinventing the wheel?)

Replies are listed 'Best First'.
Re: Learning methods (valid use for reinventing the wheel?)
by Abigail-II (Bishop) on Oct 10, 2003 at 10:58 UTC
    My point is that learning to use something by implementing it yourself only works in a limited amount of cases. Only if reimplementation takes about the same effort as learning it in another way, it's efficient enough to do. So, it works for simple, small things, like most of the CPAN modules. But it's rather inefficient for things like Tk, perl, relational databases, operating systems, driving a car, learning a language or operating a television. And sometimes, it's even impossible. Surgeons don't learn their trade by reinventing the human heart.

    I'd say that when it's efficient to learn something by implementing it yourself is relatively rare.

    Abigail

      I'd say that when it's efficient to learn something by implementing it yourself is relatively rare.

      Many big things you mention (language implementations, GUI toolkits, RDBM systems, etc.), IMHO, make up a small precentage of the number of libraries or applications out there. For every RDBM, there are a few dozen SQL-related modules that could be implemented by any competent coder. You also mentioned Operating Systems, which actually is something that many people have learned by creating their own (maybe not a sophisticated system that would find a real-world use, but enough to get a basic shell up).

      Perhaps in other areas of life (such as heart surgeons and drivers) what you can learn-by-implementation is limited, but there are quite a lot of problems in programming that can be learned that way.

      ----
      I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
      -- Schemer

      Note: All code is untested, unless otherwise stated

        You also mentioned Operating Systems, which actually is something that many people have learned by creating their own (maybe not a sophisticated system that would find a real-world use, but enough to get a basic shell up).

        It's estimated that about a billion people have online access. Let's assume that everyone who works with computers, is online. So, there are about a billion who work (either in their job, or in their free time) with computers, and hence, have to learn to deal with their operating system. How many people have created their own OS, no matter how trivial, as a way of learning how to use an OS? 1,000? 5,000? Let's be generous, and say 10,000 people learned to use an OS by implementing one. You might call that many people, but it's only 0.001%.

        Abigail