Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
All,
Plato said that in the Republic. In other words, we don't tend to look for new solutions when what we already have works. We can use the principle to expand our current knowledge base. This meditation will take you through the explanation, cause, and a solution to an apparently common problem among Perl hackers.

Explanation
After assimilating enough information to do what needs to be done, many Perl hackers feel lost in what to learn next. I myself experienced this same problem originally as outlined in Road map woes. We feel such an affinity to the language, we want to continue expanding our knowlege even after being confident we can get the job done.

Cause
Perl is an amalgamation of many small versatile tools resulting in a language that easily solves many jobs. It was designed with the programmer in mind so that you could accomplish what you wanted without worrying about things like memory allocation, garbage collection, explicit conversion of strings to numbers, etc. With such a powerful language, you only need to know a little to do a lot. This is the crux of the problem since learning more is not necessary to accomplish what we need to do. Since we do not know what we do not know, it is often hard to come up with a project that will require learning new things.

Solution
Simply solve an old problem in a new way. You can accomplish this by systematically throwing out tools from the toolbox until you don't know how to solve it. On occassion you end up using an old tool in a new way, but this is just as beneficial. In fact, if there is an area you have not mastered, a useful variation on this method is limiting your toolbox to a single tool (solve X using only regular expressions).

It is important to note that the more experience you have, the more unlikely it is that you will find a better solution for the original problem. This is perfectly ok since what we set out to do in the first place was learn something new. You may also find that you have no practical use for what you have learned. That is ok too because it usually becomes a key that fits perfectly in a yet undiscovered lock. It is also ok to pursue ridiculous solutions since you never know what you may uncover in the process.

Feedback
I welcome any and all feedback. I know that some hackers prefer to be more practical in their approach to coding. I understand and respect that opinion. I freely admit it is not a good fit for everyone. Programming is not my primary vocation so I tend to run out of needs and have to invent my own. This method has helped me. I know it won't help everyone, but I hope it helps someone.

Cheers - L~R


In reply to Necessity is the mother of invention by Limbic~Region

Title:
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 How to display code and escape characters are good places to start.
Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2024-04-19 05:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found