Como desarrollador joven, ¿debería estar preocupado por tener que usar tecnología "fuera de estilo" en el trabajo? [cerrado]

11

Soy un recién graduado de la universidad (¡en mayo pasado!). Mientras todavía estaba en la escuela, quería asegurarme de que tenía un trabajo antes de graduarme, y muy temprano (probablemente demasiado temprano) en mi búsqueda de empleo me decidí por uno en una región a la que esperaba mudarme después de la licenciatura. .

Sin embargo, he estado adivinando esta decisión durante meses, por varias razones. Una es que no tengo muchos desafíos en el trabajo y siento que no he mejorado mucho en la programación desde que comencé aquí. Sin embargo, siempre puedo hacer tiempo para trabajar en código abierto (y en el pasado) fuera de mi trabajo, así que tengo un lugar para superar esta decepción. Más importante aún, estoy preocupado por el hecho de que mi trabajo es básicamente trabajar en una aplicación web Perl vieja y chirriante (usando Mason y un extraño ORM interno).

¿Me estoy disparando en el pie trabajando con una tecnología que ya no es popular y que realmente no me ayudará a conseguir un trabajo en el futuro? Raramente veo trabajos de Perl, y cuando lo hago, generalmente está haciendo algo que no me interesa (cosas de desarrollo web front-end).

La programación de sistemas, la visualización, la programación de redes o, al menos, las cosas de desarrollo web de back-end son el tipo de temas en los que realmente me gustaría trabajar: no parece que mi experiencia laboral actual me esté ayudando a posicionarme haciendo cualquiera de estas cosas .

Schwern
fuente
12
¿Te estás disparando en el pie, no, por supuesto que no. Alguien tiene que hacer lo que estás haciendo, a veces tienes que tomar este tipo de trabajos para tener experiencia, PERO si no buscas otro trabajo. Es posible que a ambos les guste su trabajo y que les paguen. No todos los trabajos supondrán un desafío, así es como es el mundo, no hay nada de malo en usar las herramientas internas y Perl.
Ramhound
13
¡Al menos no es MUMPS!
Martin Beckett
1
No estoy contento, no por Perl (que en realidad es divertido), sino porque no estoy creciendo como programador. Puedo trabajar en cosas fuera del trabajo para mejorarme, es muy difícil, ya que tengo poco tiempo (también soy músico profesional, así que estoy tocando, enseñando, grabando y estudiando en un conservatorio local durante la mayor parte del tiempo). tiempo no estoy trabajando). Supongo que lo que digo es que quiero un trabajo que funcione para mí a este respecto, y tengo miedo de cómo mi posición actual afectará mi capacidad para encontrar ese trabajo.
schwern
55
@schwern: No me preocuparía en absoluto. Simplemente ponga esos idiomas en su CV y ​​solicite su próximo trabajo. :-)
Giorgio
77
Perl es esencialmente la cinta adhesiva de programación que nunca está de más saber y puede ser y se usa para casi cualquier cosa.
Ryathal

Respuestas:

51

En primer lugar, ¡ deja de pensar que tu trabajo no te está llevando más lejos hacia el trabajo de tus sueños! ¡Todo trabajo lo hace! ¡Todo depende de ti!

  • Este es su primer trabajo después de su graduación y todos pueden entender que no tuvo una buena opción o que podría haber considerado otros factores, como mudarse al lugar donde le gustaría quedarse. Esta es una "excusa" válida, puede mencionarla si se le pregunta directamente durante una entrevista de trabajo.
  • Cada trabajo de programación contribuye a su experiencia como desarrollador. Hay muchas cosas agnósticas de lenguaje que cada desarrollador tiene que aprender por su cuenta (implementando arquitecturas poco acopladas, depurando y perfilando el código, escribiendo pruebas unitarias, etc.) que se pueden aprender en CUALQUIER lenguaje , y Perl no es el peor para utilizar. Solía ​​practicar los tres en desarrollo de VBA para MS Access y fue muy divertido.
  • Después de todo, esto no es productivo : mientras considere que su trabajo actual es aburrido e inútil, no aprenderá mucho de él. En muchos casos, su futuro empleador estaría interesado en su "curva de aprendizaje": ¡cuán rápido es en el dominio de las nuevas tecnologías, no en lo aburrido que fue su último trabajo!

