¿Qué suele esperar una empresa de un desarrollador de Perl? [cerrado]

8

¿Existen expectativas comunes de los empleadores en perspectiva cuando contratan a un desarrollador de Perl?

Para un estudiante al que le gustan Perl y Linux y le gustaría conseguir un trabajo como desarrollador de Perl, ¿qué le recomendaría aprender?

Estoy buscando cosas que sean genéricas y aplicables a la mayoría / todos los puestos de Perl , en oposición a los detalles específicos de los requisitos de una empresa determinada.

En otras palabras, cuáles son las cosas que debería poder saber para ser más atractivo para CUALQUIER compañía que busque un desarrollador de Perl.

Chankey Pathak
fuente
2
¿Por qué todo el downvoting?
DVK
2
¿No te parece ser un desarrollador Perl, deberá aprender todo sobre él, en lugar de centrarse en un aspecto u otro
Pankaj Upadhyay
A todos los votantes negativos: he revisado sustancialmente la pregunta para eliminar la subjetividad basada en los comentarios útiles del moderador. Siéntase libre de cambiar su voto negativo.
DVK
Esta es una buena pregunta. Perl es un lenguaje algo anticuado que parece tener más que peculiaridades y modismos. Además, en la actualidad hay más puestos "expertos" de Perl que "junior".
joshin4colours
1
@joshin: ¿tiene ejemplos específicos de dónde Perl os "algo anticuado"?
DVK

Respuestas:

20

Algunos puntos:

  • Como desarrollador de Perl, casi cualquier compañía esperará que usted sepa MÁS que Perl. Incluso en la tienda pura de Perl, necesita saber (idealmente) JavaScript / desarrollo web general; y SQL para el trabajo de fondo.

    Y la mayoría de las empresas tienen una combinación de lenguajes, por lo que debe estar preparado para ser Perl / C ++ o Perl / Java o cualquier otra cosa que se necesite. A pesar de que el hecho me molesta, no hay tantas tiendas buenas "solo Perl" que conozco.

  • Como con cualquier idioma, una compañía esperaría que usted use el idioma de manera efectiva. Esto tiene varias facetas, algunas son más importantes en Perl

    • Bibliotecas disponibles. Este es un punto MAYOR para Perl, por supuesto. Una gran familiaridad con CPAN y saber qué bibliotecas se consideran "estado del arte" / "más común" para tareas comunes específicas es imprescindible.

      ¿Puede recitar, sin preguntar a SO, la biblioteca "estándar" para cargar un archivo CSV? ¿Para analizar datos fuera del documento HTML? ¿Para escribir pruebas unitarias? ¿Para burlarse de los objetos? ¿Para generar datos JSON? ¿Para leer archivos de configuración XML simples? ¿Para lidiar con hashes ordenados? Para manejo de excepciones (prueba / captura lógica)?

    • Lo mismo para los marcos. ¿Sabe cómo construir pruebas unitarias para módulos Perl y pruebas de integración para código Perl? ¿Conoces al menos un marco de plantillas web o mejor aún un marco de desarrollo web MVC (pista: Catalist :)? ¿Sabes cómo usar las bibliotecas de conectividad de bases de datos?

    • ¿Conoces las partes internas de Perl? ¿Puedes trabajar con módulos XS, o al menos ser capaz de leer el código?

    • ¿Conoces las características que hacen de Perl un lenguaje único en términos de expresividad y cómo usarlas? ¿Puede usar fácilmente map, grepExpresiones regulares, estructuras de datos anidados, referencias de subrutinas? ¿Sabes qué es la autovivificación y cómo te permite escribir 1 línea de código Perl que es equivalente a una página de código Java ?

    • ¿Conoces las características avanzadas de Perl? ¿Has leído Perl de orden superior y puedes utilizar todas las técnicas de manera efectiva? Recuerde que uno de los puntos fuertes de Perl es que es "casi Lisp" :), por lo que debe poder aprovechar los puntos fuertes de Lispy en su productividad.

    • ¿Sabes que la comunidad Perl se considera uno de sus principales activos? ¿Sabes a qué dos lugares principales ir para hacer preguntas a Perl?

      ¿Ha participado en la etiqueta de Perl en StackOverflow, tanto haciendo preguntas inteligentes como tratando de responder preguntas (incluso si no conoce la respuesta perfecta e incluso si ya está contestada), la PRÁCTICA de intentar responder lo hará mucho mejor Perl desarrollador).

  • Como desarrollador de Perl, es probable que la compañía espere que pueda lidiar con Perl heredado (5.8 y anterior) o, si tiene suerte, con Modern Perl. Es decir, saber cómo construir el objeto a la antigua usanza (en detalle: ¿sabe cómo trabajar con objetos de adentro hacia afuera? ¿Cómo implementar patrones OO estándar?) Y cómo hacer OO basado en Moose; Desarrollo web Catalyst MVC y acceso a datos DBIx ORM. Para este último, es imprescindible leer Modern Perl de chromatic.

  • Una compañía esperará que usted sepa cosas independientes del idioma. Algoritmos, estructuras de datos, redes, programación concurrente, diseño de GUI, pruebas unitarias, componentes internos del sistema operativo (o externos: a veces puede pasar 30 segundos construyendo una herramienta de tubería de shell Unix que tomaría incluso un desarrollador experimentado de Perl 1-2 horas para pulir) y a veces un buen jefe notaría que :))

  • Una compañía esperaría que usted fuera más que un mono código Perl. ¿Tienes habilidades de comunicación? ¿Se puede comunicar efectivamente con los usuarios y otros desarrolladores? ¿Puedes escribir código claro / comentarios / documentación? ¿Escribe su código como si el próximo desarrollador que lo mantiene es un psicópata furioso que sabe dónde vive? Y lo más importante, ¿estás preparado para aprender el negocio que admite tu código ? Un valor de desarrollador aumenta en un orden de magnitud cuando entienden lo que hacen sus usuarios y cómo y por qué lo hacen, y pueden traducirlo en "cómo puedo hacer que su trabajo sea más eficiente con mi producto".

