http://qs321.pair.com?node_id=446756


in reply to Re^2: How do you master Perl?
in thread How do you master Perl?

Without a doubt, grokking (as per Heinlein) is a major component of hitting home runs in programming. Certainly, that's why I included both users and management in my list of subsystems. I was actually thinking in terms of getting programmers to understand components of their 'system' (in the biggest sense) that are NOT designed by the same person. Your machine and your OS were not designed by the same person as your program, and your users even more emphatically so. The synergy that makes a TiVo or a Macintosh so intuitive comes from understanding the deeper action metaphors of human decision-making.

I'm not saying that grokking all of these are necessary to produce great (or good) code; but I'd suggest that such an understanding is a goal to strive for on a greater level than understanding the primary programming paradigms. I personally think a good Renaissance (wo)Man programmer is far more adept and far more useful than a hundred code-wankers.

I'd diffidently suggest that your Matrix example is an example of a breakthrough on a much lower level, where a programmer realizes his power on a level of control of an abtract machine which he thinks but is NOT the universe. It's just a movie, after all!

Programming Gestalt is the realization that the hardware IS, the OS IS, Perl IS, users and management ARE, but one can create a glorious dance that brings them all together in a synergistic fusion that creates accomplishment of goals. More like Kwai Chang Caine in Kung Fu. :D

Replies are listed 'Best First'.
Re^4: How do you master Perl?
by brian_d_foy (Abbot) on Apr 13, 2005 at 17:25 UTC

    I like the Kung Fu example, although I never did watch the show. :)

    It that the same thing as saying that the world is what it is, and you just have to deal with it according to its nature? I've been thinking about that too, especially with Perl. People have all sorts of reasons for liking or hating Perl (or some other language), but the language just is what it is. Maybe we get annoyed by something in it, but there's no reason to take these things personally.

    Or maybe I need to watch more Kung Fu.

    --
    brian d foy <brian@stonehenge.com>
      It's too bad it's not shown any more. Our world would be more empowered if more people saw that show when growing up.

      It's not just the ISness of things, but their nature / texture / quirks. If you consider this in the sense of 'just have to deal with it', you've already lost ground. Just as somebody who really appreciates Perl references is a lot further along than someone who just uses them when he/she has to, the environment in which your program runs has it's quirks but they are to be taken advantage of, not just endured.

      Recall the old saying "That's not a bug, it's a feature!" EVERYTHING has such fatures, and a programmer who turns them to advantage is on his way to dancing with the Tao.

      A good example is the Macintosh single-button mouse. "Damn, but that's a huge design screwup," I used to think... until I used one. :D