¿Cuáles son los mejores lenguajes de programación para aprender hoy?

Eso depende enteramente de quién eres y cuál es tu objetivo.

Dado que me estás preguntando, asumiré que eres un principiante informado, lo que significa que no has estado escribiendo el código de manera profesional y solo buscas aprender un nuevo idioma, pero tampoco estás en la situación en la que nunca lo has probado antes, tal vez te has equivocado con algunos tutoriales en línea y estás pensando en tomarlo más en serio.

Entonces, para usted, principiante informado, lo primero que debe pensar es lo que lo motiva. ¿Estás buscando un trabajo? ¿Construir una aplicación? ¿Recoger un hobby? Elegir cómo aprendes basándose en eso debería ser el factor más importante para tomar decisiones, no el mercado, ni lo que está de moda, ni lo que una persona al azar te dice que es mejor comenzar. La razón de esto es simple: aprender a codificar es muy, muy difícil. Requerirá que pienses de maneras completamente nuevas y que lidies con tremendas cantidades de frustración y dudas. Si está motivado para aprender porque desea crear una aplicación iOS, comience con swift / object-c. Si te mueres por crear una aplicación de Android, aprende Java y Android. Si desea realizar visualizaciones en la web, comience con Javascript y luego el marco D3.JS. Si bien ninguno de estos puede ser el “mejor primer idioma” objetivo, lo más importante que puede hacer es motivarse, y si tiene una conexión personal con algún objetivo o idea, enfóquese en eso: el beneficio superará cualquier otra cosa.

Sé que todo esto suena un poco chiflado, pero realmente veo que mi mayor responsabilidad como educador es inspirar a los estudiantes a enamorarse del código. De ahí la página de inicio de Flatiron School (“Learn Love Code”) y la cita gigante en la pared del campus.

Ahora que está fuera del camino, veamos algunas opciones específicas.

Suponiendo que no esté necesariamente interesado en la programación del sistema (como construir un sistema operativo), primero querrá saber si está interesado en el Front-End o Back-End.

En la parte frontal, sus opciones son bastante claras: html, css y javascript. Una vez que tenga una idea de ellos, querrá comenzar a jugar con algunos marcos frontales como Ember, Angular, etc.

Con respecto a los lenguajes de fondo, tiene algunas elecciones primarias.

Java : creo que Java es el lenguaje de programación más común en uso hoy en día. Es lo que AP usa para enseñar Ciencias de la Computación y es la lengua franca en la mayoría de las universidades para aquellos que están considerando un título de CS. También es el lenguaje básico necesario para el desarrollo de Android. Por lo tanto, si desea obtener un título en Ciencias de la Computación o crear aplicaciones nativas de Android, puede comenzar aquí.

Python : Python es lo que se usa en Google y también se enseña cada vez más en las universidades. Es cierto que la fortaleza está en los datos, por lo que si está buscando convertirse en un científico de datos, es probable que necesite aprender Python en algún momento. Aparte de eso, tiene su propio marco web (Django) que lo convierte en una excelente opción para crear aplicaciones web.

Ruby : Mis prejuicios brillarán aquí. Absolutamente amo a Ruby. Fue desarrollado en los años 90 y explotó en popularidad después de la creación de rieles, lo que permitió a las personas crear fácilmente aplicaciones para la web. Ruby es muy similar a python en muchos sentidos, pero las pequeñas diferencias son las que me hacen quererlo (y lo convierten en un gran lenguaje para las personas que comienzan). Primero, ruby ​​tiene una comunidad de código abierto tremendamente activa y acogedora. Uno de los principales inquilinos de Ruby es MINSWAN, lo que significa que Matz (creador de Ruby) es agradable, así que nosotros somos agradables. Además, el rubí es increíblemente expresivo. Donde en Python se ve que debería haber una, y solo una, forma correcta de hacer algo, los rubyistas creen que la forma en que escribimos el código es una expresión de nuestros valores e individualidad.

Finalmente, es increíblemente legible y expresivo. Así es como se escribiría un sencillo programa “Hello World” en Java.

  clase pública principal {
	 public static void main (String [] args) { 
		 System.out.println ("Hello, World!"); 
	 } 
 }

Este es “Hello World” en Ruby-

  pone "¡Hola mundo!"

Aunque eventualmente, es importante aprender lo que se abstrae en ruby, como principiante, esto te permite enfocarte en la lógica en lugar de en la sintaxis.

Una pregunta que la gente me pregunta mucho es si deberían aprender javascript de pila completa (lo que significa aprender Node.js en lugar de un lenguaje del lado del servidor como ruby ​​/ python / java).

Javascript es un lenguaje necesario para cualquiera que busque desarrollar para la web. Pero no fue diseñado para construir aplicaciones web complejas y escalables. Entonces, cuando la gente habla sobre el aumento de JS, creo que es importante separar su uso en front-end frente a back-end.