DVK
fuente
2
Creo que esta es una gran respuesta. Toma una pregunta bastante genérica y aún genera mucha información muy útil.
Martin Ba
Estimado @DVK, aunque me gusta su respuesta, siento que se pierde en varias de las áreas de competencia central más importantes de Perl. Ningún otro idioma proporciona un soporte Unicode tan completo, conveniente y versátil como Perl, lo que, ahora que solo la Web es> 80% Unicode, es realmente importante. Java tiene problemas, Javascript es una broma, y ​​Python y Ruby son más que subconvenientes para el procesamiento Unicode. En segundo lugar, no menciona la coincidencia de patrones, que en Perl no es uno sino muchos estados cuánticos eliminados del manejo de expresiones regulares en cualquier otro idioma. Usa Perl por sus puntos fuertes.
tchrist
@tchrist - He mencionado RegEx en "¿Conoces las características que hacen de Perl un lenguaje único en términos de expresividad y cómo usarlas?" sección. No estoy calificado para hablar sobre Unicode, pero puedes editarlo porque sé que lo eres :)
DVK
1
Respuesta épica DVK. Bien hecho señor.
Rocklan
1
Obtuve el trabajo como desarrollador de Perl hace 3 meses, hoy estaba leyendo esta vieja pregunta mía y ahora siento que todo lo que dijiste en tu respuesta es 100% correcto. Muy buena respuesta. Gracias :) y sí, estoy trabajando en el código heredado (usamos perl 5.8.5 en nuestra empresa).
Chankey Pathak
0

Creo que tienes bastante razón. Depende completamente de lo que las características específicas de una empresa necesitan, cuál es el nivel de experiencia de las personas que ya trabajan allí y cuál es su base de clientes (es decir, cuál es el conjunto de problemas que resuelven para generar ingresos). Probablemente será mejor que leas simplemente leyendo publicaciones de trabajo y descubriendo qué problemas se utilizan para resolver los desarrolladores de Perl. Intente encontrar una empresa que le brinde un equilibrio de crecimiento / experiencia que desee, cultura y compensación que coincida con lo que está buscando.

Para mí, necesito involucrarme en la resolución de problemas de codificación que sean interesantes, y en ese ámbito, no todos los lugares son iguales. Por ejemplo, tengo interés en el desarrollo web, la automatización, los grandes conjuntos de datos y la experiencia del usuario. Por eso, me gustan los lugares que tienen aplicaciones web que tienen una base de usuarios amplia y diversa con la que puedo interactuar para obtener comentarios sobre lo que quieren, para poder construirlo para ellos. Es una ventaja si el conjunto de datos en el que trabajo es grande / complejo (porque eso es divertido para mí), y si hay oportunidades para escribir scripts de automatización (por ejemplo, procesamiento por lotes para enviar notificaciones por correo electrónico, limpieza periódica de bases de datos y tareas de masaje, informes automatizados , etc.)

¿Qué tipo de código escribes en tu tiempo libre cuando no estás codificando para la clase? Intenta encontrar un lugar que escriba el mismo tipo de código.

jefflunt
fuente
0

Junto con los puntos @DVK y otros desarrolladores mencionados, las compañías pueden buscar buenas habilidades de codificación de programación en C ya que por razones de rendimiento hay muchos módulos de análisis escritos en C, por lo que en algún momento es posible que deba depurar algunos problemas. Así que mejor si sabes código en lenguaje C.

ppant
fuente
Entiendo esto ahora :)
Chankey Pathak