¿Qué lenguajes DEBES APRENDER según tu carrera? Guía completa

¿Ya has decidido en qué área de la programación te especializarás? ¡No tomes decisiones precipitadas! Primero lee este nuevo blog y descubre qué lenguajes necesitas aprender según tu carrera 👨‍💻.

Diseño web
8 minutos
Hace 2 años
¿Qué lenguajes DEBES APRENDER según tu carrera? Guía completa

¡Accede a cientos de cursos
con solo un pago al año!

Blog Microbanner

Llegó un nuevo año, lleno de retos y oportunidades, por lo que es importante comenzar a definir tus metas. Entre esas metas, seguramente se encuentra convertirte en un profesional y ganar mucho dinero. Pero ¿ya sabes en qué área te vas a especializar? Existen muchísimas carreras en tecnología: videojuegos, seguridad informática, desarrollo web y móvil, entre otros. ¿Pero sabes qué lenguajes debes aprender para dedicarme a esa carrera que tanto sueñas? ¡llegaste al blog indicado!

1. Desarrollo web

Comencemos este blog con el área que tiene más oportunidades laborales y más aplicaciones, que es el desarrollo web. ¿Por qué? porque el desarrollo web es abierto, solo necesitas un navegador y un servidor, que puede ser, incluso, tu propia computadora. Entonces no tienes limitaciones.

Y para ponernos en contexto en el desarrollo web, recordemos que existen las páginas web, que son contenidos estáticos, principalmente contenido informativo, y también tenemos las aplicaciones web, que son completamente personalizadas y tienen muchas funcionalidades. por ejemplo, Facebook, EDteam, Youtube, Netflix, entre otros, son aplicaciones web.

En el mundo web tenemos dos divisiones: backend y frontend. El primero, son las tecnologías web que funcionan dentro del navegador (Chrome, Edge, Safari, etc), y esos lenguajes son HTML, CSS y JavaScript. Estos son los lenguajes con los que tienes que empezar en el desarrollo web.

HTML es para la estructura, CSS es para los estilos (que se vea bonito), sin embargo, ambos no se consideran lenguajes de programación. Por último, tienes a JavaScript, que si se considera lenguaje de programación. No obstante, con JS solito, no podrás hacer mucho. Tendrás que pasar a otras herramientas, como Angular, Vue y React.

desarrollo-web-infografia.png

Pero también tenemos el lado del backend, que es todo lo que ocurre en el servidor y gracias a lo cual, existe esa página web en Internet. El frontend es lo que los clientes ven, pero el backend es el funcionamiento interno, como el motor de un vehículo.

Los lenguajes más usados son:

  • Java
  • Go (lo usamos en EDteam).
  • PHP
  • Python
  • Ruby
  • C#
  • También JavaScript.

Si quieres ampliar esta información, tenemos dos videos en nuestro canal de youtube que te explicará todo con detalles: la ruta para ser programador backend en 2023 (guía completa) y la ruta para ser programador frontend en 2023 (guía completa).

2. Desarrollo móvil

Esta área es bastante reciente, porque el primer iPhone sale en 2007 y la tienda de aplicaciones, apenas en el 2008. Sin embargo, es un mercado con mucha demanda. Podemos diferenciar el desarrollo móvil en dos áreas: nativo y multiplataforma.

Nativo

En el lado del desarrollo móvil nativo, dos de los sistemas más famosos son iOS y Android, aunque existen otros no tan populares o muy pequeños. Cada uno tiene sus propias tecnologías. Por ejemplo, para iOS desarrollas con Swift, el lenguaje oficial de Apple lanzado en el 2016 y que reemplaza al viejo Objetive C. Swift no solo se usa para iOS, sino también para MacOS, aplicaciones de escritorio y para los relojes de Apple.

Hablando de Android nativo, tienes a Kotlin y Java. El primer lenguaje de Android fue Java, pero luego Jet Brains (empresa muy conocida en el mundo del desarrollo) creó Kotlin. Google apostó todo a Kotlin, creó una fundación, metió dinero, y hoy por hoy, Kotlin es el lenguaje oficial para desarrollar apps nativas en Android.

Multiplataforma