Entonces, las formas que lo ayudan son las siguientes:

  • Intenta dominar el idioma con el que estás trabajando tan profundamente como puedas . Mire la etiqueta perl en el sitio SO e intente responder la pregunta que la gente hace allí. Lea documentos sobre muchos recursos para desarrolladores, etc. ¡Intente convertirse en un gurú en esta área!
  • Perl es un lenguaje de paradigmas múltiples, que ahora admite OOP y muchos otros paradigmas. Trate de separarlos del idioma y mírelos individualmente. ¿Qué tipo de herencia tiene Perl? ¿Cuáles son los diferentes tipos de modificadores de acceso disponibles aquí para las clases y los miembros de la clase, etc.? ¿Está fuertemente tipado o no? Muchos idiomas funcionan de manera similar, siempre que sepa cómo funciona en general, capturará fácilmente la diferencia en otros idiomas .
  • Adquiera una comprensión profunda de su sistema actual : ¿por qué se implementa en Perl? ¿Cómo se resuelven aquí diferentes aspectos, como el rendimiento, la seguridad y la fiabilidad? ¿Cuáles son los problemas no resueltos, advertencias, posibles infracciones? ¿Cómo los enfrentarías? ¿Quizás hay alguna refactorización razonable de la base de código actual que se necesita?

Y no se quede en este trabajo por mucho tiempo si no está satisfecho con él , ¡lo suficiente como para aprender habilidades básicas, mostrar su disposición a aprender y su fuerza de voluntad para superar el aburrimiento de sus tareas!

Cuando solicite su segundo trabajo en un futuro más o menos cercano, ¡aún puede ser tratado como un desarrollador junior! Debes tratar de enfatizar lo que has aprendido en tu primer trabajo, cómo afrontaste tus problemas de mantener el código heredado y el sistema brownfield, cómo lograste extender tus horizontes y qué nuevas características interesantes has aprendido allí.

Nunca, nunca diga durante la entrevista de trabajo que está aburrido con su trabajo actual y esa es la razón por la que está buscando otra cosa. "Aburrido" es tan subjetivo y a menudo significa que no eres lo suficientemente bueno como para soportar el desafío de aprender las cosas en tu posición actual y aplicarlas en consecuencia. Muestre su disposición a aprender, a ampliar su conocimiento y obtendrá el trabajo de sus sueños, estoy seguro.

Alexander Galkin
fuente
2
+1 por cualquier consejo que sugiera que los graduados sigan las decisiones, incluso si se arrepienten más adelante. Perdí la cuenta de la cantidad de candidatos que entrevisté que se pegaron un tiro en el pie en la entrevista. Si un candidato admite estar aburrido haciendo el nivel de trabajo esperado de un graduado, entonces los entrevistadores piensan que estarán satisfechos si los empleo. Mi consejo para cualquier empleado nuevo, graduado o no, es buscar desafíos en el trabajo y comprometerse plenamente. En el peor de los casos, habrán obtenido una excelente referencia y, en el mejor de los casos, avances y mayores desafíos.
S.Robins
Tu entusiasmo acaba de alegrarme el día. +1 para consejos muy sólidos.
Raveline
Entrevisto regularmente candidatos para una de las mayores compañías de software, y sin duda lo hace daño a un candidato a haber salido de la universidad en un trabajo que es esencialmente un patrón de espera.
Chris Pitman el
1
+1 - Las personas fuertes no se sientan allí y esperan que las oportunidades lleguen, golpean, se levantan y las crean.
Desolate Planet el
7

Los primeros trabajos en la industria del software a menudo son trabajos malos. Si bien aprenderá algunas habilidades de programación, la educación más importante que está recibiendo es cómo trabajar en una empresa.

Apareciendo en un horario regular, trabajando más de 8 horas al día, utilizando software de control de fuente, tratando con jefes y compañeros de trabajo, recibiendo esa llamada de las 3 a.m. porque el servidor de producción se ha caído y necesita reparaciones ... esas son las habilidades que usted ' Estás aprendiendo de tu primer trabajo.

