http://www.perlmonks.org?node_id=805547


in reply to Perl Test

I was put in the exact position you mentioned two years ago. I was given the summer to study and learn Perl so I could do a gigantic data scrape on certain public data available online. To do this I spent a good deal of time with the Llama and writing toy programs. I am still the *only* person who even remotely knows how computers work, let alone able to program, in my office (I have a few peers but they are leaning in other directions).

I had no programming experience or fundamental knowledge whatsoever (had never taken a computing class) and I have to admit the first year or so was really rough. Of course after those 3 months I knew enough to get by and make things work, but my fu was severely lacking. There are really two things though that motivated me: Perl programming was so much fun, and the Perl community was so generous, helpful, intelligent, and enthusiastic. This website is a testament to that - there really is nothing like it in any other field that I know of.

I liked it so much that I started taking computer science classes at a local university. Although I've never heard a mention of Perl and there are no classes that touch it, learning computer engineering fundamentals, as well as OO with Java and Python, was probably beneficial. I don't know if this is an option for you though.

Still, I really wish I had a Perl mentor at the workplace as well. I think my learning would be greatly accelerated (and I still have too much to learn). However having perldoc, perlmonks and a subscription to Safari Online have been a great boon, I can't recommend using these resources enough for learning the language and how to get things don't smartly and correctly. On perlmonks use the Tutorial and FAQ sections, and search some of the posts of the "great" monks - ikegami, tye, tilly, BrowserUK, moritz (and others) for whatever topic you're interested in. The other great resource is of course CPAN - getting to know the documentation through and through of the modules you use all the time is essential.

Update: I just realized you asked for a metric. Here are two that I can think of:

  1. Make everyone (either individually or in teams) publish to CPAN. Just the process of designing, implementing, testing, and possibly maintaining a cohesive unit of work is good experience, even if the module isn't that great.
  2. Have coding competitions at the workplace, and make it fun! I really think there's nothing like competition to motivate people.