Ahora, hablando de multiplataforma, nos referimos a un código que puede funcionar en dos sistemas (iOS y Android). Tenemos dos caminos: el camino nativo y web. ¿Pero por qué nativo? son tecnologías que sí funcionan con un rendimiento nativo, que si se conectan directamente con las capas del sistema operativa, entre otras cosas. Y cuando hablamos de web, son aplicaciones que utilizan tecnologías web empaquetadas para que funcionen como si fueran apps móviles.

  1. Web

En este camino, tenemos las PWA, que permiten que las apps web se transforme en móvil y que simplemente las instales. Por ejemplo, entras a ed.team y te aparecerá un botón para instalar y ya tienes la app completamente funcional en tu teléfono sin necesitar a un navegador.

Por otro lado, tenemos a Ionic, que es un frameworks conocido, que inicialmente funcionaba con Angular, ahora funciona con React, con Vue y otras tecnologías. También se encuentra React Native, aunque su nombre dice Native, no lo es, porque hace un puente para comunicarse con el sistema operativo.

  1. Nativas

Entre las tecnologías que en realidad tienen un rendimiento nativo, tenemos a Flutter, que es la que está rompiendo todos los esquemas. Y para usar Flutter, necesitas el lenguaje Dart. Si quieres saber más de Flutter, tienes que ver nuestro video de Youtube dónde te explicamos sus ventajas y por qué deberías aprenderlo.

Además, otra opción del lado de Microsoft, tienes a Xamarin (aunque ahora se cambiará el nombre a MAUI), que te permite hacer interfaces multiplataforma, para que con C# y todas las herramientas de .NET, puedas desarrollar para todas las plataformas. Si quieres saber más de .NET, tenemos la mejor explicación en español en nuestro canal de Youtube: ¿Qué es .NET? Guía definitiva para entender la plataforma de Microsoft.

desarrollomovil-EDteam.png

3. Videojuegos

Puedes desarrollar videojuegos prácticamente en cualquier lenguaje (incluso dentro de la terminal). Pero si estás pensando en videojuegos más avanzados, entonces necesitas un motor (engine). Los motores proporcionan los componentes más importantes, como renderizado 2D y 3D, scripting, animaciones, entre toras cosas. Sin un motor de videojuegos, programar un juego como Fornite sería como querer construir un auto con una piedra.

motor-de-videojuegos.png

Entre los motores de videojuegos más importantes, tenemos a Unity, que utiliza C# y Unreal Engine, en el que puedes usar C++ (el lenguaje con el que se desarrolló) o Python, para comunicarse con su API. Con estos motores y lenguajes se crean juegos como Fornite, GTA, Half Life o Pokemon Go.

Ten en cuenta dos cosas:

  1. Estos motores te dan todas las herramientas para que puedas crear tu propio videojuego sin programar.
  2. La creación de un videojuego es como la creación de una película: participan muchos profesionales de diferentes áreas. No todo recae en el programador (salvo que quieras hacer un videojuego indie).

Otros lenguajes para videojuegos son Java (con el que se desarrolló Minecraft), JavaScript, para el desarrollo de videojuegos basados en el navegador (e incluso realidad virtual), con motores como Phaser, PixiJS o incluso librerías 3D como Three.js para el renderizado.

Un lenguaje que quizás no conocías es Lua, que se usó en el desarrollo de videojuegos como Roblox, World of Warcraft y Sonic.

4. Apps de escritorio

En las aplicaciones de escritorio existe un líder absoluto: C++. Este lenguaje es una evolución de C, escrito en 1979 por Bjarne Stroustrup para añadirle programación orientada a objetos a C. Su bajo nivel y su capacidad para comunicarse con el hardware, lo hacen ideal para el escritorio.

Aplicaciones legendarias como la suite de office (Word, Excel, Powerpoint) o la suite de Adobe (Photoshop, Illustrator, Premiere, After Effects) están principalmente escritos en C++. También aplicaciones Open Source como Gimp.

Otro veterano del desarrollo de escritorio es Java, que te explicamos en este video de EDteam: ¿Qué es Java y cuál es su historia?, fue creado para funcionar en cualquier plataforma (write once, run anywhere), por lo que se usa mucho en escritorio. Entre los programas legendarios con Java, tenemos a todos los IDEs de JetBrains (IntelliJ Idea, Webstorm, Pycharm, etc), Android Studio, NetBeans y Eclipse.

