in reply to Exercises on PERL

This thread has given you two types of advice: sources to read and learn more ("Intermediate Perl", "Advanced Programing with Perl") and encouragement to engage in a real problem.

It is important to realize that these two kinds of advice are not alternatives, but rather two different approaches that go hand in hand. Reading the recommended books will challenge you to do things you might not have thought of doing before. This is also an important time to start developing your personal programming style. These books will help you think through the choices.

On the other hand, all formal programming books, no matter how challenging, present a sanitized view of the world of programming. The goal of an exercise is to illustrate a concept, and it can't do that well if there is a lot of noise due to "real life". But if you want to learn programming to "do" something (like earn a living or save the world), then one will eventually have to deal with the messy world of real life programming problems. There are some things you can only learn to handle by experience: how to cope with fuzzy problem definitions, incomplete APIs, bugs in 3rd party modules, poorly written documentation, among others.

It is so easy to think that one is not quite ready for "real problems". In reality, you can never know enough to be ready, so it is better to just jump in. Doing "real problems" together with a book can help you put the book in perspective and understand what is real and what is idealized. When you start applying book knowledge to your own "real life" problems, you will find things hard going from time to time, or even all of the time (at first), but difficulties aren't because you don't know enough. Rather they are because you still don't know how to use what you already know.

Finally, to master anything well one must be passionate about it. Working on your own problems (or developing something cool for someone you care about) is a great way to put your heart into programming. The more you want to make the program work the more you will push yourself. We have monks here that have clung for years to things that were very hard for them simply because the end goal, be it a website, game, or CD organizer, meant so much to them.

Best of luck on your programming journey, beth