¿Qué lenguaje de programación deberías aprender primero en 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

El viaje de la mayoría de las personas hacia el aprendizaje de la programación comienza con una sola búsqueda en Google a altas horas de la noche.

Por lo general, es algo como "Aprende ______"

Pero, ¿cómo deciden qué idioma buscar?

“Siempre bromean sobre Java en Silicon Valley. Supongo que debería aprender eso ".

O:

Haskell. Tan caliente ahora mismo. Haskell ".

O:

"Ese Gopher es tan jodidamente lindo".

Y luego está el resto de nosotros. Probablemente busquemos algo como:

"¿Qué lenguaje de programación debo aprender primero?"

Pocas preguntas se hacen con tanta frecuencia que reciben el tratamiento infográfico completo. Pero este es uno de ellos:

Decidir tu primer lenguaje de programación puede ser un proceso divertido, como uno de esos "¿Qué personaje de Quentin Tarantino eres?" cuestionarios de personalidad.

Pero antes de que te vayas a aprender Ruby porque disfrutaste jugando con Play-Doh cuando eras niño, déjame recordarte: aquí hay mucho en juego.

Le llevará cientos de horas de práctica llegar a ser incluso remotamente competente con su primer lenguaje de programación.

Por lo tanto, debe considerar los siguientes factores:

  • el mercado laboral del idioma
  • las perspectivas a largo plazo del idioma
  • lo fácil que es aprender el idioma
  • qué proyectos puedes construir mientras aprendes (y compartir con amigos para mantenerte motivado)

Cada año trae nuevos lenguajes de programación y, con ellos, nuevos trabajos académicos. Y nuevos cómics web.

Seriamente. Mira esta joya del mes pasado:

Cuando se trata de elegir un primer lenguaje de programación, no hay escasez de opciones. Para reducirlo un poco, estas son las búsquedas de Google más comunes relacionadas con el aprendizaje de la programación, durante los últimos 12 años:

Java ha tenido sus altibajos.

Python se ha convertido gradualmente en la opción más popular.

Pero escondido debajo de estos se encuentra la Pequeña Locomotora que Podría, lentamente ganando popularidad en los últimos años. Y ese motor es JavaScript.

Antes de hablar sobre estos lenguajes de programación, permítanme aclarar:

  • No estoy argumentando que un idioma sea objetivamente mejor que cualquier otro
  • Estoy de acuerdo en que los desarrolladores eventualmente deberían aprender más de un idioma
  • Sostengo que primero deberían aprender bien un idioma. Y, como probablemente pueda adivinar por el texto al revés en mi título, ese lenguaje debería ser JavaScript.

Comencemos explorando cómo se enseña actualmente la programación en la escuela.

Informática 101

Las universidades tradicionalmente han enseñado programación bajo el paraguas de la informática, que a menudo se ve como una extensión de las matemáticas o como una relación con un título de ingeniería eléctrica.

Por supuesto, como ya habrás escuchado:

“La educación en ciencias de la computación no puede convertir a nadie en un programador experto más de lo que el estudio de pinceles y pigmentos puede convertir a alguien en un pintor experto”. - Eric S. Raymond

A partir de 2016, muchas universidades todavía tratan la programación como si fuera informática y la informática como si fuera matemática.

Como resultado, muchos cursos de introducción a la programación se enfocan en lenguajes de bajo nivel de abstracción como C, o lenguajes enfocados en matemáticas como MATLAB.

Y los jefes de departamento generalmente mantienen el rumbo, señalando tablas de clasificación anuales de lenguajes de programación como el Índice TIOBE, o este del IEEE:

La mayoría de estas tablas de clasificación se ven virtualmente idénticas a como eran hace 10 años.

Pero el cambio ocurre. Incluso en la academia.

En 2014, Python superó a Java como el lenguaje de instrucción más popular en los principales programas de informática de EE. UU.

Y otro cambio más está destinado a ... eventualmente ... suceder.

Porque si nos fijamos en los idiomas que realmente utiliza la fuerza laboral, se presenta una imagen muy diferente:

Más de la mitad de todos los desarrolladores utilizan JavaScript. Es vital para el desarrollo web front-end y cada vez más relevante para el desarrollo back-end. Y se está expandiendo rápidamente a áreas como el desarrollo de juegos y la Internet de las cosas.

Las ofertas de trabajo también mencionan JavaScript más que cualquier otro lenguaje de programación que no sea Java:

