Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

Re: Finding the path

by Your Mother (Archbishop)
on Apr 15, 2008 at 22:36 UTC ( #680676=note: print w/replies, xml ) Need Help??

in reply to Finding the path

What everyone else is saying. Getting involved in a dev group can be a big growth catalyst too. Peer pressure and publicly viewed code (the code we write for others tends to be a lot better than that we write for our own projects; for me anyway) is a great way to learn. Moose community? Catalyst? Rose? DBIC?

Another excellent tactic for learning is to switch gears entirely. Try Ruby, Java, electronics projects... I found that working with Ajax and JavaScript changed my understanding of CGI/HTTP pretty dramatically even though I'd been doing CGI for years. Rooted out all the weak spots in my competencies. Slinging X(HT)?ML only became natural to me after learning to sling the DOM from JS.

After picking up any new technology you will find your Perl view improves. There are many interesting problem spaces being actively worked on. Social network stuff, distributed data, de-centralized security...

Another big winner is to pick up an abandoned CPAN module. Or start a new one for something like a new web service no one has had time to do yet. Forces you to learn deeper topics like testing and distribution.

Diving into the books can be nice -- I own just about all of them; some in multiple editions at this point -- but I find that I only absorb the stuff well when I can apply it to a problem space.

Replies are listed 'Best First'.
Re^2: Finding the path
by Anonymous Monk on Apr 16, 2008 at 17:02 UTC
    No, don't try Ruby and Java. Ruby is the same language as Perl. Java is not worth learning (there are no concepts in there that you don't already know). Learn Lisp, Haskell, Smalltalk, OCaml, etc. instead. Those languages each contain different concepts that you can make use of in Perl, but might not already know about.

      I would like to agree. Better but each of those has a pretty high barrier to self-edification and fewer places it will be used in a regular career. Plus, some of what you're talking about in "different concepts" can be handled with different code style in Perl. That's why the Higher Order Perl is so nice, it covers some of that.

      I tried to teach myself some Lisp about 3 years ago when I was feeling the same, I'm not progressing feeling, and the resources, tutorials, etc are slim/difficult for a semi-hacker. If I had time now and wasn't resume padding I'd play with something like one of the nascent Parrot driven languages like Amber; or maybe Erlang.

        The way I went about learning Lisp was to find an itch that I not only wanted to scratch, but could not conveniently scratch any other way. It's amazing how quickly you can pick a language up given the right motivation.

        As I'm an Emacs user, this was quite easy to do. For those who are firmly wedded to some other editor, there are a number of other useful packages that can use various forms of Lisp for scripting; the GIMP, for example, uses Scheme.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://680676]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2023-10-04 07:52 GMT
Find Nodes?
    Voting Booth?

    No recent polls found