Si fue contratado como programador usando un lenguaje que no ha usado antes, ¿seguirá haciéndolo?

Absolutamente, aunque tenga en cuenta las perspectivas laborales del idioma. Cambié de hacer un montón de desarrollo de PHP / Python a Java hace un par de años atrás y, como resultó, Java es muy popular y la paga es muy buena en comparación con PHP.

El desafío de pasar de Java a Delphi es que Delphi ya no se mantiene. No es un lenguaje muerto debido a la cantidad de material que aún está en producción, pero debes preguntarte dónde te va a dejar dentro de diez años porque es muy posible que el producto en el que estás trabajando se haya ido y tendrás para volver a la transición al mundo Java / .Net nuevamente.

Por lo tanto, Delphi a largo plazo puede no ser un cambio de carrera tan grande, pero a corto plazo puede ser capaz de obtener una buena paga manteniendo un sistema legado donde hay una escasez de ingenieros dispuestos a trabajar en ello. Es realmente una decisión más basada en el valor en este punto para usted entre los beneficios a corto plazo y los beneficios a largo plazo. Si la paga es un gran aumento de lo que está ganando ahora y la compañía parece tener una buena cultura, inténtelo, pero sepa en qué se está metiendo antes de aceptar la posición.

Si el equipo es excelente, el rol es bueno y el trabajo es atractivo, ¿por qué no?

Se necesita un fin de semana para ser introducido a un idioma y comenzar con los simples programas tipo hello-world.

Se necesitan un par de semanas para conocer más detalles y una idea de nivel superior sobre los marcos.

Tarda unos meses en sentirse cómodo con el código base existente y ayudar a los programadores senior en tareas menores. Si está lo suficientemente dedicado, podrá agregarlo en su currículum.

Sin embargo, toma decenas de miles de horas para ganar experiencia. Estoy lejos de ese nivel en cualquier idioma. Entonces, ¿por qué no perseguir una oportunidad?

Hay dos cosas aquí. Me acercaré al título último, pero cubriré a Delphi en particular primero.

Delphi

Solía ​​ser un desarrollador de Delphi durante 12 años (incluso escribí en el grupo de noticias alt.comp.borland.delphi [1], un ancestro técnico de Quora, algunos de los cuales han llegado a Google Groups). Lo había usado desde Delphi 1 beta e hice VB6 también durante 17 años y VB.NET y C # desde 2005, así como Java. Así que tengo un poco de esos.

Lo que primero me gustaría decir es que mi perorata de 2 décadas es que VB6 no se parece en nada a Delphi porque VB6 (VB.NET es mejor) emuló OO y es demasiado lento para ser útil para cualquier cosa sin cosas de front-end 🙂

Ahora, a la respuesta seria.

Delphi es una tecnología antigua, pero Embarcadero lo reenfocó en el espacio móvil. Delphi fue y está completamente compilado (de hecho, Delphi.NET creó aplicaciones .NET que usaban las bibliotecas pero estaban compiladas con código ingenuo), a diferencia de toda la tecnología que mencionaste. No hay ninguna VM (bytecode, MSIL o p-code) en medio del “ejecutable” y el sistema operativo.

Hay bastante código heredado en Delphi. Mucho más de lo que piensa la gente. Además, los sistemas han sido comprados a través de la actividad de fusiones y adquisiciones. Sin embargo, en comparación con VB6, MFC y todo ese MS jazz e incluso Java en ese momento, Delphi estaba muy por delante de su tiempo. De hecho, técnicamente no fue hasta .NET 2.0 cuando MS finalmente se puso al día y esto fue solo porque Anders Hijlsberg, arquitecto jefe de C # fue el creador de Delphi y el creador de Turbo Pascal, Borland Pascal, Borland C ++ y muchos otros. Guy es un genio y Microsoft lo cazó por una fortuna asalariada.

Las diferencias clave son el BDE, la API de OpenTools, la VCL y, por supuesto, el modelo de objeto interno. Así que no son lo mismo (a menos que obtengan la versión .NET e incluso entonces están mirando .NET 1.1 / 2.0 antes de que giren). Esto podría influir en su decisión de tomarlo o no.

Pista: puede haber una razón por la que quieren tus habilidades. Confirme que no es una reescritura ya que podría ser necesario. El problema es que con un legado a largo plazo, es difícil deshacerse del sistema y extraer el conocimiento insertado dentro del código.

Tomando un trabajo no apto para ti

Recuerdo que me entrevistaron para desempeñar funciones bajo los auspicios de una pila de tecnología, ya que una agencia de empleo me la vendió como otra en una operación de cebo y cambio en 1999. La agencia fue la contratación progresiva en el Reino Unido, que es exactamente lo contrario de lo que fueron. Me enviaron a una consultoría de gestión global muy grande con la premisa de que era un rol principal y la pila de tecnología incluía a Delphi. Conseguí el trabajo después de ser entrevistado (no había ninguna prueba técnica).