No es casualidad que construyamos el plan de estudios de nuestra comunidad de código abierto en torno a JavaScript. Durante los últimos dos años, más de 5000 personas han utilizado Free Code Camp para conseguir su primer trabajo como desarrollador.

No estoy defendiendo JavaScript porque lo enseño. Enseño JavaScript porque es el camino más seguro hacia un primer trabajo de desarrollador.

¿Pero es JavaScript adecuado para ti? ¿Es digno de ser tu primer lenguaje de programación? Exploremos esos factores que mencioné anteriormente.

Factor # 1: El mercado laboral

Si está aprendiendo a programar simplemente por curiosidad intelectual, no dude en omitir este factor. Pero si usted, como la gran mayoría de las personas que están aprendiendo a programar, desea utilizar esta habilidad para conseguir un trabajo, esta es una consideración importante.

Como mencioné anteriormente, Java se menciona en más ofertas de trabajo que cualquier otro lenguaje de programación. JavaScript es un segundo cercano.

Pero esto es lo que pasa con JavaScript: aunque ha existido durante 20 años, solo recientemente se convirtió en una herramienta seria alrededor de la cual compañías como Netflix, Walmart y PayPal construirían aplicaciones completas.

Como resultado, muchas empresas están contratando desarrolladores de JavaScript, pero no hay tantos en el mercado laboral.

Hay 2.7 desarrolladores de Java compitiendo por cada puesto abierto de Java. La competencia por los trabajos de PHP e iOS es igualmente feroz.

Pero por cada posición de JavaScript abierta, solo hay 0.6 desarrolladores de JavaScript. Es un mercado de vendedores para desarrolladores con habilidades de JavaScript.

Factor # 2: Las perspectivas a largo plazo

El proyecto de JavaScript promedio recibe el doble de solicitudes de extracción que el proyecto de Java, Python o Ruby promedio. Y además de esto, JavaScript está creciendo más rápido que cualquier otro lenguaje popular.

El ecosistema de JavaScript también se beneficia de una gran inversión de dinero y talento de ingeniería de empresas como Google, Microsoft, Facebook y Netflix.

Por ejemplo, TypeScript (un superconjunto de JavaScript de tipo estático) tiene más de 100 colaboradores de código abierto, muchos de los cuales son empleados de Microsoft y Google a los que se les paga por trabajar en él.

Este tipo de cooperación entre empresas es más difícil de encontrar con Java. Oracle, que es el propietario de Java mediante la adquisición de Sun Microsystems, a menudo demanda a las empresas que intentan expandirlo.

Factor # 3: Dificultad para aprender

La mayoría de los programadores estarían de acuerdo en que los lenguajes de programación de alto nivel son relativamente fáciles de aprender. JavaScript entra en esta categoría, junto con Python y Ruby.

Aunque las universidades todavía enseñan lenguajes como Java y C ++ como primeros idiomas, son considerablemente más difíciles de aprender.

Factor # 4: Proyectos que puedes construir con él

Aquí es donde JavaScript realmente brilla. JavaScript se ejecuta en cualquier dispositivo que tenga un navegador, allí mismo en el navegador. Puede crear básicamente cualquier cosa con JavaScript y compartirlo en cualquier lugar.

Debido a la ubicuidad de JavaScript, el cofundador de Stack Overflow, Jeff Atwood, acuñó su ahora famosa ley:

“Cualquier aplicación que puede ser escrito en JavaScript, será finalmente ser escrito en JavaScript.”

Y con cada mes que pasa, la Ley de Atwood se mantiene fuerte.

Java una vez prometió ejecutarse en todas partes también. Es posible que recuerde los applets de Java. Oracle los mató oficialmente a principios de este año.

Python sufre de los mismos problemas:

“¿Cómo puedo regalar este juego que hice a mi amigo? Aún mejor, ¿hay alguna manera de poner esto en mi teléfono para poder mostrárselo a los niños en la escuela sin que tengan que instalarlo? Um. " - James Hague en Retirar Python como lengua de enseñanza

Por el contrario, aquí hay algunas aplicaciones que los miembros de nuestra comunidad de código abierto construyeron en sus navegadores en CodePen. Puede hacer clic y utilizarlos directamente en su navegador:

Aprenda bien un idioma. Entonces aprende un segundo.

Si sigues saltando de un idioma a otro, no llegarás muy lejos.

Para ir más allá de lo básico, necesita aprender bien su primer idioma. Entonces su segundo idioma será mucho, mucho más fácil.

