¿Cómo puedo cambiar de tecnología y mantener un estatus experimentado reconocido?

Soy programador desde hace más de 1 año. He adquirido un buen conocimiento del lenguaje de programación C# y todo el ecosistema que lo rodea.

Los reclutadores técnicos de las empresas siempre sienten que soy más que un junior y me dicen que doy una buena impresión.

Me gustaría cambiar de empresa pero tengo muchos problemas:

  • Quiero ser programador backend, mientras que muchas oportunidades laborales buscan un desarrollador fullstack

  • Quiero oportunidades para crecer como programador profesional y no solo como un mono escribiendo código a ciegas.

  • Tengo problemas de logística, considerando que no tengo auto y muchas empresas están ubicadas fuera de mi ciudad lo que significa 1 o 2 horas de transporte público cada vez que tengo que moverme

  • Todavía estoy abierto a aprender nuevos lenguajes y tratar de dominarlos, por ejemplo hice muchos pequeños proyectos en Java, pero cada oportunidad de trabajo quiere un desarrollador que ya haya trabajado con él durante años y cuando no lo pretenden es porque quieren pagarte como alguien que nunca trabajó e incluso si no tengo experiencia con un lenguaje de programación, no significa que la experiencia adquirida con los trabajos más antiguos sea inútil.

Al buscar un nuevo trabajo, noté que muchas oportunidades requieren el lenguaje de programación Java, y realmente me gusta (considerando que es muy similar a C# y comencé con Java antes de aprender C#).

Es por eso que estoy pensando en "migrar" a Java, pero aún así me gustaría que me trataran como un trabajador con algo de experiencia y no solo como un peso.

¿Cómo puedo acercarme a una tecnología diferente y mantener un estatus experimentado reconocido?

Tenga en cuenta que FullStack Developer NO significa que tenga que ser un diseñador gráfico. El diseñador gráfico y el desarrollador FullStack son dos trabajos diferentes.
Lo sé, pero no en Italia, aquí un desarrollador fullstack debe hacer todo si su empresa no tiene un ingeniero personal de ui/ux.
¿Está diciendo que una empresa en Italia contrataría a un desarrollador de software y le pediría que dibuje un personaje/icono y lo pinte? Parece como pedirle a un pez que suba a un árbol. SIN EMBARGO, se espera que una empresa solicite a un desarrollador de software un color específico de una GUI, un tamaño y una ubicación específicos de un botón, y estos son MUY fáciles y se ESPERA que los conozca cualquier desarrollador de software.
Si su experiencia profesional es en C# y está solicitando Java, todavía está en el nivel de entrada para Java técnicamente.
Aproximadamente dos niveles de gestión hacia arriba, un programador es un programador. Si el director necesita que se elabore un formulario de entrada de datos, ¿tu jefe va a decir "lo siento, los tres programadores que no tienen suficientes tareas en este momento son todos programadores de 'back-end', tendremos que seguir pagándoles para que sean sub- encargado además de contratar a un programador 'front-end'". Entonces, cada trabajo es 'full-stack' para que no seas el tipo que viene aquí 6 meses después quejándose de cómo tu nuevo empleador es un mentiroso malvado porque dijeron que era un trabajo de back-end y ahora te preguntan para hacer un formulario de entrada de datos. "IBM en los años 80" se ha ido.

Respuestas (3)

¿Cómo puedo acercarme a un ecosistema diferente y mantener un estatus experimentado reconocido?

Puedes demostrar lo que tienes actualmente aunque sea solo un año de experiencia. Puede concentrarse en impresionar a sus entrevistadores al:

  • Demostrando que eres un aprendiz rápido

  • Demostrando que lo amas

  • Demostrando que estás mejorando rápido y aprendiendo muchas cosas.

  • Demostrar que contribuyes en la comunidad (desbordamiento de pila, tutoría, etc.)

  • Mostrando que tiene la disputa de la "mentalidad de programador" de la tecnología (el término aquí es agnóstico del lenguaje)

  • Demostrar que un lenguaje de programación es solo una herramienta (significa que un desarrollador puede trabajar con cualquier - C# JAVA C++ - siempre que el desarrollador tenga el pensamiento teórico)

  • Demostrando que es muy fácil buscar recursos sobre un lenguaje de programación y encontrar soluciones (google, stack overflow, MSDN..etc)

1) Quiero ser programador backend, mientras que muchas oportunidades laborales buscan un desarrollador fullstack

Los desarrolladores de FullStack también SON desarrolladores de back-end. Todavía puede solicitarlo y administrar sus asignaciones de trabajo con su jefe para ser principalmente codificación de back-end.

2) Quiero oportunidades para crecer como programador profesional y no solo como un mono escribiendo código a ciegas.