Cualquiera que sea el tipo de desarrollador que quieras ser, si estás trabajando con la web, estás usando javascript en el front-end. Sin embargo, para el back-end, los lenguajes del lado del servidor como ruby ​​/ python / java (y hay más) son aún más robustos, estables y populares que Node.js. Estoy entusiasmado con el potencial de Node, especialmente porque está creciendo tan rápido, pero sigue siendo una pequeña parte del pastel. Por ahora, creo que es fundamental que cualquier persona que quiera ser un backend o un desarrollador de pila completa obtenga una base sólida en un lenguaje de servidor.

En Flatiron School, enseñamos Full Stack Ruby y Full Stack Javascript (aquí hay un programa de estudios que puedes descargar). Si bien una parte de nuestros estudiantes están entusiasmados con conseguir trabajos como desarrolladores front-end, y basta con centrarse en javascript para ellos, la mayoría de nuestros estudiantes vienen a aprender la pila completa, y para eso, obtienen una base sólida en conceptos de programación. a través de ruby ​​antes de pasar a los marcos web como rieles, y luego nuevamente una base sólida en JS antes de pasar a elementos como Node o marcos frontales como angular es la mejor manera de preparar a los estudiantes con éxito para el futuro.

En última instancia, aunque el primer idioma será el más difícil. Es como aprender a tocar la guitarra por primera vez. Tienes que entrenar tu cerebro para trabajar de una manera completamente nueva. Después de eso, recoger otro instrumento es relativamente trivial. Así que concéntrate en lo que sea que te va a animar y mantenerte motivado y lo harás genial.

Esta es una de las preguntas más comunes que nos hacen, y es una pregunta un poco imposible, porque depende de lo que quieras hacer.

Para un estudiante que nunca ha probado programación de ningún tipo, recomiendo lenguajes basados ​​en bloques de arrastrar y soltar, como nuestro propio Code Studio, Scratch o Tynker o Blockly. Estos enseñan los conceptos. Una vez que aprendas los conceptos, puedes aprender la sintaxis de cualquier idioma. Los conceptos son los mismos en todos los idiomas.

Entonces es cuestión de lo que quieres hacer con los idiomas. Si desea crear una aplicación iOS, debe aprender Swift o ObjectiveC. Si quieres construir una aplicación de Android, debes aprender Java. Si quieres construir un sitio web dinámico, entonces JavaScript. Etc.

En Code.org, nos enfocamos en JavaScript como el lenguaje de computadora que enseñamos y recomendamos, por 3 razones:

1) Funciona en todos los dispositivos y navegadores web, por lo que puede crear una aplicación iOS, una aplicación Android, un sitio web o un servicio web, todo en JavaScript.

2) Se basa en un estándar mundial (ECMAScript) y ha existido durante 20 años. Debido a que forma parte de estos estándares web abiertos (junto con HTML y HTTP), es probable que resista la prueba del tiempo. Casi cualquier otro idioma que decidamos enseñar tiene una mayor probabilidad de ser desplazado por algo mejor cada 5-10 años. JavaScript ha pasado la prueba del tiempo el tiempo suficiente para que nos sintamos cómodos apostando en él.

3) No es demasiado fácil, pero tampoco demasiado difícil.

Si desea escribir servicios en la nube y / o servicios de red, Java parece ser el camino a seguir. También se utiliza para escribir aplicaciones de Android. Java es un buen lenguaje general con mucha documentación y es relativamente sencillo de aprender.

Si desea trabajar en sistemas operativos y redes o aplicaciones móviles de alto rendimiento (siempre que tenga acceso nativo), o escribir juegos para PC, aprenda C ++. Si desea escribir aplicaciones para iPads y iPhones, querrá aprender el objetivo C, que es similar a C ++. C ++ toma un poco de trabajo para aprender bien.

Si quieres escribir aplicaciones de Windows, aprende C #. Es muy parecido a Java, pero hecho por Microsoft.

Si quieres escribir interfaces y aplicaciones web, aprende JavaScript. Tenga en cuenta que no es un familiar de Java, a pesar del nombre.

Para escribir prototipos rápidos, considere un lenguaje como PERL.

Si quieres experimentar con lenguajes “geniales” (que la gente usa habitualmente amor) prueba Haskell o OCaml.

  • En Microsoft en Windows e investigación, usamos principalmente C ++ y C #.
  • En Amazon Digital, casi exclusivamente Java.
  • En Google, por lo general, ya sea C ++ o Java.
  • En Oracle Cloud, C ++ y Java
  • En cada uno de estos lugares, mucha gente también conocía y usaba PERL, y algunos usaban Haskell.

Aprenda un idioma en el área en la que más disfruta trabajando y apréndelo bien.