En el desarrollo para Windows, tenemos a C#, el lenguaje oficial de .NET, la plataforma para desarrollar en todo el ecosistema de Windows, como vimos en otro video de EDteam. Y para MacOS, existe Swift, el lenguaje oficial de Apple.

También puedes desarrollar para escritorio con tecnologías web (HTML, CSS y JS), empaquetándolas para escritorio gracias a Electron o como PWA.

aplicaciones-de-escritorio-infografía-EDteam.png

5. Inteligencia artificial / Ciencia de datos

En el campo de la inteligencia artificial, no tienes que pensarlo dos veces, Python es tu lenguaje. También existe R, un lenguaje científico excelente para el análisis de datos pero con una curva de aprendizaje más elevada, por lo que muchos profesionales prefieren a Python. Si quieres saber más de Python y por qué es tan popular, tenemos un video en Youtube: ¿Qué es Python y por qué es el lenguaje número 1 del mundo?

El poder de Python en la inteligencia artificial y la ciencia de datos no es solo por su sencillez, sino por todas las herramientas y librerías. Por ejemplo Tensorflow de Google se usa para crear redes neuronales y está escrita en Python. También está Keras para el deep learning, que también está escrita en Python y corre sobre Tensorflow o Pytorch, una librería de machine learning desarrollada con Python en los laboratorios de Facebook. Además, es usada por Tesla para la conducción automática.

En el campo de la ciencia de datos, que es un área muy cercana a la inteligencia artificial, Python tiene paquetes como Scikit Learn, que es la herramienta ideal para comenzar. Y para proyectos avanzados, Pandas o Numpy.

6. Sistemas operativos / Sistemas embebidos

El desarrollo de sistemas operativos implica darle instrucciones directamente al procesador (a diferencia de las aplicaciones que corren encima del SO) por lo que el lenguaje más usado es C. De hecho, C fue creado en 1972 con el objetivo de convertir a UNIX (el sistema operativo más importante de los años 70) en portable. Es decir, poder llevarse a otras computadoras sin tener que escribir un SO diferente para cada computadora. En ese caso, estaríamos hablando de que UNIX es el primer software multiplataforma de la historia.

En 1979 se crea C++, que agrega programación orientada a objetos a C (por eso inicialmente se le llamó C con clases) e históricamente, ambos lenguajes han sido los usados para sistemas operativos por su bajo nivel y porque permiten comunicarse directamente con el hardware. Windows, Mac y Linux utilizan estos lenguajes.

Pero como vimos en este video de EDteam, ambos lenguajes tienen problemas de manejo de memoria, por lo que en 2010 se lanza Rust, que es interoperable con C y C++ y que soluciona estos problemas de memoria. Rust está lo suficientemente maduro para que se haya decidido incluirlo en la próxima versión del kernel de Linux.

Y recién salidito del horno está Carbon, un lenguaje de Google, inspirado en Rust, presentado en julio de 2022 y que busca ser el sucesor de C++.

7. Realidad virtual y aumentada

La realidad virtual (VR) y la realidad aumentada (RA) son dos conceptos sumamente relacionados. La VR consiste en sumergirte en un mundo 100% irreal, dándote la sensación de estar en ese lugar. Para eso, se usan cascos, audífonos y otros aparatos que hacen que te desconectes de tu entorno real y creas estar en otra parte. La mayor apuesta en realidad virtual es el metaverso, aunque hasta ahora es eso: una apuesta más que una realidad.

qué-es-la-realidad-virtual-infografía-EDteam.png

Por su lado, la realidad aumentada (AR) es agregarle elementos al mundo real. Por ejemplo, saludar a una persona y ver en unos lentes su nombre y otro tipo de información (como Terminator escaneando a las personas o los sayayin midiendo el ki).

No existe un lenguaje específico para ambas tecnologías, puesto que necesitan muchos componentes adicionales para crear AR/VR desde cero. Así que mejor hablemos de plataformas.

Las plataformas principales son 3: motores de videojuegos, sistemas operativos móviles y la web.

Los motores de videojuegos son excelentes porque tienen todo lo necesario para crear entornos realistas, así que puedes usar C# y C++ como lenguajes principales. Por su lado, los avances de la web hacen que podamos usar librerías como A-frame o AR.js con JavaScript.

