De la programación a la ingeniería de software
De aprender a programar a escribir código profesional, con un camino académico opcional hacia estructuras de datos y algoritmos.
- Punto de partida
- Principiante
- Objetivo final
- Escribir código mantenible, aplicar patrones de diseño y, si sigues el camino académico, razonar sobre estructuras de datos y algoritmos
- Tiempo estimado
- ≈ 87–197 h (pasos principales)
- Libros
- 4 principales + 3 opcionales
Cómo está pensada esta ruta
La ruta principal asume que aprendes programando: primero un manual de curso (en C++), después dos libros sobre oficio (legibilidad y hábitos profesionales) y, cuando ya llevas años programando en objetos, los patrones de diseño. El camino académico (estructuras de datos en Java y algoritmos) es una rama aparte, y el libro de proceso es opcional. Si ya sabes programar, salta al paso 2.
-
Paso 1 ≈ 40–95 h
Cómo programar en C++
Deitel, Harvey, Deitel, Paul · Principiante · 1100 págs.
- Objetivo de este paso
- Aprender a programar desde cero, hasta orientación a objetos
- Por qué ahora
- Es un manual de curso para quien no ha programado. Es muy extenso: se estudia por capítulos, no de corrido. Los ejemplos son en C++.
- Resultado
- Escribirás programas con estructuras de control, funciones y clases.
-
Paso 2 ≈ 18–39 h
Código limpio
Robert C. Martin (Uncle Bob) · Todos los niveles · 464 págs.
- Objetivo de este paso
- Escribir código que otros puedan leer
- Por qué ahora
- Requiere haber escrito programas y leer Java. Va antes de los patrones porque mejora tu código a cualquier escala.
- Resultado
- Elegirás nombres y dividirás funciones con criterio y sabrás refactorizar paso a paso.
-
Paso 3 ≈ 14–30 h
El programador pragmático
David Thomas & Andrew Hunt · Todos los niveles · 352 págs.
- Objetivo de este paso
- Adoptar hábitos profesionales: estimar, probar, usar control de versiones
- Por qué ahora
- Se lee por consejos breves y complementa la legibilidad con actitud y método de trabajo.
- Resultado
- Tendrás un repertorio de prácticas para tu trabajo diario, independientes del lenguaje.
-
Paso 4 ≈ 15–33 h
Patrones de diseño (Gang of Four)
Erich Gamma & otros · Todos los niveles · 395 págs.
- Objetivo de este paso
- Reconocer y aplicar patrones de diseño orientado a objetos
- Por qué ahora
- La ficha pide al menos dos años de experiencia en programación orientada a objetos; por eso va aquí.
- Resultado
- Usarás el vocabulario de patrones para diseñar y discutir soluciones.
-
Paso 5 Camino académico ≈ 26–55 h
Estructura de datos en Java
Weiss, Mark Allen · Intermedio · 650 págs.
- Objetivo de este paso
- Dominar las estructuras de datos fundamentales con implementaciones
- Por qué ahora
- Requiere experiencia previa en Java. Combina teoría e implementación de forma más directa que un texto formal.
- Resultado
- Implementarás y analizarás listas, árboles, montículos, tablas hash y grafos.
-
Paso 6 Camino académico Obra de consulta
Introduction to Algorithms (CLRS)
Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford · Avanzado · 1320 págs.
- Objetivo de este paso
- Razonar con rigor sobre algoritmos y su complejidad
- Por qué ahora
- Es el texto de referencia, con demostraciones completas. Exige base matemática.
- Resultado
- Aplicarás técnicas de diseño de algoritmos y analizarás su coste con demostraciones.
-
Paso 7 Opcional ≈ 40–85 h
Ingeniería del Software: un enfoque práctico
Pressman, Roger S., Maxim, Bruce R. · Intermedio · 1000 págs.
- Objetivo de este paso
- Entender el proceso completo de un proyecto de software
- Por qué ahora
- Útil si vas a coordinar proyectos o cursas ingeniería del software; no ayuda a programar mejor.
- Resultado
- Conocerás el ciclo de vida del software, las metodologías ágiles y los procesos tradicionales.
Las rutas las diseña la redacción a partir de nivel, prerrequisitos y objetivos de cada libro; no dependen de enlaces de afiliación. Los tiempos son estimaciones a partir del nº de páginas. Consulta la metodología. Revisada el 2026-09-30.