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:
- ¿Es este libro 'Diseño web con HTML, CSS, JavaScript y jQuery' de Jon Duckett suficiente para un conocimiento completo del desarrollo web?
- Quiero convertirme en desarrollador front y backend. No sé por dónde empezar, pero quiero hacerlo. ¿Cómo es posible esto?
- Estoy aprendiendo desarrollo web yo mismo en casa después de 7 meses. ¿Qué debo hacer junto a él para tener algo que explique la brecha al empleador?
- Estoy buscando un sistema de transferencia de archivos confiable que pueda alojar yo mismo. Alguien recomienda goFileTransfer.com. ¿Alguien lo usó?
- Acabo de comprar una MacBook Pro 2014 por $ 20 de descuento en Craigslist. Se ha restablecido y funciona bien. ¿Hay alguna preocupación de seguridad que deba preocuparme?
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. 🙂