6

I started a new job working on an application I'm vaguely familiar with, and it's in Perl! I come from a PHP and Java background, so while I understand the basics, there are lot of nuances in Perl that make it troublesome.

I'm supposed to be a UI developer, but the smallness of the office requires me to learn and do a lot more than just javascript. So that was slightly unexpected in some aspects and I'm just thinking about what approach to take with this

So far I've been sifting through the code to understand what each part does, printed out copies of code and try to lookup APIs I'm not familiar with, and so I dunno how effective this process is -- I feel like it's going to take some time -- and I don't want my new employers to feel like I'm not being productive.

Anyone have some ideas or approaches for this kind of situation?

I read some of the questions about learning new languages, but I'm curious to see if anyone's had experience with this with Perl.

2
  • 1
    Make documentation! When printed, you look VERY productive!
    – user1249
    Commented Aug 15, 2011 at 6:24
  • 2
    "I feel like it's gonna take some time -- and I dont want my new employers to feel like I'm not being productive." - don't worry, this is normal. Any reasonable employer knows that getting up to speed takes time (from a few months up to two years in extreme cases). Commented Aug 15, 2011 at 7:53

6 Answers 6

15

Ask as many questions as possible (within reason)

As long as you didn't lie on your resume saying you knew Perl or something.

Why should asking be a problem? It shows initiative and a willingness to learn new tech...

Never, ever, ever be afraid to ask questions.

4
  • 10
    But before you spill them out, think them through first for yourself. Others have work to do as well.
    – Rook
    Commented Aug 15, 2011 at 3:24
  • good point! Im supposed to be a UI developer, but the smallness of the office requires me to learn and do a lot more than just javascript. So that was slightly unexpected in some aspects and I'm just thinking about what approach to take with this. thanks for your thoughts
    – qodeninja
    Commented Aug 15, 2011 at 3:25
  • @Rook: Well obviously, I think asking within reason was a given...
    – MattyD
    Commented Aug 15, 2011 at 3:26
  • 3
    +1 Asking questions (even "stupid" ones) is indeed important; my rule is that it is better to ask several stupid questions than to make one (stupid) mistake. The other side of the coin is to prepare your questions well. Think through the problem, do research, google... and if all else fails, ask good (precise, factual, to the point) questions. Commented Aug 15, 2011 at 7:50
7

I'm not one who usually likes learning programming languages from books, but Perl is kind of an eccentric language where it really helps to understand the design philosophies behind it. I highly recommend the Camel Book in this case.

2
  • Truth be told, I'm not loving Perl one bit. I thought I did myself a favor avoiding the whole cgi mess lol
    – qodeninja
    Commented Aug 15, 2011 at 4:06
  • 2
    If you read the camel book, you'll pick up a good understanding of why Perl is the way it is. Once I did that, I grew to love it. You don't have to love it, but at least you'll appreciate what it's trying to do. Commented Oct 7, 2011 at 15:37
3

Chances are that your new employers have hired you for you; the potential they see in you and what you've achieved in the past. If they wanted a Perl guru, they would've specified that in the job description and you wouldn't have been hired. I'm sure they're understanding of the fact that it takes new members time to accustom themselves with the innards of the company (including learning new languages and practices).

While you may not be crunching out any new code for the development team, it would be a great idea to note down what you have spent your time doing. Write down what you have familiarised yourself with, so you show to youself that you're not wasting time and that you can show to anyone else what you've been doing.

Spend this time learning about your new teammates and discern who you can turn to for advice and teaching.

2
  • 1
    I like the part of writing down what I've familiarized myself with, and I have done a number of diagrams and notes to that affect. I really want to impress my new employers though!
    – qodeninja
    Commented Aug 15, 2011 at 3:31
  • 1
    @codeninja: it is fairly impossible to impress new employers with productivity in an unknown subject. The first couple of weeks/months you impress them and with your personality (the traits you bring to your job) and with your can do/will learn attitude towards the tasks you are given. Commented Aug 15, 2011 at 6:36
2

I follow a two-step process when moving to a new language or other technology:

  1. Curl up with a good book for a few hours.
  2. Start working.

It has been a while, but this is how I started writing Perl. I read the Camel book, and then started using Perl instead of writing shell scripts. At first I was pretty slow, and was constantly referring to the documentation. Gradually I got faster.

Since the majority of developers skip step 1, and just cut-and-paste examples, reading one good book will put you ahead of about 90% of your competition.

0

I can't find the original document I was reading (possibly even a response to another question on here?) but I have heard that fixing problems is a good way to start in a new environment.

Find out what minor problems need fixing and fix them to gain some knowledge of how the system (or some small part of it) actually works and make it feel like you are doing something productive.

Sorry if this response is too general and not specific to the language you are asking about.

0

I've been in the same situation. I started this new job of mine this April and I had to learn Perl too. These two books got me started rather quickly:

  1. Perl Cookbook - It's readily available over Amazon.
  2. Impatient Perl - It's a free ebook. Go ahead and google it ;).

I hope this helps. Most, if not all, the Perl work I do here is backend stuff though.

Not the answer you're looking for? Browse other questions tagged or ask your own question.