Decidir cuál es su primer lenguaje de programación puede ser un proceso divertido, algo así como uno de esos “¿Qué personaje de Quentin Tarantino eres?” Cuestionarios de personalidad.
Pero antes de que te vayas a aprender a aprender Ruby porque te gustaba jugar con Play-Doh cuando eras un niño, déjame recordarte: las apuestas son bastante altas aquí.
Tardará cientos de horas de práctica para ser incluso remotamente competente con su primer lenguaje de programación.
- ¿Puedo aprender y enseñar abacus fácilmente?
- ¿Cuál es el concepto de marketing más importante que aprendiste este año?
- ¿Alguien puede aprender un nuevo sistema de escritura rápidamente?
- ¿Hay un límite de cuánto podemos aprender?
- ¿Hay algún consejo para tener en cuenta al aprender un nuevo idioma? ¿Cómo recuerdas todas las cosas?
Así que debes considerar los siguientes factores:
- El mercado laboral para el idioma.
- Las perspectivas a largo plazo para el idioma.
- lo fácil que es aprender el idioma
- qué proyectos puedes construir mientras aprendes (y compartes con amigos para que puedas mantenerte motivado)
Cada año trae nuevos lenguajes de programación, y con ellos, nuevos trabajos académicos. Y nuevos cómics web.
Seriamente. Echa un vistazo a esta joya del mes pasado:
Cuando se trata de elegir un primer lenguaje de programación, no hay escasez de opciones. Para limitarlo un poco, aquí están las búsquedas de Google más comunes relacionadas con la programación de aprendizaje en los últimos 12 años:
Java ha tenido sus altibajos.
Python ha aumentado gradualmente hasta convertirse en la opción más popular.
Pero escondido debajo de estos está el Pequeño motor que podría, poco a poco 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 cualquier idioma sea objetivamente mejor que cualquier otro
- Estoy de acuerdo en que los desarrolladores deberían aprender más de un idioma
- Estoy argumentando que primero deberían aprender bien un idioma. Y, como probablemente pueda adivinar por el texto al revés en mi titular, ese idioma debe ser JavaScript.
Comencemos por explorar cómo se enseña actualmente la programación en la escuela.
Ciencias de la computación 101
Las universidades han enseñado tradicionalmente la programación bajo el paraguas de la informática, que a menudo se considera una extensión de las matemáticas, o un vínculo con un título de ingeniería eléctrica.
Por supuesto, como ya habrás escuchado:
“La educación en informática no puede convertir a nadie en un programador experto más que estudiar pinceles y pigmentos puede hacer que alguien sea un pintor experto”. – Eric S. Raymond
A partir de 2016, muchas universidades aún tratan la programación como si fuera informática, y la informática como si fuera matemática.
Como resultado, muchos cursos de programación introductorios se enfocan en lenguajes de bajo nivel de abstracción como C, o lenguajes enfocados matemáticamente como MATLAB.
Y los jefes de departamento generalmente mantienen el rumbo, apuntando a las tablas de clasificación de lenguajes de programación anuales como el Índice TIOBE, o este del IEEE:
La mayoría de estas tablas de clasificación son prácticamente idénticas a las de hace 10 años.
Pero el cambio sucede. Incluso en la academia.
En 2014, Python superó a Java como el idioma de instrucción más popular en los principales programas informáticos de los EE. UU.
Y, sin embargo, otro cambio está destinado a … eventualmente … suceder.
Porque si nos fijamos en los idiomas realmente utilizados por la fuerza laboral, presenta una imagen muy diferente:
JavaScript es, con mucho, el lenguaje más popular utilizado por los 49,397 desarrolladores que respondieron a la Encuesta 2016 de Stack Overflow.
Más de la mitad de todos los desarrolladores usan 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 en áreas como el desarrollo de juegos y el 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:
Datos del mayor agregador de ofertas de empleo del mundo, Indeed.com
No es casualidad que creamos el plan de estudios de nuestra comunidad de código abierto en torno a JavaScript. En los últimos dos años, más de 5,000 personas han utilizado Free Code Camp para obtener su primer trabajo de desarrollador.
No estoy abogando por JavaScript porque lo enseño. Enseño JavaScript porque es el camino más seguro para un primer trabajo de desarrollador.
¿Pero es JavaScript adecuado para usted? ¿Es digno de ser tu primer lenguaje de programación? Vamos a explorar los factores que mencioné anteriormente.
Factor # 1: El mercado laboral.
Si está aprendiendo a programar simplemente por curiosidad intelectual, siéntase libre de saltarse este factor. Pero si usted, como la gran mayoría de las personas que están aprendiendo a programar, quiere usar esta habilidad para obtener 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 está en segundo lugar.
Pero esto es lo que tiene JavaScript: a pesar de que existe desde hace 20 años, solo recientemente se convirtió en una herramienta seria en la que compañías como Netflix, Walmart y PayPal desarrollarían aplicaciones completas.
Como resultado, muchas empresas están contratando desarrolladores de JavaScript, pero no hay muchas en el mercado laboral.
Datos de Indeed.com
Hay 2.7 desarrolladores de Java compitiendo por cada posición abierta de Java. La competencia por trabajos de PHP y iOS es igualmente feroz.
Pero para cada posición abierta de JavaScript, 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 promedio de Java, Python o Ruby. Y además de esto, JavaScript está creciendo más rápido que cualquier otro idioma popular.
Fuente: El estado de Octoverse del GitHub 2016
El ecosistema de JavaScript también se beneficia de una gran inversión de dinero y talento de ingeniería de compañías 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 quienes se les paga por trabajar en ello.
Este tipo de cooperación entre compañías es más difícil de encontrar con Java. Oracle, que posee efectivamente Java a través de la adquisición de Sun Microsystems, a menudo demanda a las empresas que intentan ampliarlo.
Factor # 3: Dificultad para aprender.
Esta es una parodia de un comic de XKCD.
La mayoría de los programadores estarían de acuerdo en que los lenguajes de script de alto nivel son relativamente fáciles de aprender. JavaScript cae en esta categoría, junto con Python y Ruby.
Aunque las universidades todavía enseñan idiomas como Java y C ++ como primeros idiomas, son mucho más difíciles de aprender.
Factor # 4: Proyectos que puedes construir con él
Aquí es donde realmente brilla JavaScript. JavaScript se ejecuta en cualquier dispositivo que tenga un navegador, justo allí en el navegador. Puedes construir 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 ley ahora famosa:
“Cualquier aplicación que se pueda escribir en JavaScript, eventualmente se escribirá en JavaScript”.
Y con cada mes que pasa, la ley de Atwood se mantiene firme.
Java una vez prometió correr por todas partes, también. Quizás recuerdes los applets de Java. Oracle oficialmente los mató a principios de este año.
Python sufre de los mismos problemas:
“¿Cómo puedo dar este juego que hice a mi amigo? Aún mejor, ¿hay alguna manera de poner esto en mi teléfono para poder mostrarlo a los niños en la escuela sin que tengan que instalarlo? Um. ”- James Hague en Retiring Python como lenguaje 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 usar estos derechos en su navegador:
Juego de los años 70 estilo simon
El juego de la vida de Conway
Búsqueda de Wikipedia sobre temas de Star Wars
Un juego de rastreadores de mazmorras roguelike
Aprende bien un idioma. Entonces aprende una segunda.
Si sigues saltando de un idioma a otro, no llegarás lejos.
Para ir más allá de lo básico, debe aprender bien su primer idioma. Entonces tu segunda lengua será mucho, mucho más fácil.
A partir de ahí, puede diversificarse y convertirse en un desarrollador más completo al aprender 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 impresionante para la ciencia y las estadísticas.
- Java es importante si quieres trabajar en grandes empresas de tecnología.
Pero aprende JavaScript primero.
Bien, ahora voy a intentar lo imposible. Voy a intentar anticipar las objeciones de la sección de comentarios.
Objeción # 1: ¿Pero no es lento JavaScript?
JavaScript es, para los fines más prácticos, tan rápido como los lenguajes de alto rendimiento.
JavaScript (Node.js) es órdenes 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.
Estos son los resultados del más reciente estudio comparativo entre idiomas:
Objeción # 2: Pero JavaScript no está tipificado estáticamente
Al igual que Python y Ruby, JavaScript se escribe dinámicamente, lo cual es conveniente. Pero puedes meterte en problemas. Aquí pretendo, por exampleArray
que exampleArray
sea una matriz. Establece sus valores, luego verifico su longitud, es decir, el número de elementos que contiene.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
Pero luego accidentalmente lo asigno a ser una cadena.
exampleArray = “texto”
-> “texto”
exampleArray.length
-> 4
Este tipo de errores ocurren todo el tiempo en idiomas tipificados dinámicamente. La mayoría de los desarrolladores simplemente ponen cheques para prevenirlos y escriben las pruebas correspondientes.
Si es absolutamente necesario tener escritura estática en su primer lenguaje de programación, entonces le recomiendo que primero aprenda JavaScript. Entonces puedes recoger rápidamente TypeScript.
“Typescript tiene una curva de aprendizaje, pero si ya conoces 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.
- JavaScript presenta varias herramientas para hacer aplicaciones móviles nativas, como Angular Cordova y React Native.
- 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 estar muy por detrás.
Para empezar, tanto como las personas usan aplicaciones móviles, casi la mitad de todos los trabajos de desarrollador son desarrollo web. Compare esto con solo el 8% de los trabajos que involucran el desarrollo de aplicaciones móviles.
Las ocupaciones de 49,525 desarrolladores, basadas en las respuestas a la encuesta de Desbordamiento de Pila 2016.
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 un puñado de 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 pronosticar. 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 fuertemente en mejores herramientas para construirlas utilizando JavaScript.
A partir de 2016, casi todo el desarrollo es desarrollo web. Todo toca la gran plataforma que es “la web”. Y la próxima ola de dispositivos con los que hablará en su hogar, y los autos que recogen a sus hijos de la escuela: todos se conectarán utilizando la web, también. .
Y eso significa JavaScript.