Si solo pudieras aprender un máximo de tres lenguajes de programación, ¿cuáles serían?

Voy a hacer trampa nombrando 3 triples dependiendo del propósito … así que con la lengua firmemente en la mejilla.

Para la mayor gama de software que pueda desarrollar

C – Tienes control total y muy rápido. Pero con gran poder viene una gran responsabilidad, dispararte en el pie es fácil y peligroso. Construcciones asombrosas son posibles en C.

Java – mejor soporte de biblioteca, herramientas fantásticas y ecosistema. Cubre móviles a grandes sistemas distribuidos. Aunque detallado, es conceptualmente simple, por lo que leer el código de otros es bastante simple.

JavaScript: realmente es el único programa en la ciudad para interfaces de usuario web ricas, por lo que ha estado en esta lista por ese motivo. Aunque está lleno de errores, es fácil ser productivo.

Para la mayor amplitud (si no profundidad) de ideas y estilos.

Scala: una combinación razonable de paradigmas funcionales y de programación orientada a objetos, excelente para DSL internos, etc.

Prólogo – pensar los problemas de manera diferente, declarativa.

Forth – A menudo se utiliza para escribir código BIOS. ¡Aprende a amar la notación polaca inversa!

Finalmente, los idiomas que deben mencionarse …

Haskell – un lenguaje funcional puro, con un pedigrí académico fuerte.

Python: el mejor soporte de biblioteca científica de cualquier lenguaje de scripting.

Lisp y / o variantes: soy muy aficionado a los lenguajes lisos y homo-icónicos que ofrecen algunos trucos realmente ingeniosos.

Esta es una pregunta difícil para mí. He programado entre 5000 y 100,000 líneas de código en aproximadamente una docena de idiomas y he incursionado en al menos una docena más. No puedo llegar a 3, pero puedes considerar mis 3 primeros como los preferidos.

  1. Programación de propósito general: Smalltalk. Posiblemente tiene el mejor IDE del mundo (pharo.org). Puedo programar bases de datos (Gemstone, Glorp), servidores web (Seaside), cliente web (pharojs.org). Es el lenguaje más simple de esta lista (la sintaxis completa en una tarjeta postal), captura la esencia de la programación OO, pero también es el apalancamiento más legible y más alto.
  2. Programación concurrente: Elixir (una variante sintáctica de Erlang). Elixir es realmente la única opción cuando se necesita un escalado serio (piense en 1,000,000 de procesos en cientos de máquinas). Y es simple y puro 99.999% funcional.
  3. Programación del sistema: Rust. A veces necesita maximizar la eficiencia y estar dispuesto a renunciar a alguna conveniencia, pero no a renunciar a la seguridad. Puede hacer cualquier cosa que pueda hacer en C, pero con menos posibilidades de dispararse en el pie debido a su potente sistema de tipo estático, no como Haskell.
  4. Un lenguaje poderoso y estático para la programación de alto nivel, probablemente proactiva: Haskell. Una vez que hayas programado en Haskell, pensarás en el proceso de programación de manera diferente. Rust te da algo de esto, pero como Rust no hace la recolección de basura, a veces tienes que escribir un código menos claro. Para la pureza, necesitas programar en Haskell.
  5. El otro lenguaje de programación fundamental: LISP. Mi preferencia es Scheme, pero Clojure también es bastante genial. No tiene el IDE de Smalltalk, pero no parece necesitarlo … al menos para un cierto tamaño de programa.

Hay muchos otros buenos lenguajes: Python, Ruby, incluso Java y Javascript; pero ninguno de ellos es tan importante para entender cómo programar como la lista anterior, y no elegiría ninguno de ellos si uno de los 5 idiomas anteriores fuera una opción. Si pasó 6 meses leyendo y escribiendo código en cada uno de estos idiomas (leer, porque no es solo una cuestión de escribir FORTRAN con una sintaxis diferente, cada uno tiene una comunidad y un estilo diferentes que podrían y deberían sacudir su mundo).

