Ir al contenido principal

Aprender programación en C/C++ desde 0 [Libros]

Hace cosa de un año empece por cuenta propia a estudiar el funcionamiento de las computadoras desde una perspectiva mas técnica, un intento de conectar los conceptos de hardware a software, en el trayecto es inevitable chocarse con los fundamentos mas rudimentarios como el lenguaje de maquina (los famosos 1 y 0 al estilo puro), una manera de darle instrucciones a un CPU para que haga algo, luego el lenguaje ensamblador, una abstracción del lenguaje de maquina para facilitar la comunicación (asm), subiendo unos peldaños cruzarse con uno de los mas famosos el lenguajes de nivel medio-alto que llevo de la mano a UNIX en el surgimiento de los Sistemas operativos, hablamos de el lenguaje de programación C y su potenciado C++, ambos muy populares a pesar de sus aproximados 50 años, un lenguaje propicio para el estudio de la computación y el diseño de software de propósito general, un lenguaje muy eficiente y portado para casi cualquier sistema operativo conocido.



Así que les dejo un conjunto de manuales para aprender programación en C/C++ desde 0 que vengo consultando esporádicamente y que me han servido muchísimo, los cuales recomiendo por lo completo e introductorios que son.



Antes de pasar a los manuales, quiero comenzar separando las diferencias entre C y C++ por si las moscas.

Lenguaje de programación C:      Es un lenguaje de programación originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,

Lenguaje de programacion C++: Es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Las ventajas y desventajas entre C y C++ pueden verlas en el siguiente articulo mas a fondo: https://www.americati.com/doc/ventajas_c/ventajas_c.html

Comúnmente se aprende primero C y luego se da el salto a C++, que es el método que sugiero, el primero libro se encarga de hacer eso, el segundo sirve para estudiar precisamente C y no C++, luego el ultimo manual citado que se divide en 2 volumenes "Pensar en C++" toma al programador en C y lo traslada a C++, una lectura muy importante y recomendadisima ya que ademas de aprender las diferencias entre los dos lenguajes hace una introduccion detallada a la Programación orientada a objetos y los patrones de diseños.

Vamos a los links...

1)Como Programar en C/C++  (y Java) - Deitel-Deitel




Contenido sobre C/C++:
  1. Introducción a las computadoras, a Internet y a la World Wide Web
  2. Introducción a la programación en C
  3. Desarrollo de programas estructurados en C
  4. Control de programas en C
  5. Funciones en C
  6. Arreglos en C
  7. Apuntadores en C
  8. Caracteres y cadenas en C
  9. Entrada/Salida con formato en C
  10. Estructuras, uniones, manipulaciones de bits y enumeraciones en C
  11. Procesamiento de archivos en C
  12. Estructuras de datos en C
  13. El preprocesador de C
  14. Otros temas de C
  15. C++ como un “Mejor C”
  16. Clases y abstracción de datos en C++
  17. Clases en C++: Parte II
  18. Sobrecarga de operadores en C++
  19. Herencia en C++
  20. Funciones virtuales y polimorfismo en C++
  21. Entrada/salida de flujo en C++
  22. Plantillas en C++
  23. Manejo de excepciones en C++
Este libro lo recomiendo por ser muy didáctico y llevadero, abarca desde la introducción a las computadoras hasta lo mas profundo del lenguaje, siendo cómodamente transitivo a la hora de pasar de aprender C a C++, los temas están debidamente ordenados, detallados y al final de cada capitulo, contamos con varios ejercicios para resolver, desde analizar los errores de un código hasta completarlo o realizarlo en base a una consigna, también se frecuentan los tips para prevenir errores comunes o sugerencias de ingeniería en software, este es un libro para todos.
De paso también dejo otra edición pero dedicada para aprender C++, si bien tiene todo lo que contiene la otra, esta de alguna manera expande algunas cosas, ideal para darle un vistazo si queres comenzar directamente por C++.

2)El Lenguage C  Kernighan-Ritchie


Contenido:
  • Capítulo 1. Introducción General
  • Capítulo 2. Tipos Operadores y Expresiones
  • Capítulo 3. Control de Flujo
  • Capítulo 4. Funciones y la Estructura del Programa
  • Capítulo 5. Apuntadores y Arreglos
  • Capítulo 6. Estructuras
  • Capítulo 7. Entrada y salida
  • Capítulo 8. La Interface del Sistema UNIX
  • Apéndice A. Manual de referencia
  • Apéndice B. Biblioteca estándar
  • Apéndice C. Resumen de modificaciones
Esta es la biblia de programación en C y seguramente la influencia de los tantos libros que existen sobre C, es un libro que requiere previamente conocimiento básicos sobre conceptos de programación y ayuda a entender el lenguaje desde una perspectiva técnica con una introducción general.
Este manual fue realizado por el mismo creador del lenguaje C (Ritchie) y un colaborador(Kernighan).

3)Pensar en C++


Abarca una introducción al paradigma de Programación Orientada a Objetos con C++ tratando de ser lo mas precisa y completa posible, compuesta de dos volúmenes para tener un concepto mas general no solo sobre el lenguaje de programación desde 0 si no también sobre patrones de diseños, creación y manejo de proyectos citando metodologías, puntos de vistas y más.
Aunque mencione que puede que el libro trata el lenguaje C++ desde 0 no es del todo cierto, recomendaría tener una visión ya un poco distendida sobre programación antes de embarcarse en este libro.

Contenido general (volumen 1 y omito el 2)
1. Introducción a los Objetos
2. Construir y usar objetos
3. C en C++
4. Abstracción de Datos
5. Ocultar la implementación
6. Inicialización y limpieza
7. Sobrecarga de funciones y argumentos por defecto
8. Constantes
9. Funciones inline
10. Control de nombres
11. Las referencias y el constructor de copia
12. Sobrecarga de operadores
13. Creación dinámica de objetos
14. Herencia y Composición
15. Polimorfismo y Funciones virtuales
16. Introducción a las Plantillas
A. Estilo de codificación
B. Directrices de Programación
C. Lecturas recomendadas



Link con ambos manuales[Actualizado 20 jul 2018][25.8MB]:https://mega.nz/#!ht43UIRY!awaEO3uyQNh0wKsuEna4UcfhKJXLBU-ezKhjFBKbrs0
Visualizador de PDF que recomiendo: http://www.pdflite.com/


Espero que les sirvan y no aflojen que la practica hace al maestro! 😉😉😉Saludos! 😃😃😃😃


Autores del manual "EL Lenguaje C" 1985 tambien conocido como "El C estilo K&R"


Ken Thompson, creador del lenguaje B junto a Dennis Ritchie quien se le atribuye la creación de el lenguaje C
 (si, hubo un B antes de C), ambos sujetos inventores de UNIX junto a su estándar POSIX.
Bjarne Stroustrup, el creador del lenguaje C++



Be a pointer my friend!