|go ahead... be a heretic|
More than just your Perl skillsby jdrago_999 (Hermit)
|on Nov 17, 2006 at 00:13 UTC||Need Help??|
Without going into the argument about "Design Patterns Aren't", you need to make yourself familiar with design patterns. Design Patterns are an alphabet used to make up the words which together become a hacker's phrasebook - the vocabulary of hackology.
Check out Object::PerlDesignPatterns and http://www.perl.com/pub/a/2003/06/13/design1.html for an introduction.
Familiarize yourself with Object-Relational Mapping (ORM) and when to (and not to) use it. Take a look at DBIx::Class, Class::DBI, DBIx::Simple, SQL::Abstract (just to name a few things related to the topic).
Spend some time breaking down large problems into simple pieces, like a painter converts the vision of a sunset into curves, color and strokes. Look at the code you write this afternoon or tomorrow morning through the eyes of someone 5 years from now. What will that person need to know about your program? That is what you should document now - while it's still fresh in your mind.
Get comfortable with strict, warnings, Devel::Cover and Test::More. Together they can help you test your code to 100% code coverage.
Read "J2EE In a Nutshell" from cover to cover, two or three times. It might open your eyes to both the benefits and problems of a large cohesive system designed to work together (this is not my direct opinion of J2EE, just something I gleaned from doing so myself).
Read up on "State Machines" and the concepts involved in writing them.
Develop a skill set that allows you to code well in each tier - database, network, business logic, presentation. Read up on Jakarta Struts (O'Reilly has a book on this) and the MVC pattern. This is how web development should be done (not Struts, but MVC). Once you understand MVC, the popular frameworks like Catalyst and Ruby on Rails will make more sense. Your web applications will be predictable and maintainable.
You will get to a point at which no programming task or challenge intimidates you, no matter how complicated it might appear from the surface. You can do all this using your Perl (and whatever for the presentation layer).
Learn how to develop a large application. Although some programming is required, it will become apparent that planning, testing, documentation and communication are all very important and - just like coding - cannot be overlooked.
Read (daily) http://search.cpan.org/recent
Prepare for Perl6 by reading the synopsis documents: http://dev.perl.org/perl6/doc/synopsis.html
Learn how do deal with SOAP as well as ad-hoc web services.
I could keep going but I won't.