Anteriormente dijiste que querías ser un desarrollador back-end (lo que suena como un mono escribiendo código a ciegas), pero para comentar sobre este punto, creo que necesitas mejorar tu conocimiento leyendo temas que van más allá de la codificación: Patrones de diseño, Teoría de Cómputo, Diseños de Algoritmos, Ingeniería de Software, Gestión de Procesos y Agile, Control de Versiones y Seguimiento de Incidencias.

3) Tengo problemas de logística, considerando que no tengo auto y muchas empresas están ubicadas fuera de mi ciudad lo que significa 1 o 2 horas de transporte público cada vez que tengo que moverme

Esto es personal y no relacionado, y se arreglaría (debería) pronto. Puede presentar una solicitud o solicitar trabajar de forma remota desde su hogar, pero dudo que obtenga el trabajo en este momento, ya que muchas empresas requieren que esté en casa, especialmente si es un junior.

4) Aún estoy abierto a aprender nuevos lenguajes y tratar de dominarlos, por ejemplo hice muchos pequeños proyectos en Java, pero cada oportunidad de trabajo quiere un desarrollador que ya haya trabajado con él durante años y cuando no lo pretenden, es porque quieren pagarte como alguien que nunca trabajó e incluso si no tengo experiencia con un lenguaje de programación no significa que la experiencia adquirida con los trabajos más antiguos sea inútil.

¿Cuál es tu preocupación? perdon no entendí bien

1) Sí, obviamente, y todavía tengo la capacidad de trabajar como desarrollador fullstack. El problema es que en Italia, trabajar como desarrollador fullstack significa que también tienes que inventar ui/ux y tengo una completa falta de gustos gráficos.
2) Desde mi punto de vista, escribir el backend de una aplicación empresarial y simplemente trabajar en un solo producto mediante la edición de métodos son tareas muy diferentes.
@MarcoSalerno Esto NO es lo que quieres decir (o lo que tienes en mente). ¿Tienes una completa falta de gustos gráficos? Bien, demuestra que QUIERES aprenderlo y espera la OPORTUNIDAD
Esto no es algo que puedas aprender y si no planeas hacer GUI en tu vida, aprenderlo no te convertirá en lo que quieres ser, ¿verdad?
Equivocado. Las GUI son fáciles de aprender (relativamente): hay una diferencia entre un desarrollador frontend de juegos de renderizado 3D y un desarrollador backend que comprende cómo funcionan las GUI y quiere vincular su código con la entrada del usuario y luego mostrar la salida. Creo que quieres ser el más tarde, y eso es muy fácil.
@marco Estoy mayormente de acuerdo con Sandra, me gustaría agregar algo. Sobre GUI tienes razón, en Italia rara vez te emparejarán con un diseñador de UX, pero tiene una ventaja: aprendes (y UX no es solo UI). Las habilidades de interfaz de usuario no son una pérdida de tiempo e, incluso si nunca te gusta, te convertirás en un mejor desarrollador de back-end . Confía en mí en esto. Imagine una API que sea perfecta desde el punto de vista del back-end pero que sea difícil de consumir desde el punto de vista de la interfaz de usuario. Y, sinceramente, si acabas de empezar aún necesitas entender exactamente lo que quieres ser, no cierres ninguna puerta tan pronto.

Es por eso que estoy pensando en "migrar" a Java, pero aún así me gustaría ser tratado como un trabajador con algo de experiencia y no solo como un peso.

..

Todavía estoy abierto a aprender nuevos lenguajes y tratar de dominarlos, por ejemplo hice muchos pequeños proyectos en Java, pero cada oportunidad de trabajo quiere un desarrollador que ya haya trabajado con él durante años y cuando no lo pretenden es porque quieren pagarte como alguien que nunca trabajó e incluso si no tengo experiencia con un lenguaje de programación, no significa que la experiencia adquirida con los trabajos más antiguos sea inútil.