Dicho esto, si estás aburrido y no disfrutas lo que haces, renuncia. Si cree que este trabajo no lo ayudará a alcanzar su objetivo profesional eventual, renuncie. Hay muchos trabajos para personas con talento.

briddums
fuente
6

Consideraré diferentes aspectos de su pregunta por separado:

  1. Tu primer trabajo nunca será muy desafiante. La razón es que la universidad te está enseñando cosas que necesitarás en 30 años, mientras que las empresas deben trabajar con tecnología que ya está disponible. Se espera que las cosas de 30 años estén más avanzadas que el estado actual del arte. El intervalo de tiempo de medio año también hace que el trabajo sea diferente de lo que estás acostumbrado en la universidad.
  2. El aprendizaje se realiza prácticamente en su propio tiempo. Este es un hecho desafortunado, pero el costo de las personas es tan alto que siempre deben estar haciendo algo productivo. La mejor alternativa sería si puede combinar el aprendizaje y el desarrollo productivo, pero luego trabajará con tecnología que aún no conoce, y puede causar problemas simplemente porque no comprende la tecnología que está utilizando. Si desea crear cosas que realmente funcionen, el aprendizaje debe realizarse fuera del entorno de producción. En muchas empresas esto solo significa que es su tiempo libre.
  3. Debería considerar a Perl solo como un desafío: cómo mejorar sus prácticas de trabajo para que sean útiles no solo para Perl, sino para cualquier sistema nuevo que encuentre en los próximos 30 años.
  4. Al aprender cosas nuevas, concéntrate en los fundamentos. Perl tiene expresiones regulares, tablas hash y muchas buenas estructuras de datos. Todo el conocimiento de cómo hacer un mejor uso de ellos es útil en el futuro.
tp1
fuente
El punto 2 me da un poco de miedo. Siempre tuve una buena habilidad para la programación desde que comencé cuando era muy joven; no era algo en lo que tuviera que trabajar muy duro, incluso en la universidad. Reproducir música, que consume la gran mayoría de mi tiempo libre (practicar, enseñar, estudiar, grabar, etc.), parece estar en el camino de mis aspiraciones profesionales. ¿Existe un trabajo en el que todavía puedo aprender mucho (no solo sobre el proceso, sino también las habilidades difíciles)? ¿En la academia, tal vez?
schwern
1
Por supuesto, hay trabajos que brindan oportunidades de aprendizaje. Los buenos desarrolladores no solo son caros, sino que también son raros: muchos lugares buscarán personas para entrenar a niveles más altos al reclutar. Esto podría ser interno a través de tutoría o con capacitación externa (o ambas).
FinnNk
La música también va a ser útil. Es posible que aún no lo note, pero le enseñará el tiempo preciso y las cosas que las personas fuera de los círculos musicales necesitan usar matemáticas pesadas para resolver. La programación avanzada depende mucho de ambos aspectos.
tp1
2
@schwern La clave es encontrar un trabajo donde trabajes con personas inteligentes . Entonces aprenderá simplemente al exponerse a ellos, a medida que realiza su trabajo diario.
Chris Pitman
5

Lo que usted llama tecnología "fuera de estilo" es de lo que se trata la mayoría de esta industria. La razón es simple: se realiza más desarrollo para mantener los sistemas existentes que otros nuevos. E incluso cuando se desarrollan nuevas, a menudo se desarrollarán utilizando tecnologías que son más antiguas, pero probadas y que se ajustan a un paisaje arquitectónico más grande. Esta es solo la realidad del desarrollo de software. Pocos desarrolladores están en una posición en la que siempre puedan trabajar en la "vanguardia" de la tecnología.

En mi opinión, hay menos gloria en trabajar con [inserte una nueva tecnología súper genial aquí] que en entregar a tiempo, dentro del presupuesto y de acuerdo con las expectativas. Eso es algo que solo puedes aprender a través de la experiencia y que es completamente independiente de la tecnología. Yo diría que estás en un buen curso en este momento. Siga aprendiendo el oficio y el arte del desarrollo de software en el trabajo y manténgase al día con la curva tecnológica lo mejor que pueda fuera del trabajo. Así es como la mayoría de nosotros lo hacemos.

