🧠 Fundamentos de Ciencias de la Computación
Algoritmos, sistemas, redes, bases de datos y sistemas distribuidos. La base de todo ingeniero profesional.
Fundamentos de Ciencias de la Computación
Antes de «hacer backend» hay que entender qué es una computadora, cómo se ejecuta el código, y cómo razonar sobre algoritmos y sistemas. Estos fundamentos son el diferenciador entre quien copia tutoriales y quien resuelve problemas que nadie ha resuelto antes.
Esta sección incluye el contenido completo escrito en el sitio (teoría + código + práctica) para cada tema. Léelo en orden: 💻 Programación → 📦 Estructuras de datos → ⏱️ Algoritmos → 🖥️ Cómo funciona una computadora → ⚙️ Sistemas operativos → 📡 Redes → 🗄️ Bases de datos → 🌐 Sistemas distribuidos → 🌿 Git. Debajo tienes los recursos de todo el mundo para profundizar cada tema.
📖 El contenido, tema a tema
Lenguajes, tipos, variables, control de flujo, funciones, recursión y terminología. Con C y Python.
Arrays, listas, pilas, colas, hash tables, árboles, heaps y grafos. Cuándo usar cada una.
Big-O, búsqueda, ordenamiento, divide y vencerás, DP, greedy y algoritmos sobre grafos.
Bits, CPU, ciclo de ejecución, ensamblador, jerarquía de memoria y compilación.
Procesos, threads, planificación, memoria virtual, concurrencia, locks y filesystems.
Modelo de capas, TCP/IP, UDP, HTTP, DNS, sockets y diagnóstico. Viaje del paquete.
SQL, relaciones, normalización, índices, transacciones y ACID. Tipos de bases de datos.
CAP, fallos, replicación, particionado, consistencia, consenso (Raft) y relojes.
El modelo de grafo, el flujo diario, merge/rebase, remotes, reflog y el open source real.
🎯 La ruta en una frase
CS50x para arrancar → Teach Yourself CS como mapa → CSAPP para sistemas → SICP para cambiar tu forma de pensar → CLRS/Skiena para algoritmos → OSTEP para sistemas operativos → Kurose/Ross + Beej para redes → CMU 15-445 + Red Book para bases de datos → MIT 6.5840 + DDIA para distribuidos.
Nivel 0 · Programación y base
Aprender a programar de verdad
La puerta de entrada. Si ya programas, salta directo a CSAPP.
- CS50x — Harvard🎓 CursoENGratisEl curso de introducción más famoso del mundo. Incluye C, memoria, punteros y estructuras de datos. Subtítulos en español disponibles.C, memoria, punteros, arrays, algoritmos, estructuras de datos, fundamentos de web.
- Teach Yourself CS🧭 GuíaENGratisEl currículo integrador de referencia: qué estudiar y en qué orden, con lo esencial de cada tema. Traducción al español en GitHub.Hoja de ruta completa de CS autodidacta.
- Structure and Interpretation of Computer Programs (SICP)📖 LibroENGratisEl libro que «te cambia el modelo mental». El clásico del MIT sobre abstracción, funciones de orden superior y construcción de lenguajes.Abstracción, metalingüística, programación como forma de pensar.
- Composing Programs📖 LibroENGratisSICP reescrito en Python: la misma profundidad con una sintaxis más accesible.Los conceptos de SICP en Python moderno.
Nivel 0 · Algoritmos y estructuras de datos
Algoritmos
La base para razonar sobre eficiencia: big-O, árboles, grafos, programación dinámica.
- Introduction to Algorithms (CLRS)📖 LibroENPagoLa biblia teórica de algoritmos. Úsala de referencia por tema, no de principio a fin.Complejidad, ordenamientos, grafos, DP, flujos, teoría.
- The Algorithm Design Manual (Skiena)📖 LibroENPagoMejor para autoaprendizaje que CLRS: orientado a resolver problemas reales. Incluye videos gratuitos del autor.Diseño de algoritmos aplicado, con librería de problemas tipo.
- MIT 6.006 — Introduction to Algorithms🎓 CursoENGratisCurso de MIT (Demaine) completo y gratuito con videos y exámenes.Recurrencias, ordenamiento, estructuras de datos, grafos, DP, NP-completitud.
- CP-Algorithms🗃️ WikiENGratisEnciclopedia de algoritmos competitivos, muy actualizada y con traducciones (incluida al español y chino).Algoritmos y estructuras de datos avanzados con implementaciones.
- Competitive Programmer's Handbook (Laaksonen)📖 LibroENGratisPDF gratuito del libro finlandés de referencia para programación competitiva. Español disponible.De la técnica básica a técnicas avanzadas de CP.
- CSES Problem Set🧪 LabENGratisEl banco de problemas oficial para practicar lo que estudias en algoritmos, con juez automático.300+ problemas graduados por dificultad.
Nivel 0 · Sistemas y arquitectura
Cómo funciona una computadora
El curso clave: de los bits a la ejecución de programas.
- Computer Systems: A Programmer's Perspective (CSAPP)📖 LibroENPagoLA biblia de sistemas. La lee todo el mundo en CMU y es obligatoria en el camino a nivel élite. Traducción al chino muy difundida.Representación de datos, ensamblador, memoria, concurrencia, redes, optimización.
- CSAPP Labs🧪 LabENGratisData Lab, Bomb Lab, Attack Lab, Shell Lab, Malloc Lab, Proxy Lab. El rito de paso de sistemas.Práctica real de cada tema del libro.
- CMU 15-213 — Intro to Computer Systems🎓 CursoENGratisEl curso oficial del CSAPP, con videos en YouTube.Todo el CSAPP en formato curso.
- Nand to Tetris🎓 CursoENGratisConstruye una computadora completa desde una puerta NAND: hardware, ensamblador, compilador y SO mínimo.Arquitectura de computadores desde cero.
- Computer Organization and Design (Patterson/Hennessy)📖 LibroENPagoEl texto clásico de arquitectura (RISC-V en las ediciones recientes).ISA, pipelining, jerarquía de memoria, multiprocesadores.
Nivel 1 · Sistemas operativos
Sistemas operativos
Procesos, threads, memoria virtual, planificación, sistemas de archivos.
- Operating Systems: Three Easy Pieces (OSTEP)📖 LibroENGratisEl libro moderno de SO, gratis en PDF. De los autores de la Universidad de Wisconsin. Capítulos nuevos de seguridad incluidos.Virtualización, concurrencia, persistencia, seguridad.
- MIT 6.S081 — Operating System Engineering (xv6)🎓 CursoENGratisConstruyes y modificas un kernel real (xv6, RISC-V). Con traducciones y apuntes en chino muy populares.Labs sobre kernel real: syscalls, páginas, traps, COW, threads, filesystem.
- OSTEP Projects🧪 LabENGratisProyectos de sistemas del propio OSTEP: shell, scheduler, file server, web server.Construcción de sistemas desde cero.
- Berkeley CS162 — Operating Systems🎓 CursoENGratisLa alternativa de Berkeley, con buen balance teoría/práctica.Sistemas operativos a nivel universitario.
Nivel 1 · Redes
Redes de computadores
Cómo viajan los datos por internet: capas, TCP/IP, HTTP, DNS.
- Computer Networking: A Top-Down Approach (Kurose/Ross)📖 LibroENPagoEl libro de redes más usado en universidades. El sitio companion incluye labs de Wireshark y quizzes gratis.Aplicación, transporte, red, enlace; TCP, UDP, IP, HTTP, DNS.
- Beej's Guide to Network Programming🧭 GuíaENGratisLa guía de sockets en C. Directa, práctica, con traducción al español y francés.Sockets, bind, listen, accept, HTTP por debajo del capó.
- Stanford CS144 — Intro to Networking🎓 CursoENGratisImplementas una pila TCP mínima en C++.Práctica real de protocolos de red.
- Wireshark Labs🧪 LabENGratisAprende a inspeccionar tráfico real y verificar la teoría.Análisis de paquetes con Wireshark.
Nivel 1 · Bases de datos
Bases de datos
SQL, índices, transacciones, y cómo funciona un motor por dentro.
- CMU 15-445 — Intro to Database Systems🎓 CursoENGratisEl curso de bases de datos de Andy Pavlo (CMU). Construyes un DBMS real (BusTub). Videos gratis en YouTube.Storage, índices, B+Tree, hashing, transacciones, recovery, concurrencia.
- Readings in Database Systems (Red Book)📖 LibroENGratisLa lectura obligatoria para entender la investigación en bases de datos. Gratis.Papers y fundamentos de sistemas de datos.
- Berkeley CS186🎓 CursoENGratisIntroducción más suave que 15-445, con proyectos de SQL.Fundamentos de bases de datos relacionales.
- Architecture of a Database System📄 PaperENGratisEl paper-fundación que explica las partes de un DBMS. Escrito por Hellerstein, Stonebraker y Hamilton.Componentes internos de un motor de base de datos.
Nivel 2 · Sistemas distribuidos
Sistemas distribuidos
Consenso, replicación, particionado, fallos. El nivel de ingeniero senior.
- MIT 6.5840 / 6.824 — Distributed Systems🎓 CursoENGratisEl curso graduado de MIT. Labs de MapReduce, Raft y KV service en Go. La mejor formación hands-on en distribuidos.Consenso, replicación, fallos, sistemas reales.
- Distributed Systems (van Steen & Tanenbaum, 3rd ed.)📖 LibroENGratisLibro universitario completo y gratis en PDF. Teoría formal de sistemas distribuidos.Ordenamiento, consistencia, replicación, fallos, seguridad.
- Papers We Love💬 ComunidadENGratisLa comunidad global para leer papers de sistemas en grupo. Videos de charlas excelentes.Papers fundacionales de CS explicados en comunidad.
- Designing Data-Intensive Applications📖 LibroENPagoEl libro #1 de sistemas de datos modernos. También está en la ruta de System Design, pero encaja aquí como fundamento.Replicación, particionado, transacciones, batch y stream.
Programa primero (CS50/SICP), luego sistemas (CSAPP) y algoritmos, después SO (OSTEP), redes, y por último bases de datos y distribuidos. No hace falta terminar cada libro: haz los labs, que es donde se aprende de verdad.