Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re: Perl beginner to intermediate and senior road map

by rjt (Curate)
on Apr 25, 2014 at 18:50 UTC ( #1083836=note: print w/replies, xml ) Need Help??

in reply to Perl beginner to intermediate and senior road map

While I am a big advocate of self-guided learning, the best self-learners tend to be the people who have already gone through a guided curriculum at a post-secondary (i.e., university) level. What is your education background?

Being a "beginner" at something is great: the world is wide open to you. But it can also be somewhat daunting; tough to find your footing when there are so many parts of the path in darkness. Perhaps I'm waxing eloquent a bit much, here, but my point is, asking for books to read, modules on CPAN, and tutorials, is likely to add to the "daunting" aspect without really narrowing down your options to dig in and start learning.

Find something that interests you--a small project you would like to complete (and one that you will complete well). Something you will be motivated to take from start to finish, regardless of how many obstacles you need to overcome along the way.

Then, treat it like any other development project: start with a solid plan. If you don't have the skills to plan an entire project, you will never graduate to "professional" level. Programming language is irrelevant if you don't have the core software development skills to back it up.

Finally, follow your plan, and make a well-developed piece of software. (Again, core skill, here: you need the ability to honestly assess whether you have actually hit that mark.) It's one thing to Google enough examples and tutorials and references to hack up a 200-line script to balance your bank account, but it's quite another to have that same piece of code be a polished, publishable work that would stand up to review by other professionals. Yes, at this stage, you won't know enough Perl to code at that level, but if you want to get there, you must learn to judge yourself by the standard you ultimately wish to meet, or you will forever churn out mediocre code.

In other words, you're not going to learn the skills to paint the Sistine Chapel by being content doodling stick figures, even if they "get the job done"!

I've interviewed "senior Perl developers" with "15+ years of experience" who couldn't do a basic map transformation. On looking at their hideously bloated and barely-maintainable code, it was clear they'd just never had the courage to look at their code and ask, "how could I have done this better?

Don't rush through things. You're learning, so you especially now want to take the time to do things right; to the highest standard you can. Then do it again. Better. Bring 25-50 line (runnable) examples to Perlmonks once in a while for review to have the bar raised on those standards when you're ready.

use strict; use warnings; omitted for brevity.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (5)
As of 2020-03-31 02:23 GMT
Find Nodes?
    Voting Booth?
    To "Disagree to disagree" means to:

    Results (178 votes). Check out past polls.