Este libro corresponde a un curso de programación genérica yabstracción. Se desarrolla en el contexto del lenguaje C++, suponiendo que se tienen conocimientos básicos de creación de clases en C++98,sin incluir herencia o polimorfismo. El desarrollo gradual permite irintroduciendo conceptos avanzados de C++14, terminando con un nivel de programación que alcanza conceptos de metaprogramación. Loscontenidos abarcan temas que incluyen el encapsulamiento con clases,la generalización con plantillas, la abstracción por iteración, losalgoritmos genéricos y la STL. En el estudio de la biblioteca estándar se incluye una discusión razonada sobre los contenedores,relacionando las estructuras de datos con la interfaz de uso. Seestudian los algoritmos genéricos, así como los distintos objetosllamables que pueden usarse en ellos, sin olvidar las últimasaportaciones en la definición de funciones, objetos función y objetoslambda. El enfoque de la exposición está orientado a la docencia y elestudio autodidacta, junto con las discusiones aparecen ejerciciospropuestos y resueltos. El objetivo final es que el estudiante seacapaz de entender el porqué, evitando entrar en revisiones exhaustivas del lenguaje que pueden ser fácilmente consultadas en lasreferencias. Como consecuencia, al estudiante le será más fácil leer y entender libros avanzados de programación y metaprogramación sobre el último estándar de C++.