Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
Occasionally during my day, I find that I have gotten caught up in some programming detail, and that mysteriously the day has gone by, and the deadline for the project that I am working on has slipped yet again.

I always have a tendency to feel self-righteous at this point, thinking ďWell, I need to know exactly how this works, or there may be an unintended consequence in my code implementation,Ē and I feel not only this need for justification, but also a bit embarrassed for not meeting the deadline.

Having to ask for more time to complete the part of the project for which I am responsible (or irresponsible, as the case may be ;-) is a very stressful situation, and I have learned the hard way that it can easily lead to exhaustion, which tends to lead to even more lost time stemming from the extra bugs in my code base.

I know a great many programmers who are always looking for new ways to do things, and over my admittedly short and not-so-illustrious career as a web programmer, Iíve found that one of the hardest things to learn as a programmer is the Gestalt Theory, or as I like to call it, learning to see the Big Picture.

In this age of program complexity, there are a multitude of different areas in which one could conceivably get stuck, and without some view of the overall project, you can spend whole days, weeks, months, or even years studying just a single area or aspect of programming. In some scenarios this is fine; for instance, if you are a GUI specialist working on Aqua for Apple, for instance, then it is your job to study user interfaces, and to know them better than anyone else. And if youíre working as a DBA for a multinational banking conglomerate, well, who cares if you donít ever bother to learn mod_perl? (I know, sad but true!)

Just offhand, I can list a dozen programming areas; sockets, file I/O and permissions, graphical interfaces, DBI, persistence, multi-threading, even deceptively simple areas like table design in SQL databases, in which I could conceivably spend weeks mastering the subject matter. This is a luxury I canít afford, and I know of only a very few programmers who have found the means to study the areas that interest them at will.

With such a large number of programming aspects available to us, how can one hope to become an expert in all of them? Well, the short answer is that you canít. Although I would absolutely love to spend a whole day playing with Astro::Moonphase, I simply cannot afford to do so while working on a project. Eventually, one must choose, and specialize in those areas we wish to master. Eventually, we learn to trust the skills of those around us; to rely on the works of others to take care of the nitty-gritty details of those areas in which we are perhaps not so skilled.

And thatís why Perl is such a marvelous beast. Because Perl, to some degree, allows me to select a combination of parts built by some very skillful engineers, without necessarily having to know how to run a tool & die shop myself. Perl lets me see the forest for the trees, as the expression goes. I sometimes feel like CPAN is a giant machine shop, filled with expertly forged axels, shiny spark plugs, and CV joints, and it is my job as the mechanic to figure out how to build a working engine.

When we put those parts together into the engines that drive our sites, we might do well to appreciate the skill that went in those carefully turned modules, but also, perhaps even more importantly, realize that if we had to do it all ourselves, we would never have the time to spend learning the fun stuff. ;-)

In reply to Seeing the Forest for the Trees by Dragonfly

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

  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or or How to display code and escape characters are good places to start.
Log In?

What's my password?
Create A New User
Domain Nodelet?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2022-05-23 17:44 GMT
Find Nodes?
    Voting Booth?
    Do you prefer to work remotely?

    Results (82 votes). Check out past polls.