O que uma empresa normalmente espera de um desenvolvedor Perl? [fechadas]

8

Existem expectativas comuns dos empregadores em perspectiva quando contratam um desenvolvedor Perl?

Para um estudante que gosta de Perl e Linux e gostaria de conseguir um emprego como desenvolvedor de Perl, o que você recomendaria aprender?

Estou procurando coisas genéricas e aplicáveis ​​à maioria das posições Perl , em oposição a detalhes específicos dos requisitos de uma empresa.

Em outras palavras, quais são as coisas que eu devo saber para me tornar mais atraente para QUALQUER empresa que esteja procurando por um desenvolvedor Perl.

Chankey Pathak
fonte
2
Por que todo o voto negativo?
DVK
2
Você não acha que ser um desenvolvedor PERL, você deve aprender tudo sobre ele, ao invés de focar em um aspecto ou outro
Pankaj Upadhyay
Para todos os votantes em baixa - revisei substancialmente a questão para remover a subjetividade com base no feedback útil do moderador. Sinta-se livre para alterar seu voto negativo.
DVK
Essa é uma boa pergunta. Perl é uma linguagem um pouco datada que parece ter mais do que sua parcela de peculiaridades e expressões idiomáticas. Além disso, existem mais posições "especializadas" em Perl do que "juniores" hoje em dia.
Joshin4colours 11/11
1
@joshin - você tem exemplos específicos de onde o Perl está "um pouco datado"?
DVK

Respostas:

20

Alguns pontos:

  • Como desenvolvedor de Perl, praticamente qualquer empresa espera que você saiba MAIS do que Perl. Mesmo na loja Perl pura, você precisa conhecer (idealmente) JavaScript / desenvolvimento geral da Web; e SQL para trabalho de back-end.

    E a maioria das empresas possui uma mistura de linguagens; portanto, você deve estar preparado para ser Perl / C ++ ou Perl / Java ou qualquer outra coisa necessária. Por mais que o fato me chame a atenção, não há tantas boas lojas "somente Perl" que conheço.

  • Como em qualquer idioma, uma empresa espera que você o use efetivamente. Isso tem várias facetas, algumas são mais importantes no Perl

    • Bibliotecas disponíveis. Este é um ponto MAJOR para Perl, é claro. É essencial ter grande familiaridade com o CPAN e saber quais bibliotecas são consideradas "avançadas" / "mais comuns" para tarefas comuns específicas.

      Você pode recitar - sem solicitar à SO - a biblioteca "padrão" para carregar um arquivo CSV? Para analisar dados fora do documento HTML? Para escrever testes de unidade? Para objetos de zombaria? Para gerar dados JSON? Para ler arquivos de configuração XML simples? Por lidar com hashes ordenados? Para manipulação de exceção (lógica try / catch)?

    • O mesmo vale para estruturas. Você sabe como construir testes de unidade para módulos Perl e testes de integração para código Perl? Você conhece pelo menos uma estrutura de modelos da Web ou, melhor ainda, uma estrutura de desenvolvimento da Web MVC (dica: Catalist :)? Você sabe como usar bibliotecas de conectividade de banco de dados?

    • Você conhece os internos do Perl? Você pode trabalhar com módulos XS ou pelo menos conseguir ler o código?

    • Você conhece os recursos que fazem do Perl uma linguagem única em termos de expressividade e como usá-los? Você pode facilmente usar map, grep, expressões regulares, estruturas de dados aninhados, referências de sub-rotina? Você sabe o que é a autivivificação e como ela permite escrever 1 linha de código Perl equivalente a uma página com código Java ?

    • Você conhece recursos avançados de Perl? Você leu Perl de ordem superior e pode usar efetivamente todas as técnicas contidas nele? Lembre-se de que um dos pontos fortes do Perl é que ele é "quase Lisp" :) - então você precisa poder aproveitar os pontos fortes do Lispy em sua produtividade.

    • Você sabia que a comunidade Perl é considerada um dos seus principais ativos? Você sabe quais são os dois principais lugares para fazer perguntas ao Perl?

      Você participou da tag Perl no StackOverflow - fazendo perguntas inteligentes e tentando responder a perguntas (mesmo que você não saiba a resposta perfeita, e mesmo se ela já tiver sido respondida), a PRÁTICA de tentar responder o tornará um Perl muito melhor desenvolvedor).

  • Como desenvolvedor de Perl, a empresa provavelmente espera que você seja capaz de lidar com o Perl herdado (5.8 e anterior) ou, se tiver sorte, com o Modern Perl. Ou seja, saiba como construir o objeto da maneira antiga (em detalhes - você sabe como trabalhar com objetos de dentro para fora? Como implementar padrões OO padrão?) - e como fazer OO baseado em Moose; Desenvolvimento da Web Catalyst MVC e acesso a dados DBIx ORM. Para este último, ler Modern Perl da cromática é uma obrigação.

  • Uma empresa espera que você saiba coisas independentes do idioma. Algoritmos, estruturas de dados, rede, programação simultânea, design de GUI, teste de unidade, internos do sistema operacional (ou externos - às vezes você pode gastar 30 segundos construindo uma ferramenta de canal de shell Unix que levaria até um desenvolvedor Perl experiente de 1-2 horas para terminar - e às vezes um bom chefe notaria isso :))

  • Uma empresa espera que você seja mais do que um macaco de código Perl. Você tem habilidades de comunicação? Você pode se comunicar efetivamente com usuários e outros desenvolvedores? Você pode escrever código / comentários / documentação claros? Você escreve seu código como se o próximo desenvolvedor que o mantivesse fosse um psicopata furioso que sabe onde você mora? E o mais importante, você está preparado para aprender os negócios que seu código suporta ? Um valor de desenvolvedor aumenta em uma ordem de grandeza quando eles entendem o que seus usuários fazem e como e por que fazem isso e podem traduzir isso em "como posso tornar o trabalho deles mais eficiente com meu produto".

