Soy un desarrollador de COBOL de 35 años. Dado que ahora hay menos vacantes para los desarrolladores de mainframe, ¿qué tecnología debo aprender para encontrar buenas vacantes en el mercado laboral? ¿Debo ingresar a Python / Ruby?

La respuesta a corto plazo , fuera de las opciones que enumera , probablemente sería Python. Prefiero programar en Ruby, pero debo admitir que Python actualmente tiene más vacantes (y es mi lenguaje de segunda opción).

Sin embargo, a largo plazo, la respuesta es:

Bueno, está bien, tal vez no todas las cosas, pero sigue aprendiendo, al menos una gran cosa y algunas pequeñas cosas por año. A los 35, suponiendo que ha estado programando profesionalmente desde los 20 años, debe ser razonablemente competente (capaz de contribuir a un proyecto de inmediato y al mismo ritmo que otros dentro de un mes) en varios idiomas razonablemente modernos. No, no voy a establecer un conjunto exacto, pero debe incluir compilados e interpretados, tipados estática y dinámicamente, tipados fuerte y débilmente, procedimientos y OO y lenguajes funcionales y quizás incluso lógicos, y varios otros aspectos que puede dividirlos. a lo largo, y en su mayoría no de propiedad.

Sin embargo, como otros han señalado, Java probablemente será su mejor apuesta inmediata. Como desarrollador de COBOL, probablemente tenga mucha (y principalmente) experiencia empresarial . Esa es precisamente la timonera de Java: a menudo se la ha llamado “COBOL de hoy”. Por lo tanto, es posible que tenga mucha experiencia en el dominio para ejercer, tal vez incluso conexiones . (“¿A quién conoces?” En realidad no triunfa sobre “lo que sabes”, ¡pero te da muchas más oportunidades de mostrar lo que sabes!) También sigue dominando el mercado laboral.

Entonces, mi plan sugerido para ti sería:

  • Deja de llamarte desarrollador de COBOL. En cambio, sea un desarrollador, punto. O al menos, un desarrollador cuyo trabajo reciente ha sido principalmente en COBOL. Retroceda del lenguaje específico y su sintaxis. Eso es solo un detalle de implementación. Si aún no lo ha hecho, como a través de un currículo típico de CS, aprenda los fundamentos comunes a todos los idiomas, principalmente algoritmos y estructuras de datos en abstracto : cuáles existen, cuándo cada uno es apropiado o no, cómo analizarlos, y así en.
  • Aprende Java No solo el lenguaje, que es lo que aprendí en 1997, sino el ecosistema de herramientas del que se ha rodeado, hasta el punto de ser prácticamente necesario.
  • Si aún no lo ha hecho, aprenda al menos los conceptos básicos de SQL. De acuerdo, no es un lenguaje de programación per se, pero saberlo abre tantas puertas que es extremadamente útil, sin saber que es extremadamente restrictivo. Es posible que ya lo haya tratado mediante el acceso COBOL a las bases de datos.
  • Ahora que tiene un lenguaje OO en su haber, desvíate de la arena compilada fuertemente tipada a lenguajes OO interpretados dinámicamente, como Ruby o Python. Python sería mejor para los trabajos, pero Ruby tiene una comunidad increíblemente fuerte y acogedora para ayudarlo a aprender (tanto las ideas de Ruby como las “meta” e incluso otros idiomas), y si en ese momento trabaja con seguridad en Java, el mercado laboral Puede que no sea tan importante.
  • Dado que prácticamente no puedes hacer nada no trivial en la web sin él, e introduce muchos conceptos de programación funcional, aprende JavaScript. Una vez más, elegir Ruby en el paso anterior puede ayudar, y tal vez incluso matar dos pájaros de un tiro, ya que la “aplicación asesina” de Ruby es Rails, un marco de aplicación web, por lo que puede aprender Ruby a través de aprender Rails, en el que podría haber incluido algunos JS. (Python también tiene marcos de aplicaciones web, pero no son una parte tan importante de ese mundo).
  • Por supuesto, para que pueda poner JS en un uso decente, también aprenda HTML y CSS básico. No se moleste en ser muy hábil en CSS a menos que decida que desea hacer trabajo web front-end, en cuyo caso también aprenderá diseño visual.
  • Si aún no lo ha hecho, aprenda los conceptos básicos del desarrollo web (posterior y frontal) y / o móvil. ¡Son muy diferentes de trabajar en Pig, es decir, en trabajos por lotes de Big Iron, o incluso en programas CLI o GUI de escritorio!
  • Si acaba de decidir que desea quedarse con el trabajo web front-end, a continuación, elija más de la cadena de herramientas “JS moderna”, y luego Elm. Esto “se transpira” a JS, pero el lenguaje en sí es mucho más grande -f Funcional y, según me han dicho, mucho más agradable para trabajar. No sé mucho más sobre este mundo, así que me detendré aquí.
  • De lo contrario, entre en cosas más funcionales con algo como Elixir o Haskell o Scala. Elixir tiene una sintaxis fuertemente inspirada en Ruby, por lo que, una vez más, haber tomado esa decisión antes te ayudará aquí. Si ha decidido que le gusta el trabajo web de back-end, consulte Phoenix (marco de aplicaciones web de Elixir). También me han dicho que Elixir y Elm “juegan juntos” muy bien, por lo que podrías combinar ese combo en la preciosa posición de “desarrollo web completo” … especialmente si realmente apilas y aprendes sobre despliegue, operaciones, sistema administración, herramientas “devops”, etc.
  • A medida que el espíritu lo mueve, revise algunas cosas de procedimiento de nivel inferior, como el viejo C simple (que no debe confundirse con C ++, que le aconsejo que guarde para más adelante) y luego algún tipo de Ensamblador. Assembler no es excelente para trabajos, pero es excelente para conocer lo que está sucediendo bajo el capó proverbial, y ese es el punto de este paso.
  • Si lo desea, consulte algunos lenguajes “lógicos” como Prolog. Me salí con la suya de no hacerlo, pero eventualmente quiero hacerlo, solo por completo. 🙂