A partir de ahí, puede diversificarse y convertirse en un desarrollador más completo aprendiendo muchos idiomas:

  • C es una excelente manera de aprender cómo funcionan realmente las computadoras en términos de administración de memoria y es útil en computación de alto rendimiento
  • C ++ es ideal para el desarrollo de juegos.
  • Python es fantástico para la ciencia y la estadística.
  • Java es importante si quieres trabajar en grandes empresas de tecnología.

Pero primero aprenda JavaScript.

Bien, ahora voy a intentar lo imposible, voy a intentar anticipar las objeciones de la sección de comentarios.

Objeción n. ° 1: ¿Pero JavaScript no es lento?

JavaScript es, para la mayoría de los propósitos prácticos, tan rápido como los lenguajes de alto rendimiento.

JavaScript (Node.js) es un orden de magnitud más rápido que Python, Ruby y PHP.

También es casi tan rápido como los lenguajes de alto rendimiento como C ++, Java y Go.

A continuación, se muestran los resultados de la evaluación comparativa entre idiomas más completa y reciente:

Objeción n. ° 2: pero JavaScript no se escribe estáticamente

Como Python y Ruby, JavaScript se escribe dinámicamente, lo cual es conveniente. Pero puedes meterte en problemas. Aquí pretendo exampleArrayser una matriz. Establezco sus valores, luego verifico su longitud, es decir, la cantidad de elementos que contiene.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Pero luego lo asigno accidentalmente como una cadena.

exampleArray = “text” -> “text” exampleArray.length -> 4

Este tipo de errores ocurren todo el tiempo en lenguajes escritos dinámicamente. La mayoría de los desarrolladores simplemente realizan comprobaciones para evitarlos y escriben pruebas en consecuencia.

Si absolutamente debe tener escritura estática en su primer lenguaje de programación, le recomiendo que aprenda JavaScript primero. Entonces puede elegir rápidamente TypeScript.

"TypeScript tiene una curva de aprendizaje, pero si ya conoce JavaScript, será fácil". - Alex Ewerlöf en TypeScript

Objeción # 3: Pero realmente quiero hacer una aplicación móvil.

Todavía recomiendo aprender JavaScript primero.

  1. JavaScript presenta varias herramientas para crear aplicaciones móviles nativas, como Angular Cordova y React Native.
  2. Para que su aplicación móvil realmente haga algo interesante, probablemente necesitará un back-end adecuado, que querrá construir con un marco de desarrollo web adecuado, como Node.js + Express.js.

Además, vale la pena señalar que los mejores días del desarrollo de aplicaciones móviles pueden quedar atrás.

Para empezar, por mucho que la gente use aplicaciones móviles, casi la mitad de todos los trabajos de desarrollador son desarrollo web. Compare esto con un mero 8% de los trabajos que involucran el desarrollo de aplicaciones móviles.

La gran visión de "hay una aplicación para eso" no se ha cumplido. En cambio, la mayoría de los propietarios de teléfonos inteligentes han dejado de descargar nuevas aplicaciones.

Claro, todavía usan aplicaciones. Principalmente Facebook, Google Maps y algunos otros. Como tal, gran parte de la demanda de desarrolladores de aplicaciones móviles se concentra en unos pocos grandes empleadores.

Las perspectivas para esos trabajos de desarrollo móvil son difíciles de predecir. Muchos aspectos del desarrollo, mantenimiento y distribución de aplicaciones móviles son más fáciles con JavaScript. Por lo tanto, empresas como Facebook y Google están invirtiendo mucho en mejores herramientas para crearlas utilizando JavaScript.

A partir de 2016, prácticamente todo el desarrollo es desarrollo web. Todo toca esa gran plataforma que es "la web". Y la próxima ola de dispositivos con los que hablará en su hogar y los automóviles que recogen a sus hijos de la escuela, también se conectarán a través de la web.

Y eso significa JavaScript.

Objeción n. ° 4: ¿No es JavaScript un lenguaje de juguete que se escribió en 10 días?

JavaScript tiene una historia peculiar.

Sin duda, escuchará a la gente hacer bromas a su costa.

Bueno, a la gente también le encanta odiar en C ++. Y al igual que JavaScript, C ++ ha tenido éxito a pesar de este odio, y ahora también está prácticamente en todas partes.

Entonces, si alguien alguna vez te hace difícil aprender JavaScript en lugar del idioma élite de la semana, recuerda las famosas palabras del tipo que creó C ++:

"Sólo hay dos tipos de lenguajes de programación: las personas que siempre se quejan y las que nadie usa". - Bjarne Stroustrup

Solo escribo sobre programación y tecnología. Si me sigues en Twitter no perderé tu tiempo. ?