http://qs1969.pair.com?node_id=11131695

The rookie drama

At some point in time, everyone's been a beginner. There's no shame in being one. By contrast, I'd say there's shame in pretending not to be one. These days I was thinking about a matter related not just to learning Perl, but actually related to learning many things.

And just to be clear, I still consider myself a Perl beginner, as even though I started my learning path about 2 years ago, I've only used perl for trivial tasks and for many months didn't touch a single line of Perl code, until last month.

Actually, I'd say I'm proud of being one. The beginning is one of the most enjoyable stages of the learning path (as it should be), if you really take your time to appreciate it. It lessens the burden of having to know some complex details, though it's not to say you don't have the obligation to read docs and do some researching before you ask for help.

I believe the newness of a subject to be motivating (note that I'm referring to newness as "something new to someone", not as "new on itself"). Exploring on something new, that might be helpful (and in the case of Perl, it certainly will) should be enough to get you into learning something.

Why do people hurry?

I must confess that many times I found myself in a hurry to leave this awesome (beginning) stage behind, as I've seen many people doing the same thing. I now believe that to be a mistake. If you don't take your time to enjoy each step in a learning path, then it's like getting to the top of a cards pyramid. Just a wind blow and everything falls apart.

But then I thought to myself: "Why do people do that? Why do people hurry?" Well, I believe I can figure out some of these motivations, as they have crossed my mind many times. I'll be a bit Perl-specific here, but much of these considerations apply to other subjects too.

Fear of being discredited

When you're learning a complex subject such as a programming language, you might feel like much of what you're doing is wrong, simply because you've never had the time to learn how to do proper. That could lead you into thinking: "if someone experienced sees this, I'll become a joke".

You may also feel discouraged to contribute and say things about Perl because then something might be wrong or imprecise and someone could say something like "just stay quiet, you're nothing but a stupid newbie". Though not with these words (and not Perl-related), I've seen people act like that.

Being subject to this is not cool, and that certainly makes you wanna hurry to learn. And that's a bad motivation, because then your primary goal is not to learn, but not being bullied. When learning is secondary, you skip important stuff.

Just a hunch: bullies are probably newbies too. They're just so afraid to admit it, that they act like this. But even when they know what they're talking about, if they're using knowledge to embarass you, then it's shame on them, not you. They're driven by vanity alone and not the desire to help.

You, on the other hand, can always avoid vanity and not let that be an obstacle. If you know upfront that people might mock you (even when you're right) and yet you put your learning or contributing before that, then you'll be fine.

Let's just not confuse bullying with pointing the right direction, as some bad practices should be carefully and helpfully described, so they're not repeated.

Job related considerations

Perl-related jobs still exist, of course, but they've had more popularity in the past. For those who enjoy Perl programming, it may seem like a good idea to convince your boss that you know a lot about it, so that it's incorporated in your workflow.

And that is probably going to fail (miserably). If you want Perl to get some credit where you work, I believe your best chances are showing that it can help getting things done, and yet you don't depend on it.

And please, don't take that last part as an afterthought. The idea of depending on something like Perl is probably terrifying to your boss. Like nightmares-grade terrifying. Saying you're an expert doesn't help, as it may seem like you need to be an expert to get things done.

Now, if your company already uses perl, you might feel tempted to pretend you know more than you do. That's also a mistake, as you might be convincing, in which case you'll be put to face tasks you're not prepared for, or you might not, in which case you could face some (deserved) discredit, or even be fired, so don't do that.

So many nice docs and tutorials

One of the great virtues of Perl is the amount of high-quality documentation available, as well as books, tutorials and specialized blogs. There's so much to read, you may feel like you'll never finish your reading.

And in fact you probably won't. But that souldn't make you hurry. Reading just for the sake of reading is a complete waste of time. You won't learn anything by doing that, so either take your time to read properly, or don't read at all. In other words, hurrying just doesn't work.

Of course, you'll need to be selective. As time is a scarce resource, you need to prioritize what's best and most needed. This is where a community shines. A community (such as PerlMonks) may help curate material that's more appropriate for a beginner. As your learning goes, you'll be more proficient in choosing what's worth your time.

It may seem like shorter tutorials or explanations should be taken first. That's not necessarily so. Often times, taking your time to read a more comprehensive document or book might pay off and help you absorb with more ease the further documentation you come across.

Shorter articles/books might be good if they are concise, but not if they are simplistic, in which case you should just ignore them. Again, with the help of a community it might be easier to choose what's worth your time.

In that regard, I can say the tutorials here in PerlMonks greatly helped me. For instance, I've been doing some review on context and scoping rules, and found great articles on that. These are foundational concepts in Perl and having a good explanation on them has been very helpful. The same goes for many other concepts.

Now, even avoiding useless stuff, you'll most likely miss a lot of good reading too. It's just too much for not so much time. Not being able to read today something you really want to is frustrating, but there's always tomorrow. Here's where you exercise your patience.

The power of a community

As I've mentioned, a community helps a lot in curating your studying materials, but not only that. A community also may encourage you to keep improving yourself, giving feedback, proposing new challenges, and actually merely talking about a subject helps you keep motivated.

So, this is what brought me to PerlMonks. Much is said about CPAN being one of the greatest features of Perl, and certainly I agree, but I also believe PerlMonks is a feature many other languages lack.

In fact, CPAN itself is a community effort, and I believe that's one of the reasons it's so much appreciated by perl users. Of course, it wouldn't do much good if it didn't help us get things done, but the community thing is core to CPAN's existence.

Getting help from a community may be rewarding, but, at least for me, giving back is even more rewarding. Even when it's a very small contribution. We have limitations after all, but we can always do something.

Some things just take time

No matter how hard you try, some things take time. Accepting this fact may be liberating. Again, each step in a learning path should be properly appreciated. The beginning should be the most exciting part of the process, and here's good news: each step is a new beginning.

There's too much hype on being an expert on anything. Becoming an expert should be considered a good thing, of course. But what happens when it's so much desired and beginning is so underappreciated? You try to hurry (and gets frustrated, as it doesn't work).

Aside from that, there are too many "fake experts" out there. People who, as I said, are driven by vanity (and lazyness too). When you act like that you may fool some unwary people sometimes, but don't fall for it, you'll be unmasked sooner or later.

You shouldn't hurry, but if you do, make sure that learning is your primary goal, and not something else. In fact, I believe some other languages are far more popular than Perl just because they have much more immediate pressing concerns involved, that have nothing to do with learning.

And remember, this piece of advice comes from a beginner. As such, I know there's people out there who could say a lot more on this subject. Yet, that didn't prevent me from trying to contribute. For me, that's the spirit in a community. And you don't have to take my word for it, but if you came to the end of this post, then I believe you're at least willing to try.