Feliz programacion

Aquí está mi toma. El orden también es importante.

C – empieza con eso. Le enseñará cómo funciona la computadora en un nivel bajo. Le enseñará sobre la gestión de la memoria. Aprenderás cómo funciona el software en el nivel bajo. Encontrará materiales sorprendentes, por ejemplo, MINIX, diseño e implementación del sistema operativo. Puede usar fuentes de sistemas de software complejos, como el kernel de Linux, FFMpeg, VLC, para aprender. Ya que C no es ensamblado, no le enseñará el nivel más bajo de programación, pero esto está bien. C no es más alto que el ensamblaje, pero es un lenguaje que en realidad es práctico para muchas cosas. Y no opte por C ++ porque simplemente tiene un vocabulario demasiado grande, no es práctico para aprender el nivel “básico” / “básico” de desarrollo de software y arquitectura.

JavaScript – también un deber; Si bien muchas personas han ofrecido idiomas que se transfieren a JavaScript, no los recomendaré por la misma razón que no recomendaré C ++. Comience con lo básico primero. JavaScript es un buen lenguaje para ser el primer lenguaje de alto nivel que aprendes, porque tiene muchos usos prácticos. La web está casi totalmente construida en JS, y es la mayor parte de lo que hacemos con las computadoras. JS está, sin embargo, ahora también en el lado del servidor (Node.js), en el lado del escritorio (CEF, electron, otros), en la Móvil (reacciona nativo, otros). Así que aprender eso te abriría las puertas a tanta programación moderna y práctica de la era. Además, JS le enseñaría qué es un lenguaje dinámico y qué debe tener cuidado con los idiomas dinámicos. Envolver tu cabeza alrededor de JS, cuando vengas de la C de nivel inferior tipificada estáticamente, será extraño. Pero te dará mucha flexibilidad como programador.

Haskell : este lenguaje le enseñaría un paradigma y enfoque de programación completamente diferente. Tendrías que aplicar aquí una forma de pensar totalmente diferente, mucho más declarativa, mucho más matemática. Los aspectos positivos son algunos: 1) gratificante mentalmente: al venir de C y JS, te sentirás como un científico espacial si haces algo con Haskell; 2) técnicamente gratificante; haskell le permitiría superar los límites de una manera que nunca antes lo hizo; realmente verá lo que es un “compilador inteligente”; 3) te hace más flexible como programador e incluso como persona; envolver tu cabeza en torno a esto después de la programación imperativa no es fácil

Espero que sea de ayuda. Obviamente, esto se basa en mi propia experiencia, pero realmente creo que es objetivamente bueno.

En lugar de elegir idiomas, creo que será lo próximo, elegí dos idiomas rudimentarios y uno que te hará más inteligente 🙂

Elegir tres idiomas esenciales entre cientos es una tarea bastante difícil, pero esta es mi opinión si tuviera que aprender solo tres.

C – Aunque es un lenguaje de bajo nivel y puede resultar difícil de aprender para muchos (por ejemplo, yo mismo), C es una opción viable para aprender los aspectos básicos y las peculiaridades de una computadora. A pesar de tener varias décadas de antigüedad, en la actualidad todavía se utiliza en muchas áreas diferentes en el campo de TI, incluido el desarrollo de juegos y el diseño de sistemas operativos. Además, la gran cantidad de bibliotecas disponibles es también un beneficio sustancial para el desarrollo.

JavaScript : principalmente porque es compatible con la mayoría de los navegadores, JavaScript es un excelente lenguaje para aprender. Es esencial en el desarrollo web, y miles y miles de desarrolladores eligen este lenguaje debido a su sintaxis bastante simple y su uso flexible en diferentes navegadores. Cuando se implementa con marcos como Meteor y ReactJS, JavaScript es un lenguaje poderoso que puede crear sitios web únicos y estéticos.