Solo descubrí que el rol para el que me presentaron era un rol asociado, no un senior (había hecho roles senior en mi último puesto y en mi penúltimo año, a pesar de mi edad) y la pila de tecnología no era Lo que dijeron fue. ¡Era VB6! Renuncié en el acto de disgusto. Fui a Londres y doblé mi sueldo. Fue deshonesto y francamente fraudulento. La agencia explotó tanto al candidato como al cliente en esa situación. Desde entonces, el Reino Unido ha promulgado leyes que prohíben una gran cantidad de actividades de las agencias de empleo precisamente por esta actividad (el progreso de todas ellas). Pero yo divago.

Si sabes que es un rol permanente (no un contrato temporal / a corto plazo) desde el principio que el rol es puramente Delphi y que no lo quieres, te acosará mal y no aumentará tu experiencia. Excelente plataforma pero va a ser el Cobol de los 2020. No se ha utilizado de forma ubicua para el desarrollo general y serio desde alrededor de 2005 y lo llevé a la muerte absoluta en lo que se refiere a proyectos greenfield. Estarás haciendo soporte, correcciones de errores y mejoras de características. Depende de la experiencia que tengas.

Notas al pie

[1] Grupos de Google

Como puede ver en mis credenciales, he programado en muchos idiomas. Me contrataron en más de una ocasión para escribir en un idioma que nunca antes había visto.

En un trabajo hace mucho tiempo, fui botado de cabeza por primera vez en un proyecto de Delphi. Me encantó y he sido un converso desde entonces. Sigo programando en otros idiomas, pero Delphi es mi opción para grandes proyectos.

Si ya puede manejar un par de otros idiomas, entonces aprender uno nuevo es bastante fácil. Los conceptos son muy similares en casi todos los idiomas.

Depende del rol. Recientemente fui contratado como desarrollador de Node.js para un proyecto de arquitectura sin servidor para una empresa de medios. Le dije al empleador que tenía mucha experiencia en python, menos en node.js, pero que era competente en ello. Ellos aceptaron esa respuesta.

Una semana antes de que comenzara el proyecto, el lenguaje subyacente cambió de nodo js a C #, lo que todos sabían que yo no sabía. Hice que mi empleador se diera cuenta de este hecho y aceptaron que me llevará algo de tiempo ponerme en marcha. Afortunadamente, los métodos que estábamos escribiendo eran bastante básicos, y me necesitaban más por mi experiencia con Lambda / API Gateway que por mi experiencia en nodo o C #.

Mientras mi empleador esté familiarizado con mi falta de experiencia, estaría perfectamente bien aceptando otra posición como esta.

Depende. Si es un trabajo que me encantaría hacer en el futuro, demonios, sí. Si es un trabajo que tengo que hacer para sobrevivir, Dios sí. Si es un lenguaje que me puede dar un impulso en mis futuros trabajos y la empresa ofrece tutoría, sí. Pero tomar un trabajo sin prospecto solo porque no puede encontrar otro trabajo no es inteligente, si tiene algo de dinero extra y buena voluntad para trabajar como freelance + buscar otros trabajos

Depende de si tengo algún interés en el proyecto o empresa.

En el caso sugerido, a menos que el proyecto parezca algo en lo que realmente quiero trabajar, probablemente no lo haría. Delphi no tiene ningún interés para mí, ya que es uno de los muchos derivados de Pascal orientados a los negocios que han flotado a lo largo de los años, y tiene la edad suficiente para no llevar a más trabajo en el futuro. Sin embargo, hace veinte años, probablemente habría corrido ese riesgo, porque los lenguajes parecidos a Pascal todavía parecían interesantes y Delphi parecía que podría despegar, pero hoy en día, probablemente no.

Pero en la mayoría de los casos, los idiomas no hacen mucha diferencia. Por lo general, un programador decente debería poder aprender un nuevo idioma (al menos lo suficiente como para comenzar a contribuir) en unos pocos días, y generalmente es una buena señal para un gerente de contratación darse cuenta de que en lugar de exigir que todos los candidatos tengan experiencia en el Tecnologías precisas que ya utilizan.

Eso es todo para decir que es una compensación que cualquier persona en esa posición debe sopesar con sus propias circunstancias. Hay una compensación, avance profesional, experiencia general, colegas y un montón de otras cosas a considerar, y (aparte de expandir las perspectivas de empleo) el lenguaje es un aspecto bastante menor de eso.

Cualquier persona con una larga carrera en programación lo hace a menudo. Participe, aprenda y agregue algo nuevo que pueda poner en su currículum la próxima vez que vaya a buscar.

Solo te llevará una semana o dos para estar completamente al día.