Ravi, Perl is a fine choice. Once you get your first language under your belt, the second will be easier and the third one easier still. Here are a few things to prepare-for and expect in your self education:
- You're going to feel like your head is about to explode. In fact you'll feel that way quite frequently.
-
Keep a diary: a nice loose-leaf notebook (a 3-ring binder) with a stack of number-two pencils. When you encounter something that you don't quite understand, write it down in that journal and then... let go of it. Once you've captured it, you can now choose when to pursue it again.
-
Likewise, when you encounter something and wonder, “what's that good|intended for...?” capture it. Write it down. Let go. Yes, one day you will chase that rabbit, but it doesn't have to be right now.
-
Creating even the shortest program and actually getting it to run can be an immensely frustrating experience since computers are inordinately concerned with punctuation-marks. Don't let the frustration build. Put it down. Come back.
-
Eat well, sleep well. Your mind works hardest when you sleep. When you get up in the middle of the night, tiptoe, but stay away from the computer until dawn. (During the day...) exercise. I take very long walks.
-
You cannot “know it all.” Never will. Don't have to. Instead, what you'd like to begin to develop is the ability .. maybe the instinct .. to find out.
No matter how many years (25 for me...) you do programming, you will always be “finding out.” It goes something like this:
- “Sure! I can do that! By when? Oh, sure! No problem! Seeya!”
(You fail to notice your customer's or manager's slight smile as you leave...)
- (Blind Panic.)
- Head-scratching and furious Googling... oh shit, I'm sunk... where's my resume... where's a rope... this is It... I'm so dead-meat...
- On second thought, it does relate to something to remember .. you search .. you explore CPAN .. you find .. you try ..
- it doesn't work ..
(oh shit... kill me now...) you try something else ...
- It Works!! The keyboard grows warm from friction.
- Midnight passes. Dawn comes.
- You succeed! The customer|boss is well-pleased. Your experience has grown slightly. (Your head, on the other hand, is a little bit shinier now.)
-
-
- “Hmmm... I wonder...”
-
- “... ... if I just added one teensy-weensy more feature ...”
-
- “... ... ... it wouldn't take too long, surely ... and it would be so cool ...”
-
And you find that you love it. You've never worked harder but it works, and by golly, it works well.
Very well. A user passes you in the hallway and says,
“hey, that program you wrote really helped me.”
Wham! A new hole opens up in the ceiling...