Y en el caso de los móviles, tienes acceso a una gran pantalla, giroscopio y cámara. Así que puedes usar Java, Kotlin o Swift.

8. Database administrator

La administración de bases de datos no es estrictamente hablando un área de la programación sino un área más ligada a los sistemas (ni siquiera se considera a SQL un lenguaje de programación como tal). Sin embargo, la importancia de las bases de datos en el desarrollo de software es tan grande que no podemos ignorarlo.

qué-son-las-bases-de-datos-infografía-EDteam.png

Como debes saber, existen dos grandes tipos de bases de datos (y si no lo sabes aún, te recomiendo ver este video de EDteam): las relacionales (SQL) y las no relacionales (NoSQL).

Para las relacionales, el lenguaje que debes aprender es SQL (obviamente). Ten en cuenta que todos los motores relacionales como MySQL, Oracle, SQL Server, Postgresql o similares, usan SQL (con algunas variaciones).

Del lado de las no relacionales, lo que tienes que hacer es consumir su API, por lo que no existe un lenguaje específico para manejarlas, sino que dependerá del que estés usando en tu proyecto.

sql-vs-nosql-infografía-EDteam.png

9. Seguridad informática

Una famosísima frase del profesor Gene Spafford, es: “la única computadora segura es la que está apagada, metida en un bloque de concreto y guardada en una habitación revestida de plomo y con guardias de seguridad en la puerta. Y aún así, tengo mis dudas.

Esta frase es de 1989 (hace 34 años) y al día de hoy, sigue siendo verdad. Todo sistema es vulnerable de ser atacado, por eso la seguridad informática es uno de los campos donde se invierte más dinero y recursos. Todos los días nos aparecen noticias de empresas hackeadas y nadie quiere ser la próxima. Por eso, los expertos en seguridad son tan demandados.

El lenguaje más usado en esta área es un viejo conocido: Python. ¿Por qué Python? Porque permite crear automatizaciones muy rápido. Y estas automatizaciones pueden usarse para atacar un sistema y encontrar posibles vulnerabilidades (a esta técnica se le llama pentesting).

Pero, además de Python, debes saber SQL para entender como se almacenan y se protegen los datos, así como encontrar patrones sospechosos o malas prácticas que deban corregirse. De hecho, las inyecciones SQL siguen siendo una de las formas más comunes de ataque.

Por último, un profesional de la seguridad informática debe entender de Linux, bash y lenguajes como C y C++ para entender el funcionamiento profundo de los sistemas.

10. Testing

Cerramos esta lista con un área que muchos programadores solemos dejar para después (y no estoy hablando de la documentación) y que nos evitaría muchos dolores de cabeza si empezáramos a aplicarlo a nuestro día a día. Y me refiero al testing.

Existen tres tipos básicos de testing: los unitarios, que prueban funciones específicas de tu código (de ahí su nombre) y que se escriben en el mismo lenguaje en el que estás desarrollando. A esta metodología de escribir los tests de tus funciones, se le conoce como TDD (Test Drive Development)

testing-infografía-EDteam.png

Luego están los tests de integración, que buscan que las diferentes ramas de código al fusionarse (al hacer merge), no generen conflictos. Estas pruebas pueden escribirse en cualquier lenguaje pero también pueden usarse herramientas de CI/CD dentro del ciclo de Devops. Puedes saber más en este video de EDteam o viendo nuestros cursos en EDteam.

Finalmente, se encuentran los tests end to end, que prueban el funcionamiento del sistema y no del código. Son pruebas desde el punto de vista del usuario y son responsabilidad del área de QA (control de calidad). En este caso, puesto que los profesionales de QA no suelen ser programadores, es interesante que muchos aprenden Python por lo sencillo que es y empiezan a automatizar sus pruebas con este lenguaje. Una de las herramientas más comunes es Selenium, que permite escribir pruebas en diferentes lenguajes.

En resumen, aunque Python es muy usado para automatización y pruebas, no existe un lenguaje principal ya que se pueden escribir pruebas en cualquier lenguaje.

Y si no lo sabías, #LoAprendisteEnEDteam, porque en español, nadie explica mejor que EDteam.

Comentarios de los usuarios