DVK
fonte
2
Eu acho que essa é uma ótima resposta. É preciso uma pergunta bastante genérica e ainda gera muitas informações muito úteis.
Martin Ba
Caro @DVK, por mais que goste da sua resposta, sinto que ela perde várias das mais importantes áreas de competência central de Perl. Nenhum outro idioma fornece suporte Unicode completo, conveniente e versátil, assim como o Perl - que, agora que a Web é apenas 80% Unicode, é realmente importante. Java luta, Javascript é uma piada, e Python e Ruby são mais do que subconvenientes para o processamento Unicode. Segundo, você não menciona a correspondência de padrões, que no Perl não é um, mas muitos estados quânticos removidos do manuseio de expressões regulares em qualquer outro idioma. Use Perl por seus pontos fortes.
tchrist
@tchrist - Mencionei o RegEx em "Você conhece os recursos que tornam o Perl uma linguagem única em termos de expressividade e como usá-los?" seção. Não qualificado para falar sobre Unicode, mas você está muito bem-vindo para editá-lo desde que eu sei que você é :)
DVK
1
Resposta épica DVK. Muito bem, senhor.
Rocklan
1
Eu tenho o emprego de desenvolvedor Perl há 3 meses, hoje eu estava lendo essa minha antiga pergunta e agora sinto que tudo o que você declarou em sua resposta está 100% correto. Resposta muito boa. Obrigado :) e sim, estou trabalhando no código legado (usamos o perl 5.8.5 em nossa empresa).
Chankey Pathak
0

Eu acho que você está certa. Depende completamente do que as especificidades de uma empresa precisam, qual o nível de experiência das pessoas que já trabalham lá e qual é sua base de clientes (ou seja, qual é o conjunto de problemas que eles resolvem para gerar receita). Você provavelmente seria melhor apenas lendo as postagens de emprego e descobrindo quais problemas os desenvolvedores do Perl são utilizados para resolver. Tente encontrar uma empresa que ofereça um equilíbrio de crescimento / experiência que você deseja, cultura e remuneração que combine com o que você está procurando.

Para mim, preciso estar envolvido na solução de problemas de codificação que sejam interessantes e, nesse campo, nem todos os lugares são iguais. Por exemplo, tenho interesse em desenvolvimento web, automação, grandes conjuntos de dados e experiência do usuário. Por isso, gosto de locais que possuem aplicativos da Web que possuem uma base de usuários grande e diversificada com a qual posso interagir para obter feedback sobre o que eles desejam, para que eu possa construí-lo para eles. É uma vantagem se o conjunto de dados em que trabalho for grande / complexo (porque isso é divertido para mim) e se houver oportunidades para escrever scripts de automação (por exemplo, processamento em lote para enviar notificações por email, limpeza periódica do banco de dados e tarefas de massagem, relatórios automatizados etc.).

Que tipo de código você escreve no seu tempo livre quando não está codificando para a aula? Tente encontrar um lugar que grave o mesmo tipo de código.

jefflunt
fonte
0

Juntamente com os pontos, o @DVK e outros desenvolvedores mencionados podem procurar boas habilidades de codificação de programação C, por motivos de desempenho, existem muitos módulos de análise escritos em C; portanto, em algum momento, é necessário depurar alguns problemas. Então, melhor se você souber código na linguagem C.

ppant
fonte
Eu recebo isso agora :)
Chankey Pathak