Autoeducación en la computadora
Un programa completamente gratuito para aprender el curso de informática por curso
Introducción a la informática (1-2 semanas)
- Descripción general de la informática
- Introducción a la programación
- Descripción general de algoritmos y estructuras de datos
- Organización y arquitectura de computadora básica
Recursos:
- Introducción a la informática de la Universidad de Harvard en EDX
- CodeCademy's Aprender a codificar el curso
Fundamentos de programación (4-6 semanas)
- Introducción al lenguaje de programación de Python
- Declaraciones de flujo de control
- Tipos y estructuras de datos
- Funciones y módulos
- Operaciones de entrada y salida
- Manejo de depuración y error
- Conceptos de programación orientados a objetos
Recursos:
- Python para todos por la Universidad de Michigan en Coursera
- Aprende Python The Hard Way de Zed Shaw
Estructuras de datos y algoritmos (12-16 semanas)
- Estructuras de datos básicas (matrices, listas vinculadas, pilas, colas)
- Estructuras de datos avanzadas (árboles, gráficos, tablas hash)
- Análisis y diseño de algoritmos
- Algoritmos de búsqueda y clasificación
- Recursión
- Programación dinámica
- Algoritmos codiciosos
- Algoritmos de división y conquistar
Recursos:
- Estructuras de datos y especialización de algoritmos por la Universidad de California, San Diego en Coursera
- Introducción a los algoritmos de MIT Press
Arquitectura y sistemas de computadora (8-12 semanas)
- Descripción general del hardware y software de la computadora
- Sistemas operativos
- Gestión de la memoria
- Sistemas de entrada/salida
- Redes informáticas
- Sistemas distribuidos
Recursos:
- Arquitectura de computadora de la Universidad de Princeton en Coursera
- Sistemas operativos: tres piezas fáciles de Remzi H. Arpaci-Dusseau y Andrea C. Arpaci-Dusseau
Sistemas de bases de datos (8-12 semanas)
- Introducción a las bases de datos
- Sistemas de bases de datos relacionales (SQL)
- Diseño de base de datos y normalización
- Consulta y manipulación de datos
- Administración de la base de datos
Recursos:
- Introducción a las bases de datos de la Universidad de Stanford en Coursera
- Sqlbolt (tutoriales SQL interactivos en línea)
Desarrollo web (8-12 semanas)
- Desarrollo delantero (HTML, CSS, JavaScript)
- Desarrollo de back-end (marcos web, programación del lado del servidor)
- Integración de la base de datos (SQL, ORM)
- Seguridad y autenticación
Recursos:
- El proyecto Odin (plan de estudios de desarrollo web completo de Stack)
- FreecodeCamp (plan de estudios de desarrollo web gratuito)
Ingeniería de software (8-12 semanas)
- Ciclo de vida del desarrollo de software
- Gestión de proyectos de software
- Ingeniería de requisitos
- Pruebas y garantía de calidad
- Mantenimiento y evolución del software
Recursos:
- Software Engineering Essentials por la Universidad de Colorado Boulder en Coursera
- El mítico hombre de hombre de Frederick P. Brooks Jr.
Inteligencia artificial y aprendizaje automático
- Descripción general de la inteligencia artificial y el aprendizaje automático
- Algoritmos de aprendizaje supervisados (regresión lineal, regresión logística, árboles de decisión, máquinas de vectores de soporte, vecinos más nears, bayes ingenuos) (4-6 semanas)
- Algoritmos de aprendizaje no supervisados (agrupación, reducción de dimensionalidad) (4-6 semanas)
- Aprendizaje de refuerzo
- Redes neuronales y aprendizaje profundo (4-6 semanas)
- Procesamiento del lenguaje natural
- Visión por computadora
Recursos:
- Aprendizaje automático de Andrew Ng en Coursera
- Aprendizaje profundo de Yoshua Bengio, Ian Goodfellow y Aaron Courville
Gráficos y visualización de la computadora (8-12 semanas)
- Tuberías gráficas
- Transformaciones geométricas
- Primitivas gráficas 2D y 3D
- Técnicas de representación (trazado de rayos, rasterización)
- Animación y simulación
- Técnicas de visualización
Recursos:
- Gráficos de computadora de la Universidad de Tokio en EDX
- Renderización en tiempo real de Tomas Akenine-Möller, Eric Haines y Naty Hoffman
Interacción humana-computadora (8-12 semanas)
- Principios del diseño de la interfaz de usuario
- Procesos de diseño centrados en el usuario
- Prueba de usabilidad y evaluación
- Diseño de interacción
- Visualización de información
- Accesibilidad
Recursos:
- Interacción humana-computadora por la Universidad de California San Diego en Coursera
- No me hagas pensar de Steve Krug
Ciberseguridad (8-12 semanas)
- Seguridad de la red
- Criptografía
- Autenticación y control de acceso
- Análisis y detección de malware
- Evaluación y gestión de riesgos de seguridad
Recursos:
- Introducción a la ciberseguridad por la Escuela de Ingeniería Tandon de la Universidad de Nueva York en EDX
- Ingeniería de seguridad por Ross J. Anderson
Herramientas de desarrollo de software (4-6 semanas)
- Sistemas de control de versiones (GIT)
- Entornos de desarrollo integrados (IDES)
- Herramientas de depuración y perfil
- Automatización de compilación e integración continua (Jenkins)
Recursos:
- Manual de Git de Github
- Tutorial de Eclipse IDE de Vogella
Matemáticas para Ciencias de la Computación (8-12 semanas)
- Matemáticas discretas
- Álgebra lineal
- Probabilidad y estadísticas
- Cálculo
- Teoría de números
Recursos:
- Matemáticas para Ciencias de la Computación por el Instituto de Tecnología de Massachusetts en MIT OpenCourseware
- Álgebra lineal de Gilbert Strang en MIT OpenCourseWare
Ética y sociedad en informática (8-12 semanas)
- Problemas éticos en la computación
- Implicaciones sociales y políticas de la informática
- Problemas de privacidad y seguridad
- Propiedad intelectual y derechos de autor
- Impacto global de la informática
Recursos:
- Computación y sociedad de la Universidad de Harvard en EDX
- El código: Silicon Valley y The Remaking of America por Margaret O'Mara
Espero que esto sea beneficioso para todos los lectores tanto como también ha sido beneficioso para mí. Tenga en cuenta que todos los momentos estimados para terminar estos cursos se basan en tener un trabajo a tiempo completo mientras estudian.