papilla
fuente
+ Los estilos técnicos cambian todo el tiempo. Lo que es genial hoy será que nadie haga eso mañana. Uno solo debe ser competente y profesional. Cuando aparezcan todas las cosas nuevas de gee-whiz-bang, sepa cómo separar el valor de la pelusa y sepa cuándo usarlo y cuándo no.
Mike Dunlavey
5

Disintiendo con todos los demás, este trabajo bien podría lastimarte . Regularmente entrevisto a candidatos que intentan escapar de su primer trabajo después de la universidad. Por lo general, estaban atascados usando un lenguaje que tiende a usarse para mantenimiento más una tonelada de "marcos" internos. En otras palabras, han aprendido a usar algunos juegos de herramientas a los que nunca más tendrán acceso, perdiendo el tiempo en lo que respecta a la empleabilidad.

Además de eso, la mayoría de las tiendas de mantenimiento a las que he estado expuesto no le enseñan las habilidades que necesita para ser parte de un esfuerzo de desarrollo real. Cuando estoy entrevistando a alguien que sale de su primer trabajo, quiero saber que entienden:

  1. Algunos ciclos de vida de desarrollo de software comunes
  2. Fuente de control
  3. Cómo probar el código (TDD, pruebas unitarias, selenio, algo así)
  4. Principios de OOD (por ejemplo: en la universidad esperas que te hayas expuesto a patrones de diseño, ahora muéstrame que realmente los has usado / visto)
  5. Comprensión básica de la arquitectura empresarial (por ejemplo, qué es un sistema de 3 niveles y si alguna vez ha trabajado con uno)
  6. ¿Cómo trabajar con un equipo?

La mayoría de estas habilidades las adquirí en mi primer trabajo al exponerme a personas inteligentes y trabajar con ellas todos los días. Si cree que no está aprendiendo nada (sobre software o negocios), comience a buscar otro trabajo.

Editar: Como nota al margen, recuerdo la búsqueda de trabajo fuera de la universidad. Estaba en una feria de carreras y comencé a hablar con alguna compañía que trabajaba con bufetes de abogados. Comencé a preguntarles sobre sus prácticas de desarrollo, y resultó que estaban haciendo todo en VBA. Les agradecí su tiempo y salí de allí.

Chris Pitman
fuente
+ para tu historia de VBA. No me importa VBA, per se, pero ¿hacer una carrera con eso? Hiciste lo correcto.
Mike Dunlavey
Estoy parcialmente de acuerdo con usted, pero creo que la mayoría de los programadores tienen mucha más flexibilidad de la que ejercen, y muchas de las cosas que menciona son cosas que el afiche podría aportar. Comience a usar el control de fuente, incluso si la compañía no lo es. Anime a otros a seguir su ejemplo. Comienza a hacer pruebas, comienza a tratar de mejorar las cosas. Si lo que estás trabajando apesta, haz que apesta menos.
Christopher Cashell
3

Si yo fuera usted, sin duda consideraría hacer algo de lectura y programación después del trabajo en otro idioma (por ejemplo, Python, Java, Scala, Ruby, C ++, etc.), de modo que cuando solicite otro trabajo, pueda demostrar que tiene conocimiento de idiomas que están en uso más amplio que Perl. Además, si tiene otras áreas de interés, definitivamente leería un poco más.

Por otro lado, tenga en cuenta que muchas técnicas de programación que está utilizando son probablemente las mismas independientemente del lenguaje de programación.

Entonces, nuevamente, mi sugerencia sería: no te preocupes demasiado, pero comienza a aprender algo nuevo en tu tiempo libre. Tan pronto como haya reunido suficiente conocimiento seguramente encontrará un trabajo más emocionante.

Giorgio
fuente
2

Si ya no quieres trabajar en Perl, está bien.

El hecho de que Perl no tenga mucho flash actualmente, no significa que no sea popular.


Me gustaría señalar que el impulso de Perl ha aumentado dramáticamente en los últimos 5 años.

Ha habido versiones más estables de Perl en cada uno de los últimos 2 años, que en cualquiera de los años anteriores.

La mayoría considera que Moose se encuentra entre los mejores sistemas de objetos de Perl hasta la fecha, y solo se remonta a principios de 2006. Los siguientes sistemas de objetos más populares son básicamente sistemas de objetos de Moose simplificados .

