Fundamentos de computación
Lenguajes de programación
Cómo funcionan los lenguajes: compiladores e intérpretes, tipos, paradigmas. Entender las ideas detrás de los lenguajes te permite aprender uno nuevo rápido y elegir el adecuado para cada problema.
Temas
Historia
Historia de los lenguajes y los paradigmas, Diferencias entre paradigmas
Fundamentos de compiladores
Análisis léxico, Parsing, Análisis semántico, Optimización, Generación de código, Scope léxico, Intérpretes, Stack, Heap, Linker, Loader, Árbol sintáctico, Lenguaje intermedio, Chequeo de tipos, Tabla de símbolos, Tipado estático vs dinámico, Parse Trees, Tokens, Lexemas
Teoría de lenguajes
Máquinas de estados finitos, Determinismo/No determinismo, Autómatas de pila, Máquina de Turing, Alfabetos, Gramáticas libres de contexto, Valores, Literales, Expresiones vs sentencias, Variables, Tipos, Scoping
Expresiones regulares
Literales, Escaping, OR, Grupos, Clases de caracteres, Rangos, Negaciones, Punto, Boundary Matchers, Cuantificadores, Greedy, Grupos no capturantes, Back references, Lookahead, Lookbehind
Programación estructurada
Goto Considered Harmful, Secuencia, Selección e iteración
Programación orientada a objetos
Metáforas, Objetos, Responsabilidades, Mensajes, Interfaces / Protocolos, Colaboración / Colaboradores, Clases, Herencia, Abstracto/Concreto, Delegación, Polimorfismo, Encapsulamiento, Componentes, Métodos, Late/Dynamic Binding, Marshalling/Serialización, Closures, Lambdas, Bloques
Programación funcional
Inmutabilidad, Efectos secundarios, Funciones puras, Currying, Functors, Monads, Funciones de orden superior, Funciones parciales, Recursión, Reduce, Fold
Gestión de memoria
Reserva/liberación manual, Garbage Collection, Tracing, Conteo de referencias
Recursos
Video · 2 h 7 min
- Clean Architecture - A Craftsman's Guide to Software Structure and Design
Libro · Robert C. Martin, Prentice Hall, 2018 · Capítulos: Part II Intro, 3, 4, 5, 6 · 31 págs.
- The Imposter’s Handbook Season 1 2.2 - A CS Primer for Self-Taught Developers
Libro · Rob Conery, Big Machine Inc., 2016 · Capítulos: Machinery, Compilation, Functional Programming · 68 págs.
- Compilers - Principles, Techniques, and Tools
Libro · Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 2006 · Capítulos: 1, 2.0, 2.1, 2.2, 2.4.0 (intro), 2.6.0 (intro), 2.7.0 (intro), 3.1.0, 3.1.1, 3.1.2, 4.1.0, 4.1.1, 4.2.0, 4.2.1, 4.2.2 · 69 págs.
- Computer Science Distilled - Learn the Art of Solving Computational Problems
Libro · Wladston Ferreira Filho, Code Energy LLC, 2017 · Capítulos: 8 · 16 págs.
Video · 17 min
Video · 24 min
- Goto Considered Harmful
Artículo · 5 págs.
- Statement vs Expression
Artículo · 4 págs.
- Object Thinking
Libro · David West, Microsoft Press, 2004 · Capítulos: 1, 2, 3, 4, 5 · 150 págs.
- Clean Coders Episode 53: Introduction to Functional Programming
Video · 1 h 10 min
- Practical Object-Oriented Design in Ruby
Libro · Sandi Metz, Addison-Wesley, 2013 · Libro completo · 272 págs.
- Introduction to Automata Theory, Languages, and Computation
Libro · John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Prentice Hall, 2006