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

Sé lo básico de Python y Django, quiero aprender PHP y Laravel, ¿por dónde empiezo?

¿Estoy solo en la sensación de que los CMS son más incómodos que útiles la mayor parte del tiempo?

Cuando tenía 14 años, tomé una clase de HTML. No he usado HTML en más de 10 años. ¿Debo codificar desde cero o usar estos marcos calientes como Foundation?

Estoy usando Notepad ++. No tengo un servidor PHP y mis códigos no se ejecutan. ¿Cómo puedo ejecutar un código PHP?

Quiero construir y vender una aplicación relacionada con recursos humanos usando Ruby on Rails. ¿Cuáles son algunos buenos recursos para enseñarme lo que necesito?

Como aficionado al diseño y desarrollo web, quiero crear mi nuevo sitio web con WordPress. ¿Cómo podría configurar esto mientras mi dominio todavía está alojado en otra plataforma y migrarlo rápidamente a WordPress, con poco tiempo de inactividad?

¿Cuál es la mejor manera de ajustar el diseño de una página a un nuevo diseño usando HTML, CSS y jQuery?

¿Cuál es el costo de desarrollar un sitio web como Zillow o Realtor?

Estoy en un trabajo haciendo jQuery y Backbone. Por el bien de mi carrera, ¿debería encontrar un trabajo con una pila de front-end moderna?

Quiero desarrollar un sitio bancario. ¿Dónde puedo encontrar un buen blog tutorial o sitio que explique sobre el flujo de trabajo del sistema bancario, los diseños de bases de datos, etc.?

Estoy planeando iniciar un sitio web, algo como ScoopWhoop / BuzzFeed. ¿Cuáles son algunas sugerencias útiles?

Estoy planeando lanzar un sitio web que contenga contenido que me gustaría no ser copiado y utilizado por otros para uso comercial. ¿Qué pasos hay que tomar?

Estaba viendo a algunas personas en el código de YouTube, los temas de WordPress y todos sus archivos .PHP tenían HTML. ¿Por qué no usan .HTML para el tipo de archivo?

Cómo elegir el mejor complemento SEO de WordPress para mi sitio web

Soy un buen desarrollador web pero no puedo conseguir un trabajo. ¿Por qué es esto?