Si desea una prueba de cuán popular es Moose , vea cuántos módulos CPAN dependen de Moose .

Entre los módulos que requieren Moose se encuentra Dist :: Zilla , que siempre ha requerido Moose . En caso de que no lo supiera, Dist :: Zilla es posiblemente la mejor forma de construir y lanzar módulos CPAN .


También todavía hay algunos proyectos nuevos y geniales que están usando Perl. La extensión de Lacuna para uno.

Brad Gilbert
fuente
2

Alguien tiene que recoger la basura, limpiar los baños, cavar zanjas y trabajar en McDonalds. En este momento estás haciendo la versión de desarrollo de software de eso.

¡No hay nada malo en reconocer eso y aspirar a algo más grande!

¡Lo que haces ahora definitivamente da forma a lo que harás mañana, el próximo año y los próximos diez años!

¡Cualquier otra persona que diga diferente está tratando de mantenerte deprimido o sentirse mejor por estar en el mismo lugar deprimente!

En cuanto a Perl, está fuera de estilo en el sentido de la palabra "Carrera". Como a menos que quieras hacer una carrera como el chico Perl , comienza a aprender algo más nuevo y más en boga. Python, Java, C # abrirán más puertas y serán más comercializables o algo que está a punto de llegar a lo grande en unos años más como Erlang.

Dicho todo esto, * aprender a no hacer ** es tan valioso como hacerlo , y aprender de los errores de los demás es menos doloroso que aprender de los suyos.

Ahora mismo estás aprendiendo lecciones sobre ambas cosas.


fuente
-1: Alguien tiene que recoger la basura, limpiar los inodoros, cavar zanjas y trabajar en McDonalds. Ahora estás haciendo la versión de desarrollo de software de eso ... ¡Lo que haces ahora definitivamente da forma a lo que harás mañana, el próximo año y los próximos diez años! - Genial ... Entonces, si estoy limpiando inodoros o volteando hamburguesas en McDonald's, ¿dónde me dejará eso en diez años? :?
Jim G.
No hay nada de malo en ese trabajo, no puedes comenzar desde la parte superior sin fundamento. Alguien tiene que hacer ese trabajo, lo importante de mi respuesta es que no hay nada de malo en aspirar a algo más grande , que te perdiste por completo.
1

Todavía hay mucha demanda de personas buenas con Perl. Descubrirá que la industria de las redes y muchos trabajos de administrador de sistemas basados ​​en * nix usan perl ampliamente.

Dicho esto, me hago eco de otros que sugieren empujar tus propios límites. Incluso si solo está trabajando con Perl, encuentre formas de optimizar y optimizar los programas. Por ejemplo, si ve un enfoque lineal adoptado con un programa (a menudo el signo de un programador inexperto), ¿puede encontrar una manera de modularizar el código para mejorar la capacidad de mantenimiento? La habilidad básica de leer un poco de código, independientemente del idioma, y ​​optimizarlo y transformarlo en un mejor código es una habilidad muy solicitada.

Cuenta
fuente
Para ser justos, no golpeó a Perl, solo decía que ese no es el tipo de trabajo que quiere hacer en el futuro. Entonces, el hecho de que haya trabajos de Perl es secundario.
R0MANARMY
@ROMANARMY de OP: "Raramente veo trabajos de Perl, y cuando lo hago, generalmente está haciendo algo que no me interesa (cosas de desarrollo web front-end). La programación de sistemas, la visualización network programming, o al menos cosas de desarrollo web de back-end son el tipo de temas que realmente disfrutaría trabajando en "hmm ... no lo que leo ... y hay trabajos en esas áreas ... por ejemplo, industria de redes, como se dijo. Trabajo para una empresa de Internet de nivel 1, perl se usa ampliamente para el trabajo de back-end.
Bill
1

Busque oportunidades para desarrollar y mantener experiencia en otros idiomas, mientras demuestra que es un empleado dedicado que puede enfrentar el desafío. Conduzca usted mismo para mantener un rendimiento de trabajo constante de la más alta calidad que pueda lograr, y use cualquier tiempo libre para realizar más trabajo o, si se le permite, crear cosas que le permitirán desarrollar habilidades y conocimientos en otras áreas. Incluso una demostración simple que resuelva un problema comercial real de una manera diferente (con un lenguaje más en boga) le permitirá mejorar sus habilidades y mostrarle a su jefe que está pensando activamente fuera de la caja. Solo tenga cuidado de no ser visto como eludiendo sus otros deberes simplemente para trabajar en proyectos paralelos.