Sería útil si pudiera proporcionar en qué ubicación está trabajando actualmente o planea trabajar. Como profesional de TI que trabaja con Mainframe y COBOL, puedo decir que hay una buena demanda de programadores de Mainframe / COBOL en los Estados Unidos. Los bancos, la atención médica, los seguros, el comercio minorista y las compañías automotrices aún usan Mainframe para la mayor parte de su proceso por lotes.

Pero si realmente desea cambiar a una tecnología diferente, la mayoría de las personas que conozco, saltan a Salesforce. Es un CRM basado en la nube y tiene una muy buena demanda si lo compara con los trabajos Mainframe / COBOL.

En mi tiempo libre, exploro Salesforce ya que puedo crear una cuenta Dev gratuita.
Es muy interesante y siempre es bueno consultar otras herramientas de vez en cuando.

Estoy de acuerdo con Hannah en que COBOL es una habilidad rara que debes mejorar porque habrá demanda en varios dominios como ya se mencionó. Además de eso, podría aprender Java / Salesforce como un pasatiempo y descubrir qué es lo que más le conviene. Hay varios recursos disponibles que recomiendo para comenzar.

Trailhead | La forma divertida de aprender Salesforce

Prefacio | Fundamentos de la plataforma Force.com | Desarrolladores de Salesforce

Aclamaciones,

Jorge

Esto es fácil: entrar en Java. Hoy, Java es el lenguaje de programación estándar de la empresa, como lo era COBOL hace 30 años. Según Indeed.com, hay muchas más ofertas de trabajo para Java que para cualquier otro idioma. (Python y JavaScript son distantes segundo y tercero).

Si quieres prepararte para el futuro, también puedes probar Go (o Golang).

¡Apuesta por Python, para un joven nuevo y rejuvenecido en tu experiencia de codificación! 🙂

More Interesting

Asumí el proyecto de mi amigo pensando que quería que le escribiera una página web personal. Resulta que quiere que escriba el próximo Craigslist. ¿Cómo decido cortésmente agregar alguna función sin que le pida que le devuelva el dinero?

Soy un desarrollador de Winform / WPF. ¿Qué debo aprender para convertirme en desarrollador de aplicaciones web en ASP .NET 5 o Meteor?

Terminé de aprender Python como principiante, ¿qué debo hacer para mejorar mis habilidades en programación y Python?

Tengo 14 años y sé HTML, CSS, algo de php y mucho WP. He creado un sitio web para mí para mostrar información. Estoy actuando como un negocio, no individual. ¿Bueno?

¿Puede una persona ingenua construir su propio sitio web por su cuenta, en caso afirmativo, cómo puede comenzar a aprender a diseñar un sitio web?

¿Soy terco al no querer aprender bootstrap y jQuery, sino aprender la fuente, CSS y JavaScript?

Si tengo una gran cantidad de iBeacons en varias tiendas diferentes, ¿hay un servicio disponible para permitir que cada persona administre sus balizas o tengo que administrar las balizas para cada tienda yo mismo?

Descargué un tema de WordPress ahora quiero que sea mi propio sitio web. ¿Como lo puedo hacer?

Quiero crear un sitio web tipo CV usando django. ¿Debo aprender sobre bases de datos? ¿Qué más debo aprender?

Estoy interesado en el desarrollo web pero no tengo antecedentes en él. ¿Qué lenguaje (s) de programación debo elegir y por qué?

¿Qué idiomas, API y marcos necesito aprender para convertirme en un desarrollador web de Full Stack?

¿Sería capaz de aprender Desarrollo Web usando los cursos gratuitos de Udemy frente a sus cursos pagos?

¿Qué tipo de sitio web debo hacer? Quiero un sitio que permita a las personas publicar su experiencia sobre un tema determinado. ¿Es este un blog o qué?

¿Cómo usar Python para el desarrollo web? ¿Cuáles son las herramientas y las metodologías utilizadas?

Soy teóricamente bueno en Java y quiero desarrollar aplicaciones usando Java. ¿Cómo mejoro mis habilidades de desarrollo de aplicaciones en Java? ¿Qué cosas debo tener en cuenta?