La cosa es que cuando se trata de Java, esencialmente no tienes experiencia . Sí, es notablemente similar a C# en muchos aspectos y sí, es bastante fácil "migrar" entre los dos idiomas, pero eso no elimina por completo la curva de aprendizaje, solo le da una ventaja inicial, así que no hay manera. se le consideraría experimentado para un rol de Java; yo tampoco y he estado desarrollando comercialmente en C # durante ~ 15 años, y también tengo un año de Java en la universidad en mi haber. Como dice el refrán, simplemente no hay sustituto para la experiencia.

Si quiere meterse en un rol de Java, su mejor apuesta es hacer lo que ha estado haciendo: aprender el lenguaje ahora . Haga todo lo que pueda en él según lo permita su tiempo libre y publique todo lo que pueda en una cuenta de github (o similar) y luego tendrá algún conocimiento del idioma y prueba de eso disponible para cualquier reclutador para puestos de Java. Sin mencionar, por supuesto, que le dará la oportunidad de pasar las pruebas técnicas. ¿Quizás involucrarse en algunos proyectos de código abierto?

Incluso haciendo todo lo anterior, vas a tener muchas dificultades para conseguir algo más que un puesto junior o más probable de nivel de entrada. El autoaprendizaje y la experiencia de pasatiempo definitivamente tienen algún valor, pero nunca se considerará lo mismo que la experiencia comercial real porque son entornos muy diferentes. El trabajo comercial siempre estará impulsado por los requisitos comerciales del mundo real que son extremadamente difíciles de replicar en un entorno hipotético y debe recordar que el trabajo comercial tendrá fechas límite, otras partes interesadas y, en general, presiones mucho más altas que el aprendizaje en el hogar.

Quiero ser programador backend, mientras que muchas oportunidades laborales buscan un desarrollador fullstack

Hay funciones centradas en el back-end, pero como ha descubierto que los puestos full-stack son mucho más comunes, yo mismo soy un desarrollador back-end por preferencia y si Italia es algo como el Reino Unido, encontrará oportunidades para hacer trabajo de back-end puro pocos y distantes entre sí. Habiendo estado recientemente en la búsqueda de un nuevo contrato, los roles pesados ​​​​de back-end representaban menos del 10% de los que estaban en el mercado e incluso entonces la mayoría tenía elementos completos. No hay nada de malo en buscar roles de back-end por preferencia, pero debe ser realista acerca de la cantidad que esto reducirá su campo.

Tengo problemas de logística, considerando que no tengo auto y muchas empresas están ubicadas fuera de mi ciudad lo que significa 1 o 2 horas de transporte público cada vez que tengo que moverme

Simpatizo completamente con esto (hablando como alguien que vive en un lugar que tiene trabajos tecnológicos insignificantes), pero no hay mucho más que hacer que lidiar con los largos viajes al trabajo o mudarse. En su caso, parece que comprar un automóvil podría ser una vía que valga la pena seguir, ya que esto abrirá enormemente los lugares a los que puede llegar y, por lo tanto, los trabajos a los que puede postularse.

Y ese es el punto, programaste con C# durante 15 años, si mañana C# muere y tienes que pasarte a Java, ¿puedes ser considerado como un Junior sin experiencia? no estoy tan seguro de eso
@MarcoSalerno dejando de lado por el momento que los idiomas realmente no mueren por completo (ver la demanda continua de ingenieros de COBOL, por ejemplo), entonces sí, si eso sucediera, estaría jodido y si decidiera no volver a un rol de no intervención. en administración, entonces estaría buscando roles junior en un idioma diferente. Lo cual sería una mierda para mí pero, sin embargo, es la realidad de la situación.

A medida que avanza en su carrera, la tecnología que utiliza para resolver problemas comerciales (que es para lo que nos pagan) es cada vez menos importante.

Las tecnologías pueden (y cambian) y depende de nosotros (como profesionales) aprender y usar cosas diferentes. En mi caso comencé en COBOL. Se movió a VB6 y luego a .NET en sus diversas encarnaciones (desde winforms hasta aspx y MVC). El año pasado tomé un proyecto en java/grails (cuando no tenía experiencia con estos) cuando el desarrollador original se fue. Pude hacer esto porque puedo pensar tanto en términos comerciales como con tecnología.

Después de solo un año aún no tienes la experiencia para hacer un cambio. Donde estoy ahora, ni siquiera entrevistamos cuando el candidato tiene menos de 4 años de experiencia.