You have a good point, but consider something else: as software becomes more robust and more sophisticated, there is less reason to get under the hood, unless you happen to like to tinker.

I like to compare this progress to, for example, using a TV set. Back in the day, you had to fiddle with the antenna, position the set just right, play around with the various controls, and your result was a fuzzy, black-and-white image that might be recognizable on a good day. Now you just turn the thing on and pick one of a gazillion channels, and it (usually) works. Sure, you can get in there and play around, but there's no compelling reason to do that unless you just like to know how things work.

I believe it's a good thing to "reinvent the wheel" a bit and learn how some things are done. Just working on something (say, bubblesort) gives you an idea of what issues are involved. Chances are very good that you won't write anything as efficient as what is now available, but that's not the point. It's learning something about how it's done.

So no, you probably aren't going to be able to rewrite all the modules you use. You may not even know what's in most of them - and that's OK, if you don't have a good reason to know. One of the wonderful things about Perl is, if you're curious, you can always check out the code and see what's going on. Another of the wonderful things is, you don't *have* to do that if you don't care, of if you're just too busy to do it.

Another point is that there are simply too many topics for anyone to learn thoroughly. You developed your coding skills doing certain things that are now second-nature to you. They appear simple to you, but would likely give someone else a hard time. Until recently, you apparently had no need to worry about deferencing a complicated hash - so you didn't.

Finally, it's not too late to learn. A third wonderful thing about Perl is the abundance of documentation that comes with it...FMTYEWTK.


In reply to Re: Is too much abstraction a bad thing? by spiritway
in thread Is too much abstraction a bad thing? by silent11

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.