Java : para ponerlo en práctica, Java no es el lenguaje más eficiente en rendimiento. Debido a su traducción a bytecode, la idea no fue ampliamente aceptada cuando se lanzó por primera vez. Sin embargo, como el rendimiento del hardware mejoró considerablemente a lo largo de la década, su portabilidad se convirtió en una importancia considerable para el desarrollo de software. Aprender Java también abrirá las puertas al desarrollo de aplicaciones para Android. Se conoce como “C ++ sin sus armas y cuchillos”, lo que significa que C ++ sin su complejo banco de vocabulario. Es un excelente lenguaje para aprender para desarrolladores multiplataforma.

  1. Pitón
  1. Ya sé python, y estoy muy agradecido por python. Funciona conmigo: es como el Minecraft de la programación, la herramienta que se ha caído del cielo y que convierte las ideas en realidad con solo un clic. Se vuelve más bella cada día. Cuanto más aprendo al respecto, más impresionado estoy.
  2. Es un lugar feliz para ir. No importa lo que termine usando en mi carrera, es probable que todavía quiera usar Python los fines de semana. Zapatos fuera, tirantes rizados de distancia.
  • JavaScript
    1. Tengo algo de experiencia con JavaScript, y también me gusta. Es muy universal y su rendimiento es comparable a los lenguajes compilados. No sé lo suficiente sobre JavaScript para inferir por qué tantos lo critican, pero supongo que lo resolveré pronto.
    2. La tipificación dinámica también es muy importante para mí. Mi profesor es un gran fanático de la escritura estática, y nos dice que el compilador es nuestro amigo. Y lo admito, la mayoría de mis frustraciones con mi último y más intrincado proyecto de Python provienen de la reasignación accidental de mis instancias de objetos con primitivos. Pero la escritura dinámica es una libertad que normalmente no quiero sacrificar.
    3. Además, en el mismo proyecto, creo que me doy cuenta de por qué la programación funcional, especialmente el concepto de devolución de llamadas, es muy útil para la web. Algunas cosas se podrían hacer mucho más bellamente que las estoy haciendo yo.
  • Asamblea x86
    1. Podría elegir fácilmente c ++ como mi tercer idioma, y ​​probablemente debería hacerlo, pero lo intenté hace unos años … y honestamente, lo único que recuerdo es la sensación de mis dedos agarrando mi cabello con frustración. Me estoy especializando en ciencias de la computación y me encantan los números. Tengo la intención de obtener el fondo de programación que necesito para atacar c ++ nuevamente. Pero si solo puedo saber 3 idiomas, no será uno de ellos.
    2. Tengo experiencia con C y C # , y he visto de primera mano lo rápido que son, pero no lo poderosos. Ya tengo dos lenguajes muy potentes y prácticos. Para mi último idioma, quiero el nivel más bajo de programación que pueda imaginar siendo práctico. Lo usaré para tareas increíblemente intensas, como la generación de fractales.
    3. Quiero que mi último idioma sea una serie interminable de desafíos, ninguno de los cuales tiene limitaciones de idioma. Escribí mis primeros programas en lotes de Windows : la basura más sucia y miserable que jamás se haya llamado Turing, completa. Olvídese de las inconsistencias, la pudrición de bits o cualquier otro problema con cualquier idioma. El problema más enloquecedor es cuando el idioma no espera que usted haga lo suyo. Con idiomas de nivel inferior no hay tales delirios.
    4. x86 es más universal que x64 , y siempre puedo trabajar con mayor precisión si es necesario.

    Python – Obviamente. Obviamente. Quiero decir, la cantidad de bibliotecas, que puedes hacer… ¡cualquier cosa! Web raspado? Hecho. Automatización de tareas? Hecho. Backend diseño web? Hecho. Ciencia de datos, biología, física, cualquier cosa. Sin embargo, Python puede ser lento, lo que nos lleva al siguiente idioma.

    C ++ – Rápido. Eficiente. Útil para cualquier cosa que necesite el poder y el ponche que Python no tiene. Además, el diseño del juego, que es divertido.

    Asamblea – Literalmente todo se reduce a esto. Como casi cualquier software se convierte en esto, ¿por qué no aprenderlo? Podría usarlo para todo, codificar cualquier cosa. Auge. Hecho.

    1. Python, porque es fácil de aprender, es un lenguaje de programación con “baterías incluidas” que incluye todas las herramientas que necesita para la mayoría de los tipos de programas de programación. Su enfoque preferencial de una manera de hacerlo lo convierte en un lenguaje muy limpio, con una sintaxis predecible y tipos de datos simples, pero potentes, como diccionarios y listas. Y me encanta la lista de comprensión.
    2. Smalltalk, porque fue OOP bien hecho la primera vez y es un lenguaje OOP tan puro que incluso los bucles y condicionales son objetos. El entorno Smalltalk sigue siendo el entorno de programación más productivo que existe. Los patrones de diseño OOP se inventaron aquí.
    3. Go, porque toma lo mejor de los elementos de programación en C, agrega recolección de basura y características de programación funcional y OOP, lo que lo convierte en un tipo de lenguaje muy diferente que, similar a Python, lleva al desarrollador de Go por caminos preferidos para resolver problemas de programación. Y sus funciones de programación concurrentes, como las rutinas de navegación y los canales, facilitan la implementación de servidores HTTP y otros tipos de servidores de proceso múltiple.

    Mi ruta personal ha estado incursionando en PHP, Javascript entonces …

    Pitón

    Mi primer lenguaje adecuado fue hacer cosas reales con GUI’s, servicios web, etc. Muy rápido y fácil de usar, excelente para poner las cosas en marcha rápidamente. Ideal para prototipado y desarrollo para algo más grande. Plataforma cruzada

    Java

    Llegar a esto desde Python fue un gran problema. Una gran cantidad de nuevos conceptos de programación para familiarizarse con (Interfaces, Escritura estática, etc.) se siente más desarrollada que Python. El lenguaje más grande del mundo. Plataforma cruzada, construir cualquier cosa.

    Rápido

    El futuro para iOS y la creación de aplicaciones nativas reales, no se molestaría con los marcos multiplataforma, demasiado complicados y restrictivos, con una dependencia total en las actualizaciones para la compatibilidad futura. Swift se siente como python y java combinados, muy divertido y creciendo muy rápido desde el código abierto. Fácil de aprender como un complemento en el idioma después de adquirir experiencia en los dos anteriores.

    Estas son mis 3 opciones personales para cubrir tantas bases como sea posible para el desarrollo de aplicaciones. Un buen conocimiento práctico de esto le daría a cualquiera la posibilidad de crear aplicaciones para dispositivos móviles / de escritorio / web para casi todos los destinos principales (iPhone, Android, Mac, PC, etc.)

    Asamblea : Todo está construido sobre la asamblea. Si bien puede tener ensamblaje sin C, no puede tener C sin ensamblaje.

    C : El montaje me saca del borde a veces. Necesito algo de abstracción.

    Python : Necesito al menos UN lenguaje de programación de alto nivel para usar si C también me vuelve loco.

    Tendría que ser C ++, Javascript y Python. Sin embargo, esta es una pregunta muy difícil

    ¿Por qué C ++?

    Poder, y me refiero al poder de dos maneras: velocidad y capacidad. C ++ puede hacer casi cualquier cosa, ciertamente cualquier cosa que necesite construir. Notarás que todos han optado por al menos un idioma de nivel inferior, y esta es la razón.

    ¿Por qué Javascript?

    La web. Con solo Javascript, ahora puede construir un servidor muy potente (Node.js, etc.), una interfaz de usuario muy compleja (con la ayuda de JQuery, etc.), gráficos 3D bastante sorprendentes (Three.js) y todo lo que se encuentre en el medio. Todo esto es fundamentalmente Javascript, y aunque no es un gran lenguaje en muchos sentidos, es el mejor en lo que hace. De hecho, en muchos sentidos no hay alternativas adecuadas.

    ¿Por qué Python?

    Simplicidad y eficiencia del desarrollador. Es un todo redondo. Todo el mundo lo sabe, y puedes hacer mucho rápidamente. Como la mayoría de las personas han optado por al menos un nivel bajo, también necesitamos al menos un nivel alto. De los grandes módulos, la sintaxis limpia y el entorno simple, es muy útil.

    Si solo pudieras aprender un máximo de tres lenguajes de programación, ¿cuáles serían?

    ¿Está cerca el apocalipsis? Tres lenguajes de programación, que seguro que no suena divertido! Esto significa que primero tendría que desaprender una gran cantidad de ellos, y solo los zombis podrían sacar esa información tan importante de mi mente.

    Yo elegiría mantener:

    • Java, debido a su brillante portabilidad general y sintaxis tipo C Lo he estado usando durante más de nueve años, y simplemente no podría separarme emocionalmente.
    • Rust, ya que Rust es la definición misma de puro asombroso. Con una sintaxis simplista brillante, tiene una capacidad similar a la de C, además de ser algo fácil de portar. También tiene una gran manera de manejar las dependencias.
    • Clojure, porque necesito alguna forma de poder trabajar en proyectos basados ​​en la web con un poco de ayuda de intérpretes y analizadores, todo muy bien colocado en marcos pequeños.

    Pero definitivamente mataría por mi conocimiento. ¡Los zombies están obligados a no sobrevivir por mucho tiempo!

    Aunque The Zombies, la banda, son maravillosos. Nunca querría que dejaran de existir.

    Creo que no puedo imaginarme deteniéndome para aprender a la cuenta de tres. Depende de en qué esté trabajando y de lo fácil que sea el lenguaje para expresar la solución. Algunos lenguajes de programación requieren un esfuerzo considerable para traducir un tipo determinado de solución en un modelo de trabajo debido a la forma en que se presenta su marco. Por lo tanto, uno debe estar preparado para aprender un nuevo idioma, si lo considera necesario y, a menudo, es un criterio importante a considerar, cuando el objetivo es cumplir los requisitos dentro de una limitación de tiempo limitada. Lo que puedo señalar son los tres grupos de idiomas (según cómo los clasifico / uso) y dónde se pueden aplicar mejor.

    C / C ++ : programación de bajo nivel, la más rápida de todas y si está interesado en un mundo integrado, es una necesidad. Las bibliotecas opencl, opencv y opengl están escritas de forma nativa en este idioma por una razón y es bueno saberlo, si planea hacer algo serio (aplicaciones o juegos de hpc).

    Matlab / python / scilab : para mí, ambos tienen el mismo propósito, muchas bibliotecas para aplicaciones científicas y exploración rápida de algoritmos. Los modelos de procesamiento de señales y sistemas de control se desarrollan generalmente en matlab primero en las industrias. Las bibliotecas numpy y scipy en python se utilizan para el aprendizaje automático, la inteligencia artificial y las aplicaciones científicas. Python también se puede usar para escribir como un script de shell para automatizar una cadena de procesamiento en una computadora / servidor.

    Verilog / VHDL / System Verilog : al ser un ingeniero de sistemas en chip, es imprescindible aprender a describir el comportamiento del hardware utilizando cualquiera de estos idiomas. Si está interesado en diseñar sus propios diseños ASIC o FPGA, este es un idioma que debe conocer. Pero no creo que sea un lenguaje de programación persay.

    Hay más lenguajes como Java, Ruby, pearl y muchos más interesantes como Haskell que aún no he usado. Así que no los estoy comentando. He utilizado HTML y un poco de scripts CSS para hacer una página web y algunos otros scripts de shell como tcl, makefiles y sh. Pero no estoy seguro si estos son lenguajes de programación y los veo más como un lenguaje de scripting o herramientas de construcción. Entonces, en resumen, verilog / vhdl / system verilog para hacer diseños de coprocesador o HW, luego C / C ++ para ejecutar el programa en el procesador. Los procesadores + coprocesadores en un solo chip se denominan Sistema en chip y, por lo general, el ciclo de desarrollo comienza con Matlab / python para realizar un análisis de algoritmo y modelo funcional. Y considero que estos conjuntos de idiomas son inevitables para mí.

    La respuesta correcta a esta pregunta depende de sus objetivos y de lo que le apasiona.

    ¿Quieres maximizar tus posibilidades de empleo? Luego debe elegir los tres idiomas más populares: JavaScript, Java y PHP (o Python, que a veces aparece como el tercer idioma más popular. Consulte: 14 lenguajes de programación más usados ​​y populares de 2017).

    ¿Quieres entender todos los aspectos de la programación? Luego, debe elegir un lenguaje de bajo nivel como Assembly o C, un lenguaje orientado a objetos como Java o C ++ y un lenguaje de programación funcional como Lisp, Scheme o Clojure.

    El lenguaje real que elijas no importa mucho, pero lo importante son los conceptos que aprendes. Puede aprender un nuevo lenguaje de programación en un par de semanas siempre y cuando conozca la teoría y el enfoque básico de los problemas comunes. Puede obtener respuestas a la mayoría de las preguntas de programación con una búsqueda en Google, pero no aprende a programar de forma orientada a objetos o funcional mediante la búsqueda en Internet. Una vez que aprendas a hacerlo, puedes adaptar fácilmente ese estilo a otro idioma.

    ¿Quieres trabajar con hardware? Entonces, desea elegir idiomas como Verilog, C y Assembly.

    ¿Quieres crear páginas web? Entonces, quieres lenguajes como JavaScript y PHP y Ruby.

    ¿Quieres crear aplicaciones móviles? Entonces, quieres Java, Objective C y Swift.

    ¿Quieres trabajar con idiomas que sean hermosos y bien diseñados o simplemente fascinantes? En otras palabras, ¿programa para su propio disfrute personal? Entonces, puedes elegir idiomas como Python, Rust y Haskell.

    Si quieres estar en la vanguardia, entonces puedes elegir a Rust, Swift y Julia.

    Elija lo que le interese y no se equivocará, porque le resultará intrínsecamente fascinante y aprenderá más y más. He encontrado que aprender en un área de programación me ayuda en otras. Por ejemplo, comencé por aprender C, porque quería entender las computadoras en un nivel bajo. No he programado una línea de C en más de 10 años, pero lo que aprendí en C me ayudó a comprender cómo funcionan los demás lenguajes informáticos.

    Actualmente trabajo en una empresa donde toda nuestra programación es JavaScript y PHP, por lo que nunca tengo que tocar un puntero o preocuparme por la asignación de memoria y la recolección de basura. No obstante, aprender esos conceptos básicos ha hecho que sea mucho más fácil entender cómo funcionan C ++, Python, PHP, Rust y Java. Aconsejo comenzar en un nivel inferior y luego pasar a idiomas de mayor abstracción. Al menos eso me funcionó, pero no aconsejo estudiar C o Assembly solo porque la gente te diga que lo hagas. Si no encuentra el hardware y las cosas de bajo nivel interesantes, entonces estudie lo que le apasiona. En la mayoría de los casos, podrá encontrar un trabajo, sin importar el tipo de programación que haga, por lo que no me preocuparía demasiado elegir el idioma correcto o el área correcta para enfocarme siempre que esté dispuesto a seguir. aprendiendo toda tu vida

    Decidí hace mucho tiempo que solo quería trabajar con software libre / lenguajes de fuente abierta y sistemas operativos, por lo que evité estudiar lenguajes propietarios en los años noventa. Dos décadas más tarde, parece que tomé la decisión correcta, pero en ese momento no tenía ese aspecto. No aconsejo preocuparse demasiado por lo que piensan los demás. Céntrate en lo que prefieras y te irá bien como programador. Hay muchas formas de realizar la misma tarea en la programación, así que no se obsesione con lo que se percibe como la “forma correcta” o la forma más popular.

    Francamente estoy un poco sorprendido por la cantidad de personas que incluyen algún tipo de reunión aquí. ¿Utiliza realmente ensamblaje en su programación del día a día, o simplemente está tratando de demostrar cuán duro es usted?

    Escribo programas para hacer las cosas. Así que elegiré los idiomas que realmente utilizo y las compañías que realmente me pagarán por usar.

    Java. Lo uso para escribir aplicaciones de Android y tuberías de procesamiento de datos.

    Pitón. Yo uso esto para la mayoría de las otras cosas. Servidores api de descanso, scripts de datos rápidos, análisis de datos, etc.

    JavaScript Yo uso esto bajo coacción.

    C # .NET : excelente para escribir aplicaciones de escritorio de Windows, de uso generalizado, muy popular, y mi # 1 en general, es el lenguaje general.

    C – Mi idioma # 2 para aplicaciones rápidas (# 1 es CIL / MSIL, pero se ejecuta en .NET CLR). No elegiré C ++ porque lo encuentro demasiado complicado (elegiría D si necesitara los beneficios de C ++). C también es ideal para trabajar a bajo nivel, ya que básicamente es Assembly ++.

    TypeScript – Elegir este lenguaje fue realmente difícil (tuve que elegir entre TypeScript, Python, F # y Haskell), pero finalmente elegí TypeScript porque es un superconjunto de JavaScript (lo que significa que también aprendería JS), se compila a JS (por lo que puedo hacer el desarrollo web front-end), y creo que su clase y sistema de tipos son mucho más poderosos que un lenguaje como Python , que era mi tercer idioma original.

    Al final, me siento muy satisfecho con mi lista. Aunque me estaría perdiendo varios idiomas de los que me beneficia mucho (F #, CIL, Haskell, Python, etc.), todavía conservaría los idiomas que realmente me importan, y espero poder seguir mi carrera soñada como un ingeniero de compilación.

    Java , básicamente una necesidad: este lenguaje no va a ninguna parte durante mucho tiempo, y se puede usar desde servidores de servidor a aplicaciones de escritorio a aplicaciones móviles (Android). Prácticamente el estándar en software empresarial.

    C , cuando Java es demasiado alto para la tarea en cuestión. Los aspectos esenciales del SO, los controladores y el desarrollo de juegos requieren C, y son muy útiles para sistemas integrados (IoT viene a la mente).

    JavaScript, ya que la Web no irá a ninguna parte pronto y WebAssembly no se hará cargo completamente en unos pocos años. El desarrollo web ha estado creciendo a un ritmo asombroso por un tiempo, y la creación de aplicaciones y herramientas web solo aumentará en los próximos años. JavaScript es básicamente requerido para todo esto.

    Fue difícil no poder incluir a Haskell, que definitivamente habría elegido como un cuarto idioma, pero la mayoría de las cosas que puede hacer se pueden lograr a través de C y Java, y con solo 3 lenguajes de programación para elegir, no puedo Justifíquelo tomando los lugares sobre cualquiera de los anteriores.

    Mi elección del idioma debe ser tal que pueda programar usando diferentes paradigmas de programación.

    Paradigma de programación – Wikipedia

    Si hemos entendido un paradigma de programación, podemos cambiar fácilmente a cualquier otro lenguaje que use el mismo paradigma.

    Algunos lenguajes tienen diferencias sintácticas muy significativas como Java y Python. Pero todavía es más fácil que uno aprenda otro idioma siempre que no tenga que aprender un nuevo paradigma de programación.

    Pero cambiar de programación imperativa (C / C ++ / Java / Python) a programación funcional es muy difícil. Requiere una forma diferente de pensar y analizar el problema.

    Por lo tanto, el enfoque debe ser aprender un paradigma y concepto de programación diferente en lugar de aprender una nueva sintaxis para diferentes idiomas.

    Javascript / NodeJs es muy similar a C ++ / Java pero se ve obligado a aprender programación asíncrona, que es una forma diferente de escribir código.

    Mi elección para tres idiomas será

    Lenguaje ensamblador (cualquier arquitectura)

    C ++

    Scala (Java)

    Comparación de lenguajes de programación multi-paradigma – Wikipedia

    1. Javascript
    2. PHP
    3. Rubí

    Si planea trabajar como desarrollador web independiente, hay tres idiomas que lo mantendrán ocupado. Javascript ya está cubriendo la pila completa y con Reacción nativa, incluso puede escribir aplicaciones móviles. PHP está alimentando tantos sitios web en la actualidad, solo WordPress es un framework / CMS detrás del 25% de los sitios web. Desarrolladores de Ruby en alta demanda y se les paga bastante bien.

    Todos los demás idiomas están más orientados a los nichos y son excelentes para ocupar un puesto bien pagado en una gran empresa, pero mi respuesta es más para gente como yo, a quienes les gusta la libertad de trabajo, la capacidad de ser un empresario de garajes y un desarrollador único detrás de grandes proyectos Con estos idiomas y una gran comunidad detrás de ellos, puede iniciar proyectos grandes con mayor facilidad.

    PYTHON: Esta tiene que ser una opción obvia. Sintaxis simple significa que el código no será demasiado complicado y se puede mantener fácilmente, al mismo tiempo que la gran cantidad de bibliotecas permite al usuario hacer casi cualquier cosa. Rastreo web, automatización de tareas, diseño de back-end web, análisis de datos, lo que sea y se hará a través de python.

    C / C ++: el único lenguaje que permite al programador estar cerca de la máquina. Preferiré C ++ porque está orientado a objetos y debido a su STL, que me da un poder inmenso como programador. C ++ es su máquina principal que realiza trabajos difíciles con su potencia. C ++ le permite al usuario lidiar con la administración de la memoria, los punteros que lo acercan de manera personal a lo que sucede en el sistema. Y sin mencionar su velocidad en comparación con otros lenguajes orientados a objetos.

    JAVA SCRIPT: Y ahora un lenguaje versátil. ¿Quieres diseñar una página web? Hecho. ¿Quieres dar a la página web una funcionalidad interesante? Hecho. ¿Quieres ir al final? Hecho. ¿Quieres diseñar aplicaciones para Android o iOS? Hecho. Sí, este es un lenguaje que mantendrá tus manos llenas con la gran cantidad de cosas que se pueden hacer. Siguiendo la sintaxis de C, no será complicado aprender y, con las bibliotecas y el marco, seguramente será el idioma que yo elija.

    En mi carrera nunca he necesitado saber otro idioma además de C y python . A menos que los scripts de shell cuenten como un lenguaje.

    Podría argumentar que esta pregunta, y el aprendizaje regular de nuevos idiomas, es para ingenieros de software que persiguen modas (es decir, desarrolladores de aplicaciones móviles, desarrolladores relacionados con la web).

    Es muy diferente para las personas que tienen una * especialidad * (por ejemplo, OS, seguridad, bios), donde generalmente hay un lenguaje básico que es necesario (c, c ++, java, fortran, etc.) y uno o dos lenguajes de scripts suplementarios ( php, perl, python, etc). Los lenguajes de scripting pueden cambiar con el tiempo, pero es probable que su lenguaje base no cambie durante algunas décadas. La seguridad aún está escrita en C, las aplicaciones HPC todavía usan fortran o C, muchas aplicaciones cliente-servidor todavía usan java.