En la Parte 1 viste qué significa desarrollar software y por qué ver tutoriales sin construir no genera aprendizaje real. Ahora toca resolver la pregunta natural: ¿construir qué, y sobre qué bases?
El desarrollo de software no es un solo camino, es un mapa de áreas distintas. Elegir sin conocer el mapa es como escoger una carrera universitaria solo por cómo suena el nombre.
Las grandes áreas del desarrollo
-
Desarrollo web — frontend Todo lo que el usuario ve y toca en el navegador: botones, formularios, animaciones. Herramientas centrales: HTML, CSS, JavaScript, y frameworks como React o Vue. El día a día se parece a construir interfaces, ajustar detalles visuales y conectar esa interfaz con datos que vienen de un servidor.
-
Desarrollo web — backend La lógica que no ve el usuario: procesar pedidos, guardar información en una base de datos, decidir quién puede acceder a qué. Lenguajes típicos: Python, Node.js, Java, Go. El día a día se parece más a diseñar cómo se comunican las piezas del sistema entre sí que a diseñar pantallas.
-
Desarrollo móvil Apps para iOS/Android, ya sea nativo (Swift para iOS, Kotlin para Android) o multiplataforma (React Native, Flutter). Comparte lógica con el frontend web, pero con restricciones distintas: batería, tamaño de pantalla, funcionamiento sin conexión.
-
Ciencia de datos e inteligencia artificial Modelos, análisis de datos, machine learning. Dominado por Python y librerías como NumPy, pandas o PyTorch. El trabajo se parece más a experimentar y medir resultados que a construir una interfaz o un sistema fijo — aquí el código es una herramienta para responder preguntas sobre datos.
-
Videojuegos Motores como Unity o Unreal, con C# o C++. Combina programación con física, matemáticas aplicadas y diseño de experiencia de usuario en tiempo real.
-
Sistemas embebidos / bajo nivel Firmware, hardware, controladores. C y C++ dominan aquí. El margen de error es más estrecho porque el código corre directo sobre el hardware, sin las capas de protección que tienen otras áreas.
-
DevOps / infraestructura Automatizar cómo se construyen, prueban y despliegan las aplicaciones de las demás áreas. Menos código de aplicación, más scripts, configuración de servidores y automatización.
Algo importante: esto no son cajas cerradas. Un backend developer puede terminar trabajando en IA; un frontend developer puede terminar en móvil. Elegir un área no es una sentencia de por vida — es un punto de partida.
Qué conocimientos son realmente fundamentales
Aquí está el punto que más importa de este post: sin importar cuál área elijas de la lista anterior, hay una base común que necesitas primero. No son “temas más”, son la razón por la que después todo lo demás tiene sentido.
Lógica de programación — variables, condicionales, bucles, funciones. Es universal: se ve igual en Python, JavaScript o C++, solo cambia la sintaxis con la que se escribe. Si entiendes la lógica en un lenguaje, cambiar a otro lenguaje después es cuestión de semanas, no de empezar de cero.
Estructuras de datos básicas — listas, diccionarios/mapas, y cómo organizar información. Esto no es “otro tema para memorizar”: es lo que decide si tu programa es rápido y ordenado o lento y confuso a medida que crece. Un programa que guarda mil usuarios en la estructura equivocada puede tardar segundos en algo que debería tardar milisegundos.
Cómo funciona una computadora a nivel general — qué es la memoria, qué hace el procesador, qué significa “ejecutar” un programa. No necesitas ser experto en arquitectura de computadoras, pero sin esta intuición básica, errores como quedarte sin memoria o programas que se congelan te van a parecer magia en lugar de algo explicable.
Control de versiones (Git) — no es opcional en ninguna área. Es la herramienta que te permite guardar el historial de cambios de tu código y volver atrás si algo se rompe, o trabajar en equipo sin que dos personas se sobrescriban el trabajo. Sin Git, perder horas de trabajo por un error no es una posibilidad remota, es cuestión de tiempo.
Resolución de problemas — la habilidad de descomponer un problema grande en partes pequeñas y resolubles. Esta es, honestamente, la habilidad que más distingue a un desarrollador experimentado de uno principiante — más que cualquier lenguaje o framework.
Leer documentación — la habilidad más subestimada de todas. Los buenos desarrolladores no memorizan cada función de cada librería; saben dónde buscar y cómo entender lo que encuentran. Esta habilidad es la que te hace independiente de los tutoriales.
Esta base es la razón por la que “qué lenguaje aprendo primero” sigue siendo la pregunta equivocada. El lenguaje es solo la sintaxis con la que expresas estos fundamentos — y una vez los tienes, aprender un segundo o tercer lenguaje es mucho más rápido que el primero.
Cómo elegir tu área sin comprometerte para siempre
No necesitas decidir tu especialidad antes de empezar. Necesitas:
Aprender los fundamentos anteriores con un solo lenguaje — no importa demasiado cuál. (aunque en mí opinión personal, Python es ideal) Construir 2-3 proyectos pequeños en áreas distintas: una página web simple, un script de automatización, una app básica de consola. Notar en cuál disfrutaste más el proceso, no solo el resultado final.
Esa señal — qué proceso disfrutaste, no qué proyecto se ve mejor en una foto — es la que debería guiar tu especialización.
Qué sigue
Ya sabes qué áreas existen y qué fundamentos son comunes a todas. En la Parte 3 vamos a resolver lo más práctico de toda la serie: qué herramientas instalar y aprender primero, y cómo construir un plan de estudio real, en orden, que no te haga abandonar a los tres meses.