La dedicación es la clave. No se espera que los graduados tengan años de experiencia en muchos idiomas. Siempre puede pasar un año desarrollando habilidades de comunicación esenciales y demostrando que puede superar el desafío, incluso si el desafío es mirar más allá de lo que siente que es "aburrido". Aprenda a vender sus habilidades cuando llegue el momento de seguir adelante. Se espera que continúe aprendiendo en el trabajo y que muestre al próximo empleador que está buscando activamente mejorar sus habilidades.

Recuerde, a nadie le gusta emplear un "sabelotodo". Siempre he buscado contratar personas, incluso para puestos de alto nivel, que quieran aprender y crecer más.

S.Robins
fuente
1

Schwern

Solía ​​pensar exactamente lo mismo que tú en muchos sentidos. Salí de la universidad con fuertes habilidades en Java y Python. Mi primer trabajo fue trabajar con Delphi. Inmediatamente me preocupé por esto, pero como no tenía empleo y recién salía de la universidad, decidí morder la bala y tomar el trabajo, ya que tendría experiencia trabajando como programador, independientemente del idioma.

Mi segundo trabajo consistió en trabajar en un gran banco haciendo desarrollo de Smalltalk la mayor parte del tiempo, con un poco de Perl y Java. Mis amigos se rieron de mí porque no podía conseguir un trabajo como desarrollador principal de Java y me dijeron que estaba dañando mi currículum. Ahora estoy ansioso por comenzar un nuevo trabajo en unas pocas semanas que tenga todas las tecnologías con las que quiero trabajar y tenga un mejor salario.

Obviamente, no puedo decir que su experiencia será la misma que la mía, pero hay algunas lecciones que puede extraer de ella para reflexionar. En primer lugar, la programación es secundaria a lo que haces. Si tiene buenas habilidades de modelado de dominio y puede aprender los procesos comerciales rápidamente, eso pagará más dividendos a largo plazo en lugar de evitar aprender cómo funciona el negocio y pasar más tiempo especializándose en problemas menores, lo que he visto en la mayoría de los lugares He trabajado.

La segunda cosa que debes recordar es que estás en el reloj de otra persona. Si desea opinar sobre qué hacer y tener control total sobre todo, entonces comience su propio negocio. He visto a demasiadas personas unirse a una empresa y gemir sobre tecnología heredada, lo hice yo mismo cuando me gradué. Por lo general, estas personas se consideran tóxicas para el lugar de trabajo y no duran mucho. La clave para recordar es que la tecnología está ahí para apoyar el negocio, no al revés. Lo mejor que puede hacer en estas situaciones es crear oportunidades a partir de ellas, de lo contrario, es hora de empacar y salir y buscar un empleo alternativo, pero va a encontrar que cada empresa para la que trabaja tiene problemas de algún tipo.

Más allá de lo que he mencionado, diré que no quieres parecer "institucionalizado". Lo que quiero decir con esto es que está atascado en el uso de lenguajes y tecnologías particulares y no puede ir más allá. Desea cultivar cierta flexibilidad en su carrera, que incluye habilidades de modelado de dominio. Desde que comenzaste en tu carrera, te señalaré un buen material que desearía tener disponible para mí cuando comencé:

El programador apasionado

El programador pragmático

Diseño impulsado por dominio

El programador de carrera

Planeta desolado
fuente
0

Codifica un poco fuera del trabajo, pero todavía no siento que te estés haciendo daño. Eres un empleado reciente, así que eres un desarrollador de nivel de entrada: en esta etapa del juego deberías aprender cosas como el Ciclo de desarrollo y cómo se deben hacer las cosas.

Busca algunas cosas fuera del trabajo para que puedas rellenar tus estadísticas. En mi opinión, puedes codificar o no puedes. El lenguaje y la sintaxis se pueden aprender, pero la capacidad de pensar y resolver problemas por su cuenta no se puede.

ist_lion
fuente