¿Cuáles son los mejores libros de C ++?

En mi experiencia, un solo libro no es suficiente para aprender C ++. Aprender un lenguaje de programación es muy parecido a aprender un lenguaje natural. Cuando aprende un lenguaje natural: aprende los alfabetos, las palabras, aprende a construir líneas simples, luego líneas complejas y luego puede organizar sus pensamientos y expresarlos en forma de ensayo. Del mismo modo, aprender un lenguaje de programación requiere que aprenda las diferentes palabras clave, tipos de datos, aprenda a construir programas simples, luego programas complejos y poder organizar sus ideas y expresarlas en forma de una aplicación. Todas estas etapas diferentes requieren cierta cantidad de ayuda y diferentes libros ayudan con diferentes cosas.

  • Si es un principiante y tiene muy poca experiencia en programación, debe comenzar con C ++ Primer. Esto le enseña el ABC de C ++ y le brinda una comprensión de los conceptos básicos que necesitará para escribir un programa simple en C ++.
  • El siguiente libro para leer es Pensar en C ++. En el libro, aprenderá los diversos matices con la biblioteca estándar y está llena de consejos de “esto es lo que debería estar buscando”.
  • Ahora, una palabra de moda que seguirá escuchando es “Programación Orientada a Objetos”. Pero tenga en cuenta que la programación orientada a objetos no es lo mismo que C ++. La programación orientada a objetos es un paradigma / estilo de programación y no está vinculada a ningún lenguaje en particular. Muchos idiomas diferentes admiten este paradigma o estilo. C ++ es un lenguaje de soporte multi-paradigmático. Sin embargo, el estilo más predeterminado en el que la mayoría de las personas generalmente escribe código C ++ está orientado a objetos. Para ese fin, un muy buen libro para aprovechar es la Programación Orientada a Objetos en C ++. Está lleno de muchos códigos de ejemplo que puede intentar comprender y aprender.
  • Sin embargo, solo poder escribir un programa C ++ razonablemente bueno no es suficiente. Uno necesita poder escribir un buen programa C ++. C ++ efectivo: 55 formas específicas de mejorar sus programas y diseños hace un buen trabajo en esto y uno puede llevarlo más lejos con C ++ excepcional: 47 acertijos de ingeniería, problemas de programación y soluciones.
  • Ahora, hay algunas técnicas avanzadas y patrones de diseño que son muy útiles para conocer. Recomendaría leer Modern C ++ Design: programación genérica y patrones de diseño aplicados.
  • Una vez que pase por lo anterior, debe estar en una buena posición. Ahora, lo que necesita es un libro de referencia sólido al que pueda volver cuando necesite descubrir algunas cosas. Para eso, necesita tener el lenguaje de programación C ++, 4a edición.

Esto es un poco desalentador, lo sé, pero no tienes que aprender todo de una sola vez (dudo que alguien pueda). Tómelo con calma y retome y aprenda lo que quiera aprender y el resto puede esperar. Siempre puedes regresar y aprender lo que dejaste fuera.

Suponiendo que ya sabes programar, te recomiendo Accelerated C ++ de Andrew Koenig y Barbara E. Moo. Cubre C ++ a fondo, con un enfoque basado en ejemplos, pero sin cruft extraño.

Si tiene poca o ninguna experiencia en programación, le recomiendo C ++ Primer de Stanley B. Lippman, Josée Lajoie y Barbara E. Moo. A diferencia de C ++ acelerado , supone muy poco sobre el lector y, por lo tanto, cubre muchos más aspectos básicos de una manera más lenta y metódica. En consecuencia, es 3 veces el tamaño.

Solo necesitas uno.

Como segundo libro, debes leer Effective C ++ de Scott Meyers. El trabajo altamente respetado de Meyer le enseña las mejores prácticas en un estilo accesible.

Mucha suerte en tu aprendizaje.

Un recorrido por C ++ es una descripción general rápida (aproximadamente 180 páginas) de todos los C ++ estándar (lenguaje y biblioteca estándar) a un nivel moderadamente alto para las personas que ya conocen C ++ o al menos son programadores experimentados.


El lenguaje de programación C ++ (cuarta edición), también conocido como TC ++ PL4, es una versión completamente reescrita y reorganizada de TC ++ PL3. Describe la revisión de C ++ 11 de ISO C ++. En particular, TC ++ PL4 refleja el aumento masivo de la biblioteca estándar y el soporte para la concurrencia.

TC ++ PL4 tiene como objetivo completar la descripción de las características del lenguaje C ++, los componentes estándar de la biblioteca y las técnicas de programación y diseño que admiten. Ver el prefacio .

Los ejercicios se han extendido, pero se colocan en la web para guardar árboles y permitir la expansión.

La discusión sobre problemas de ingeniería de software que se encuentra en TC ++ PL3 se ha reducido por falta de espacio. Todavía recomiendo la discusión en TC ++ PL3.


Programación: principios y práctica con C ++ . es una introducción a la programación para personas que nunca antes han programado. También será útil para las personas que han programado un poco y desean mejorar su estilo y técnica. Está diseñado para uso en el aula, pero escrito con un ojo en el autoaprendizaje. Los borradores se han utilizado como base para las primeras clases de programación en la Texas A&M University (y en otros lugares) desde hace varios años. No está relacionado con las ediciones del lenguaje de programación C ++ .

Si desea saber cuál es el conjunto de libros más pequeño que cubre de manera legible todo lo que necesita saber sobre C ++ para ser productivo, aquí está mi lista:

1. C ++ acelerado – Koenig. Si necesita una introducción rápida y completa)

2. C ++ efectivo (3 / e) – Meyers. Todavía no se ha actualizado para C ++ 11, pero sigue siendo el verdadero recurso para comprender cómo funciona C ++.

3. STL efectivo – Meyers. El libro para entender los matices de STL.

4. Conocimiento común de C ++: Stephen Dewhurst. No sé cómo es que este libro no se menciona con más frecuencia. Este es un libro brillante.

5. Biblioteca estándar de C ++: Tutorial y guía de referencia (2 / e) – Josuttis. Segunda edición: cubre C ++ 11 muy bien. Una buena referencia

6. Estándares de codificación C ++: 101 formas … – Alexandrescu y Sutter. Un libro muy útil en la tradición del conocimiento común eficaz de C ++ / C ++.

7. Un recorrido por C ++ – Stroustrup. Un libro breve y conciso que no te puedes perder. Este es el mejor trabajo de Stroustrup en mi opinión. Cubre C ++ 11.

7. Concurrencia de C ++ en acción – Williams. Libro de C ++ 11 centrado en la biblioteca de concurrencia. Gran libro cargado de información.

Y algo mas :

8. Diseño moderno de C ++ – Alexandrescu. Este es el libro de “epifanía”. Te hace darte cuenta del poder de las plantillas y su uso. Realmente sugeriría leer al menos los dos primeros capítulos de este libro a cualquiera. Si comprende bien los patrones de diseño, solo siga leyendo lo más que pueda.

9. Aprendizaje de bibliotecas C ++ de Boost – Arindam Mukherjee. Buena introducción completa a Boost: cubre punteros inteligentes, contenedores, cadenas y expresiones regulares, varias clases de utilidad, E / S, fecha y hora, programación multiproceso y concurrente, ASIO, metaprogramación, programación de orden superior, bibliotecas Spirit, etc.

10. Diseño emergente – Scott L. Bain. No es un libro de C ++: un libro de patrones de diseño aplicado, ejemplos de código en Java. Recomiendo completamente este libro.

11. Patrones de diseño de Head First. No soy un gran admirador de todos los libros de Head First, pero este patea algunos culos serios.

Para referencia :
12. Patrones de diseño: Gamma, Helm, Vlissides, Johnson (GoF). No es el más legible de los libros, así que deseo que algún día surja una nueva edición con mejores ejemplos. Por supuesto, ya no será GoF, porque Vlissides ya no existe. Pero este es el catálogo definitivo de patrones. No leas esto de forma aislada. El libro de trama de patrones de Vlissides fue un buen intento, pero no está ampliamente disponible.

13. El lenguaje de programación C ++ (4 / e) – Stroustrup. Esto es realmente si ya puedes manejar bien la literatura de C ++. Este libro es una mejora notable en términos de legibilidad de (3 / e) y cubre C ++ 11 desde cero.

Recursos en línea:
14. Serie de abstracciones de programación de Stanford por Julie Zelenski. No te los pierdas por nada. –
15. El lector de cursos de Stanford C ++ (página sobre Stanford) con ejercicios para arrancar.

Omisiones notables:
Excepcional C ++ y 15. Excepcional estilo C ++ – Sutter. Siento que C ++ Common Knowledge leyó bien y te preparará para los rompecabezas de estos libros. Gran conjunto de libros para comprender los entresijos de muchas construcciones de lenguaje. Pero no es absolutamente necesario ser productivo.

Descargo de responsabilidad : soy el autor de uno de los libros sugeridos anteriormente: Learning Boost C ++ Libraries.

Lista recomendada por George Stocker

Principiante

Introducción, sin experiencia previa en programación

  • Programación: Principios y práctica usando C ++ (Bjarne Stroustrup) ( actualizado para C ++ 11 / C ++ 14 ) Una introducción a la programación usando C ++ por el creador del lenguaje. Una buena lectura, que no supone experiencia previa en programación, pero no es solo para principiantes.

Introductorio, con experiencia previa en programación.

  • C ++ Primer * (Stanley Lippman, Josée Lajoie y Barbara E. Moo) ( actualizado para C ++ 11 ) Con 1k páginas, esta es una introducción muy completa a C ++ que cubre casi todo en el lenguaje en un formato muy accesible y en gran detalle La quinta edición (lanzada el 16 de agosto de 2012) cubre C ++ 11. [Revisión]
  • Un recorrido por C ++ (Bjarne Stroustrup) (EBOOK) El “recorrido” es una descripción general rápida (alrededor de 180 páginas y 14 capítulos) de todo C ++ estándar (lenguaje y biblioteca estándar, y el uso de C ++ 11 ) a un nivel moderadamente alto nivel para personas que ya conocen C ++ o al menos son programadores experimentados. Este libro es una versión extendida del material que constituye los capítulos 2-5 del lenguaje de programación C ++, cuarta edición.
  • C ++ acelerado (Andrew Koenig y Barbara Moo) Esto básicamente cubre el mismo terreno que el C ++ Primer , pero lo hace en un cuarto de su espacio. Esto es grande porque no intenta ser una introducción a la programación , sino una introducción a C ++ para las personas que previamente han programado en otro lenguaje. Tiene una curva de aprendizaje más pronunciada, pero, para aquellos que pueden hacer frente a esto, es una introducción muy compacta al lenguaje. (Históricamente, abrió nuevos caminos al ser el primer libro para principiantes en utilizar un enfoque moderno para enseñar el idioma). [Revisión]

* No debe confundirse con C ++ Primer Plus (Stephen Prata), con una revisión significativamente menos favorable.

Mejores prácticas

  • Efectivo C ++ (Scott Meyers) Esto fue escrito con el objetivo de ser el mejor segundo libro que los programadores de C ++ deberían leer, y tuvo éxito. Las ediciones anteriores estaban dirigidas a programadores procedentes de C, la tercera edición cambia esto y apunta a los programadores procedentes de lenguajes como Java. Presenta ~ 50 reglas básicas fáciles de recordar junto con su justificación en un estilo muy accesible (y agradable). Para C ++ 11 y C ++ 14, los ejemplos y algunos problemas están desactualizados y se debe preferir C ++ moderno efectivo. [Revisión]
  • Effective Modern C ++ (Scott Meyers) Esta es básicamente la nueva versión de Effective C ++ , dirigida a programadores de C ++ que hacen la transición de C ++ 03 a C ++ 11 y C ++ 14.
  • Effective STL (Scott Meyers) Esto tiene como objetivo hacer lo mismo con la parte de la biblioteca estándar que proviene del STL, lo que Effective C ++ le hizo al lenguaje en su conjunto: presenta reglas generales junto con su justificación. [Revisión]

Intermedio

  • C ++ más efectivo (Scott Meyers) Incluso más reglas generales que C ++ efectivo . No es tan importante como los del primer libro, pero aún así es bueno saberlo.
  • Excepcional C ++ (Herb Sutter) Presentado como un conjunto de acertijos, este tiene una de las mejores y minuciosas discusiones sobre el manejo adecuado de los recursos y la seguridad excepcional en C ++ a través de la adquisición de recursos es la inicialización (RAII) además de la cobertura en profundidad de una variedad de otros temas, incluyendo el modismo de pimpl, la búsqueda de nombres, el buen diseño de clase y el modelo de memoria C ++. [Revisión]
  • Más Excepcional C ++ (Herb Sutter) Cubre temas de seguridad de excepción adicionales no cubiertos en Excepcional C ++ , además de la discusión de la programación eficaz orientada a objetos en C ++ y el uso correcto del STL. [Revisión]
  • Estilo excepcional de C ++ (Herb Sutter) Analiza la programación genérica, la optimización y la gestión de recursos; Este libro también tiene una excelente exposición de cómo escribir código modular en C ++ mediante el uso de funciones que no son miembros y el principio de responsabilidad única. [Revisión]
  • Estándares de codificación C ++ (Herb Sutter y Andrei Alexandrescu) “Los estándares de codificación” aquí no significan “¿cuántos espacios debo sangrar mi código?” Este libro contiene 101 mejores prácticas, modismos y dificultades comunes que pueden ayudarlo a escribir correctamente, Código C ++ comprensible y eficiente. [Revisión]
  • Plantillas C ++: la guía completa (David Vandevoorde y Nicolai M. Josuttis) Este es el libro sobre plantillas tal como existía antes de C ++ 11. Cubre todo, desde lo más básico hasta algunas de las metaprogramaciones de plantillas más avanzadas y explica cada detalle de cómo funcionan las plantillas (tanto conceptualmente como cómo se implementan) y discute muchas trampas comunes. Tiene excelentes resúmenes de la Regla de una definición (ODR) y la resolución de sobrecarga en los apéndices. Ya se ha publicado una segunda edición que cubre C ++ 11, C ++ 14 y C ++ 17. [Revisión]

Avanzado

  • Diseño moderno de C ++ (Andrei Alexandrescu) Un libro innovador sobre técnicas avanzadas de programación genérica. Presenta un diseño basado en políticas, listas de tipos y expresiones genéricas fundamentales de programación genérica, luego explica cuántos patrones de diseño útiles (incluidos pequeños asignadores de objetos, functores, fábricas, visitantes y métodos múltiples) se pueden implementar de manera eficiente, modular y limpia utilizando programación genérica . [Revisión]
  • Metaprogramación de plantillas C ++ (David Abrahams y Aleksey Gurtovoy)
  • Concurrencia de C ++ en acción (Anthony Williams) Un libro que cubre el soporte de concurrencia de C ++ 11 que incluye la biblioteca de subprocesos, la biblioteca atómica, el modelo de memoria de C ++, bloqueos y mutexes, así como cuestiones de diseño y depuración de aplicaciones multiproceso.
  • Metaprogramación avanzada de C ++ (Davide Di Gennaro) Un manual anterior a C ++ 11 de técnicas TMP, centrado más en la práctica que en la teoría. Hay un montón de fragmentos en este libro, algunos de los cuales quedan obsoletos por los rasgos de tipo, pero las técnicas, sin embargo, son útiles para conocer. Si puede soportar el peculiar formato / edición, es más fácil de leer que Alexandrescu y, posiblemente, más gratificante. Para los desarrolladores más experimentados, hay una buena posibilidad de que puedan aprender algo sobre un rincón oscuro de C ++ (una peculiaridad) que generalmente solo se produce a través de una amplia experiencia.

Estilo de referencia: todos los niveles

  • El lenguaje de programación C ++ (Bjarne Stroustrup) ( actualizado para C ++ 11 ) La introducción clásica a C ++ por su creador. Escrito en paralelo al clásico K&R, esto de hecho se lee mucho y cubre casi todo, desde el lenguaje central hasta la biblioteca estándar, desde paradigmas de programación hasta la filosofía del lenguaje. [Revisión]
  • Tutorial y referencia de la biblioteca estándar de C ++ (Nicolai Josuttis) ( actualizado para C ++ 11 ) Introducción y referencia para la biblioteca estándar de C ++. La segunda edición (lanzada el 9 de abril de 2012) cubre C ++ 11. [Revisión]
  • Las transmisiones y configuraciones regionales de C ++ IO (Angelika Langer y Klaus Kreft) Hay muy poco que decir sobre este libro, excepto que, si desea saber algo sobre transmisiones y configuraciones regionales, este es el único lugar para encontrar respuestas definitivas. [Revisión]

C ++ 11/14 Referencias:

  • El estándar C ++ (INCITS / ISO / IEC 14882-2011) Esto, por supuesto, es el árbitro final de todo lo que es o no es C ++. Sin embargo, tenga en cuenta que está destinado únicamente como una referencia para usuarios experimentados dispuestos a dedicar un tiempo y esfuerzo considerables a su comprensión. Como de costumbre, el primer lanzamiento fue bastante costoso ($ 300 + US), pero ahora se ha lanzado en forma electrónica por $ 60US.
  • El estándar C ++ 14 está disponible, pero aparentemente no en una forma económica: directamente de la ISO cuesta 198 francos suizos (alrededor de $ 200 US). Para la mayoría de las personas, el borrador final antes de la estandarización es más que adecuado (y gratuito). Muchos preferirán un borrador aún más nuevo, que documente las nuevas características que probablemente se incluirán en C ++ 17.
  • Descripción general del nuevo C ++ (C ++ 11/14) (solo PDF) (Scott Meyers) ( actualizado para C ++ 1y / C ++ 14 ) Estos son los materiales de presentación (diapositivas y algunas notas de clase) de un curso de capacitación de un día ofrecido por Scott Meyers, quien es un autor muy respetado en C ++. Aunque la lista de artículos es corta, la calidad es alta.
  • Las Pautas principales de C ++ (C ++ 11/14/17 /…) (editadas por Bjarne Stroustrup y Herb Sutter) es un documento en línea en evolución que consta de un conjunto de pautas para usar bien C ++ moderno. Las directrices se centran en cuestiones de nivel relativamente alto, como interfaces, gestión de recursos, gestión de memoria y concurrencia que afectan la arquitectura de la aplicación y el diseño de la biblioteca. El proyecto fue anunciado en CppCon’15 por Bjarne Stroustrup y otros y agradece las contribuciones de la comunidad. La mayoría de las pautas se complementan con una justificación y ejemplos, así como debates sobre el posible soporte de herramientas. Muchas reglas están diseñadas específicamente para ser verificables automáticamente por herramientas de análisis estático.
  • El C ++ Super-FAQ (Marshall Cline, Bjarne Stroustrup y otros) es un esfuerzo de la Standard C ++ Foundation para unificar las preguntas frecuentes de C ++ mantenidas previamente individualmente por Marshall Cline y Bjarne Stroustrup y también incorporando nuevas contribuciones. Los artículos abordan principalmente problemas en un nivel intermedio y a menudo están escritos con un tono humorístico. No todos los elementos pueden estar completamente actualizados con la última edición del estándar C ++ todavía.
  • cppreference.com (C ++ 03/11/14/17 / …) (iniciado por Nate Kohl) es un wiki que resume las características básicas del lenguaje central y tiene una extensa documentación de la biblioteca estándar de C ++. La documentación es muy precisa pero es más fácil de leer que el documento estándar oficial y proporciona una mejor navegación debido a su naturaleza wiki. El proyecto documenta todas las versiones del estándar C ++ y el sitio permite filtrar la pantalla para una versión específica. El proyecto fue presentado por Nate Kohl en CppCon’14.

Clásicos / Mayores

Nota: Es posible que parte de la información contenida en estos libros no esté actualizada o ya no se considere la mejor práctica.

  • El diseño y la evolución de C ++ (Bjarne Stroustrup) Si desea saber por qué el lenguaje es como es, en este libro encontrará respuestas. Esto cubre todo antes de la estandarización de C ++.
  • Reflexiones sobre C ++ – (Andrew Koenig y Barbara Moo) [Revisión]
  • Estilos y modismos de programación avanzada de C ++ (James Coplien) Un predecesor del movimiento del patrón, describe muchos “modismos” específicos de C ++. Sin duda, es un libro muy bueno y podría valer la pena leerlo si puede dedicarle tiempo, pero es bastante antiguo y no está actualizado con el C ++ actual.
  • Diseño de software C ++ a gran escala (John Lakos) Lakos explica técnicas para administrar proyectos de software C ++ muy grandes. Ciertamente, una buena lectura, si solo estuviera actualizada. Fue escrito mucho antes de C ++ 98 y pierde muchas características (por ejemplo, espacios de nombres) importantes para proyectos a gran escala. Si necesita trabajar en un gran proyecto de software C ++, es posible que desee leerlo, aunque debe llevar más de un grano de sal. Se espera el primer volumen de una nueva edición en 2018.
  • Dentro del modelo de objetos C ++ (Stanley Lippman) Si desea saber cómo se implementan comúnmente las funciones de miembros virtuales y cómo los objetos base se presentan comúnmente en la memoria en un escenario de herencia múltiple, y cómo todo esto afecta el rendimiento, aquí es donde encuentre discusiones exhaustivas de tales temas.
  • El manual de referencia anotado de C ++ (Bjarne Stroustrup, Margaret A. Ellis) Este libro está bastante desactualizado en el hecho de que explora la versión de C ++ 2.0 de 1989: las plantillas, excepciones, espacios de nombres y nuevos lanzamientos aún no se han introducido. Dicho esto, sin embargo, este libro pasa por todo el estándar de C ++ de la época explicando la justificación, las posibles implementaciones y las características del lenguaje. Este no es un libro para aprender principios y patrones de programación en C ++, sino para comprender todos los aspectos del lenguaje C ++.
  • Pensando en C ++ (Bruce Eckel) Dos volúmenes; es un conjunto gratuito de estilo tutorial de libros de nivel de introducción. Descargas: vol. 1, vol. 2. Desafortunadamente, se ven empañados por una serie de errores triviales (por ejemplo, mantener que los temporales son const ), sin una lista oficial de erratas. Una lista parcial de erratas de terceros está disponible en ( http://www.computersciencelab.co …), pero aparentemente no se mantiene.
  • Scientific and Engineering C ++: una introducción a las técnicas avanzadas y ejemplos (John Barton y Lee Nackman) Es un libro completo y muy detallado que intentó explicar y utilizar todas las características disponibles en C ++, en el contexto de los métodos numéricos. En ese momento introdujo varias técnicas nuevas, como el Patrón de plantilla curiosamente recurrente (CRTP, también llamado truco de Barton-Nackman). Fue pionera en varias técnicas, como el análisis dimensional y la diferenciación automática. Vino con una gran cantidad de código compilable y útil, que va desde un analizador de expresiones hasta un contenedor Lapack. El código aún está disponible aquí: http://www.informit.com/store/sc… . Desafortunadamente, los libros se han vuelto algo obsoletos en el estilo y las características de C ++, sin embargo, fue un increíble tour de force en ese momento (1994, pre-STL). Los capítulos sobre herencia dinámica son un poco complicados de entender y no muy útiles. Una versión actualizada de este libro clásico que incluye semántica de movimiento y las lecciones aprendidas del STL sería muy buena.

Conozca más pruebe estos enlaces:

  1. 18 mejores libros de C ++ para todos los niveles de habilidad
  2. Los mejores libros de C ++ en 2017: ¡sube de nivel! – medio
  3. La guía y lista definitiva de libros de C ++

Consulte los siguientes libros:

Principiante

Introducción, sin experiencia previa en programación

  • Programación: Principios y práctica usando C ++ (Bjarne Stroustrup) ( actualizado para C ++ 11 / C ++ 14 ) Una introducción a la programación usando C ++ por el creador del lenguaje. Una buena lectura, que no supone experiencia previa en programación, pero no es solo para principiantes.

Introductorio, con experiencia previa en programación.

  • C ++ Primer * (Stanley Lippman, Josée Lajoie y Barbara E. Moo) ( actualizado para C ++ 11 ) Con 1k páginas, esta es una introducción muy completa a C ++ que cubre casi todo en el lenguaje en un formato muy accesible y en gran detalle La quinta edición (lanzada el 16 de agosto de 2012) cubre C ++ 11. [Revisión]
  • Un recorrido por C ++ (Bjarne Stroustrup) (EBOOK) El “recorrido” es una descripción general rápida (alrededor de 180 páginas y 14 capítulos) de todo C ++ estándar (lenguaje y biblioteca estándar, y el uso de C ++ 11 ) a un nivel moderadamente alto nivel para personas que ya conocen C ++ o al menos son programadores experimentados. Este libro es una versión extendida del material que constituye los capítulos 2-5 del lenguaje de programación C ++, cuarta edición.
  • C ++ acelerado (Andrew Koenig y Barbara Moo) Esto básicamente cubre el mismo terreno que el C ++ Primer , pero lo hace en un cuarto de su espacio. Esto se debe en gran medida a que no intenta ser una introducción a la programación , sino una introducción a C ++ para las personas que previamente han programado en otro lenguaje. Tiene una curva de aprendizaje más pronunciada, pero, para aquellos que pueden hacer frente a esto, es una introducción muy compacta al lenguaje. (Históricamente, abrió nuevos caminos al ser el primer libro para principiantes en utilizar un enfoque moderno en la enseñanza del idioma). [Revisión]

* No debe confundirse con C ++ Primer Plus (Stephen Prata), con una revisión significativamente menos favorable.

Mejores prácticas

  • Efectivo C ++ (Scott Meyers) Esto fue escrito con el objetivo de ser el mejor segundo libro que los programadores de C ++ deberían leer, y tuvo éxito. Las ediciones anteriores estaban dirigidas a programadores procedentes de C, la tercera edición cambia esto y apunta a los programadores procedentes de lenguajes como Java. Presenta ~ 50 reglas básicas fáciles de recordar junto con su justificación en un estilo muy accesible (y agradable). Para C ++ 11 y C ++ 14, los ejemplos y algunos problemas están desactualizados y se debe preferir C ++ moderno efectivo. [Revisión]
  • Effective Modern C ++ (Scott Meyers) Esta es básicamente la nueva versión de Effective C ++ , dirigida a programadores de C ++ que hacen la transición de C ++ 03 a C ++ 11 y C ++ 14.
  • Effective STL (Scott Meyers) Esto tiene como objetivo hacer lo mismo con la parte de la biblioteca estándar que proviene del STL, lo que Effective C ++ le hizo al lenguaje en su conjunto: presenta reglas generales junto con su justificación. [Revisión]

Intermedio

  • C ++ más efectivo (Scott Meyers) Incluso más reglas generales que C ++ efectivo . No es tan importante como los del primer libro, pero aún así es bueno saberlo.
  • Excepcional C ++ (Herb Sutter) Presentado como un conjunto de acertijos, este tiene una de las mejores y minuciosas discusiones sobre el manejo adecuado de los recursos y la seguridad excepcional en C ++ a través de la adquisición de recursos es la inicialización (RAII) además de la cobertura en profundidad de una variedad de otros temas, incluyendo el modismo de pimpl, la búsqueda de nombres, el buen diseño de clase y el modelo de memoria C ++. [Revisión]
  • Más Excepcional C ++ (Herb Sutter) Cubre temas de seguridad de excepción adicionales no cubiertos en Excepcional C ++ , además de la discusión de la programación orientada a objetos efectiva en C ++ y el uso correcto del STL. [Revisión]
  • Estilo excepcional de C ++ (Herb Sutter) Analiza la programación genérica, la optimización y la gestión de recursos; Este libro también tiene una excelente exposición de cómo escribir código modular en C ++ mediante el uso de funciones no miembros y el principio de responsabilidad única. [Revisión]
  • Estándares de codificación C ++ (Herb Sutter y Andrei Alexandrescu) “Los estándares de codificación” aquí no significan “¿cuántos espacios debo sangrar mi código?” Este libro contiene 101 mejores prácticas, modismos y dificultades comunes que pueden ayudarlo a escribir correctamente, Código C ++ comprensible y eficiente. [Revisión]
  • Plantillas C ++: la guía completa (David Vandevoorde y Nicolai M. Josuttis) Este es el libro sobre plantillas tal como existía antes de C ++ 11. Cubre todo, desde lo más básico hasta algunas de las metaprogramaciones de plantillas más avanzadas y explica cada detalle de cómo funcionan las plantillas (tanto conceptualmente como cómo se implementan) y discute muchas trampas comunes. Tiene excelentes resúmenes de la Regla de una definición (ODR) y la resolución de sobrecarga en los apéndices. Una segunda edición está programada para 2017. [Revisión]

Avanzado

  • Diseño moderno de C ++ (Andrei Alexandrescu) Un libro innovador sobre técnicas avanzadas de programación genérica. Presenta un diseño basado en políticas, listas de tipos y modismos genéricos de programación genéricos, luego explica cuántos patrones de diseño útiles (incluidos los asignadores de objetos pequeños, functores, fábricas, visitantes y métodos múltiples) se pueden implementar de manera eficiente, modular y limpia utilizando programación genérica. [Revisión]
  • Metaprogramación de plantillas C ++ (David Abrahams y Aleksey Gurtovoy)
  • Concurrencia de C ++ en acción (Anthony Williams) Un libro que cubre el soporte de concurrencia de C ++ 11 que incluye la biblioteca de subprocesos, la biblioteca atómica, el modelo de memoria de C ++, bloqueos y mutexes, así como cuestiones de diseño y depuración de aplicaciones multiproceso.
  • Metaprogramación avanzada de C ++ (Davide Di Gennaro) Un manual anterior a C ++ 11 de técnicas TMP, centrado más en la práctica que en la teoría. Hay un montón de fragmentos en este libro, algunos de los cuales quedan obsoletos por los caracteres tipográficos, pero las técnicas, sin embargo, son útiles para conocer. Si puede soportar el peculiar formato / edición, es más fácil de leer que Alexandrescu y, posiblemente, más gratificante. Para los desarrolladores más experimentados, hay una buena posibilidad de que puedan aprender algo sobre un rincón oscuro de C ++ (una peculiaridad) que generalmente solo se produce a través de una amplia experiencia.

1. El lenguaje de programación C ++, cuarta edición

El lenguaje de programación C ++, cuarta edición (9780321563842): Bjarne Stroustrup: Libros

C ++ 11 ha llegado: ¡domínelo completamente, con la nueva guía definitiva del creador de C ++ Bjarne Stroustrup, Lenguaje de programación C ++, Cuarta edición! La nueva edición de la guía de C ++ más confiable y ampliamente leída del mundo, se ha actualizado exhaustivamente para el tan esperado estándar C ++ 11. Ampliamente reescrito para presentar el lenguaje C ++ 11, la biblioteca estándar y las técnicas de diseño clave como un todo integrado, Stroustrup aborda minuciosamente los cambios que hacen que C ++ 11 se sienta como un lenguaje completamente nuevo, ofreciendo una guía definitiva para aprovechar sus mejoras en el rendimiento, fiabilidad y claridad. Los programadores de C ++ de todo el mundo reconocen a Bjarne Stoustrup como el experto a quien recurrir por la información absolutamente autoritativa y excepcionalmente útil que necesitan para escribir programas C ++ sobresalientes. Ahora, cuando llegan los compiladores de C ++ 11 y las organizaciones de desarrollo migran al nuevo estándar, saben exactamente a dónde recurrir una vez más: el lenguaje de programación C ++ de Stoustrup , cuarta edición .

El lenguaje de programación C ++, cuarta edición (9780321563842): Bjarne Stroustrup: Libros

2. Saltar a C ++

Saltando a C ++ (9780988927803): Alex Allain: Libros
¿Quieres aprender a codificar? ¿Quieres aprender C ++? ¿Lucha por seguir a su profesor o libros y tutoriales escritos para expertos? No estas solo. Como desarrollador profesional de C ++ y antiguo docente de Harvard, sé lo que necesitas saber para ser un gran programador de C ++, y sé cómo enseñarlo, paso a paso. Sé dónde luchan las personas, y por qué, y cómo dejarlo claro. Cubro cada paso del proceso de programación, incluyendo:

  • Obteniendo las herramientas que necesita programar y cómo usarlas
  • Característica básica del lenguaje como variables, bucles y funciones
  • Cómo pasar de una idea al código
  • Una explicación clara y comprensible de los punteros.
  • Cadenas, archivo IO, matrices, referencias
  • Clases y diseño de clase avanzado.
  • C ++ – patrones de programación específicos
  • Programación orientada a objetos
  • Estructuras de datos y la biblioteca de plantillas estándar (STL)
  • Los conceptos clave se refuerzan con cuestionarios y más de 75 problemas de práctica.

    3. C ++ moderno efectivo: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14
    C ++ moderno efectivo: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14 (9781491903995): Scott Meyers: Libros

    Conocer C ++ 11 y C ++ 14 es más que una cuestión de familiarizarse con las características que introducen (por ejemplo, declaraciones de tipo automático , semántica de movimiento, expresiones lambda y soporte de concurrencia). El desafío es aprender a usar esas funciones de manera efectiva , para que su software sea correcto, eficiente, fácil de mantener y portátil. Ahí es donde entra este libro práctico. Describe cómo escribir un software realmente excelente usando C ++ 11 y C ++ 14, es decir, usando C ++ moderno .
    Los temas incluyen:

    • Los pros y los contras de la inicialización reforzada, las especificaciones sin excepción , el reenvío perfecto y el puntero inteligente hacen funciones
    • Las relaciones entre std :: move , std :: forward , rvalue referencias y referencias universales
    • Técnicas para escribir expresiones lambda claras, correctas y efectivas
    • Cómo std :: atomic difiere de volátil , cómo debe usarse cada uno y cómo se relacionan con la API de concurrencia de C ++
    • Cómo las mejores prácticas en la programación “antigua” de C ++ (es decir, C ++ 98) requieren revisión para el desarrollo de software en C ++ moderno

    Efectivo Modern C ++ sigue el formato probado basado en guías, basado en ejemplos de los libros anteriores de Scott Meyers, pero cubre material completamente nuevo.
    “Después de aprender los conceptos básicos de C ++, aprendí cómo usar C ++ en el código de producción de la serie de libros de Effective C ++ de Meyer. Effective Modern C ++ es el libro de instrucciones más importante para obtener consejos sobre pautas clave, estilos y expresiones idiomáticas para usar moderno C ++ eficaz y bien. ¿Aún no lo posee? Compre este. Ahora “.
    – Herb Sutter, presidente del comité de estándares ISO C ++ y arquitecto de software C ++ en Microsoft

    C ++ moderno efectivo: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14 (9781491903995): Scott Meyers: Libros

    Ya has recibido un * lote * de respuestas, por lo que intentaré mantener las mías bastante cortas.

    1. Recomiendo evitar todo por Herbert Schildt. Ha escrito mucho y es un escritor interesante y atractivo. Desafortunadamente, él simplemente no conoce C ++ lo suficientemente bien como para enseñarlo adecuadamente.

    2. Stroustrup es más o menos lo contrario: obviamente conoce muy bien C ++. Sus libros más antiguos estaban escritos densamente, por lo que a menudo eran difíciles de seguir. Afortunadamente, pasó algún tiempo enseñando, y sus últimos libros son mucho mejores para eso.

    3. * Pensar en C ++ * fue genial, cuando era nuevo. Desafortunadamente, junto con todos los otros libros antiguos en C ++, es simplemente obsoleto. Si desea una lección de historia sobre cómo se usó C ++ hace 20 años, sigue siendo genial, pero para C ++ moderno, busque en otro lado. De hecho, casi el único libro anterior a C ++ 11 que aún vale la pena considerar es * C ++ acelerado *. Solo espero que Andrew Koenig pueda resolver los problemas de derechos de autor y publicar una edición actualizada.

    4. La gran mayoría de los libros sobre C ++ son realmente bastante pobres. Solo por ejemplo, La guía y lista definitiva de libros de C ++ en Stack Overflow es una lista bastante corta, e intencionalmente. Desafortunadamente, un principiante está en una posición deficiente para juzgar la calidad de lo que está aprendiendo, y muchos se esfuerzan mucho por aprender malas prácticas, solo para tener que desaprenderlas más tarde (o peor, renunciar por completo, porque lo que son ser enseñado es un desastre, ni ellos ni nadie más podrían usarlo bien).

    He leído Accelerated C ++, C ++ Primer (una vez que lo vi), Thinking in C ++ y el lenguaje de programación C ++ de Bjarne Stroustrup y tengo algunas percepciones diferentes sobre cada uno de ellos.

    • C ++ acelerado: es un libro de ritmo rápido para aprender C ++ que pasa por casi todas las características de C ++ pero aún no cubre todo según el autor. Y no lo recomendaré a un principiante completo.
    • Manual de C ++: tuve la oportunidad de echar un vistazo a este libro y me pareció bien.
    • Pensando en C ++: este es uno de los mejores libros sobre C ++ y se lo recomendaría a cualquiera que esté comenzando a aprender este idioma. El volumen cubre casi todo, desde la sintaxis básica hasta las clases, la sobrecarga de conceptos y la programación orientada a objetos. Es un buen libro para un principiante completo, así que recójalo si realmente quiere comenzar.
    • Lenguaje de programación C ++ de Bjarne: es un buen libro para aprender C ++, ya que fue creado por el creador del lenguaje en sí mismo para que pueda confiar en la fuente.

    Para concluir, me gustaría decir que si realmente quieres aprender este idioma, ya que requiere mucha perseverancia, lee el Pensamiento de Bruce Eckel en C ++ a fondo. Después, puede ir con el libro de Bjarne para ponerse en marcha con los últimos estándares.
    Buena suerte.

    EDITAR: me perdí la segunda parte de tu pregunta. Aprender C ++ significa “lo suficientemente bueno” diferente para todos. Intente aprender el idioma primero y revise algunos proyectos de código abierto para tener una mejor idea del código ” bueno” de C ++. En mi opinión, aprender un idioma lleva tiempo, pero todos tienen su propio ritmo de aprendizaje. Le sugiero que revise las construcciones y características básicas del lenguaje y comience a aprender la Biblioteca de plantillas estándar. Es asombroso.

    A2A.

    La respuesta dependerá de si ya conoce la programación o no. C ++ es un lenguaje difícil de aprender programación. Entonces, puedes comenzar con Python, uno de los lenguajes más fáciles de aprender. Aquí está la página oficial de tutoriales para comenzar. Eso lo ayudará a aprender construcciones básicas de programación. Entonces puedes usar este tutorial para aprender C ++.

    También puede comenzar directamente con el tutorial de C ++ anterior directamente, pero será un poco más difícil de entender.

    Además, no es tan importante a qué tutorial específico se refiere. Para mí, debe buscar los siguientes dos puntos para seleccionar un tutorial de idioma:
    1) Debe ser breve. Idealmente, debería poder aprender un lenguaje de programación en no más de dos semanas. (Si ya conoce la programación, le tomará aproximadamente dos días aprender un nuevo idioma). Por lo tanto, el tutorial no debe tener más de 150-200 páginas.
    2) Debería estar disponible en línea. Es importante probar algunos programas prácticamente mientras aprende un idioma. Si lees una copia impresa y el libro proporciona un programa de muestra, es poco probable que escribas todo el programa. Si, en cambio, es una versión en línea, simplemente puede copiar y pegar el código. Entonces aprenderás más rápido y mejor.

    No existe tal libro, que podría convertirte en un maestro de C ++. Todos los libros que se encuentran allí le brindan un curso intensivo sobre el idioma, le enseñan casi todo lo que se puede hacer a través de los fundamentos y le dan sus mejores deseos. Si una interfaz de programación (API) en particular le interesa, tal vez podría encontrar documentación detallada del desarrollador si está disponible por parte de la empresa autora. Pero aparte de eso, es muy raro encontrar personas que realmente hayan pasado mucho tiempo describiendo todo lo que necesita aprender. como programador de C ++ trabajando en una empresa multinacional. Incluso hicieron universidades por esa misma razón, viendo lo rentable que sería.

    De lo contrario, como programador, usted se encuentra principalmente solo, ya que este campo carece de comederos de cuchara dedicados para los principiantes (o todos están ocupados trabajando en Google / Microsoft, o están pescando hielo sin trabajo en Alaska). Aprende tú mismo o muere en la industria.

    Este cómic resume bastante bien los sentimientos de ser un programador de C ++ que se encuentra con libros que dicen hacer maestros del lenguaje:

    Le pregunté a las personas que han trabajado como programadores de C ++ durante la mayor parte de sus vidas, y es interesante cómo afirman que todavía están descubriendo cosas sobre el lenguaje que prácticamente consideran su segundo idioma.

    Dicho esto, C ++ primer 11 es el curso intensivo perfecto / manual casi adecuado para cualquier cosa C ++.

    A menudo tendemos a algo más especializado que tiene más demanda en el mercado y que nos separará de la multitud. Lo mismo ocurre con la programación de aprendizaje. Tenemos que mantenernos actualizados para que no quede nada cuando sea necesario. Todos sabemos que C es el lenguaje básico y C ++ es avanzado. Después de aprender C a fondo, debe avanzar a C ++.

    Ya he sugerido algunos buenos libros para aprender C. Estos fueron Kanitkar y Srivastava. Pero para aprender C ++, este es un conjunto diferente de libros presentes. También debes tener en cuenta que los saltos no son nada buenos para aprender idiomas de computadora. Primero debe aprender C y luego ir a C ++, de lo contrario verá los resultados usted mismo al referirse a los libros de C ++. Eso es comprensible ya que los niveles avanzados no pueden ser cubiertos por algunos libros básicos. Aquí está la lista para lo mismo:

    1. Programación Orientada a Objetos con C ++

    Comencemos primero con los autores indios. E Balagurusamy es un autor conocido cuando se trata de programación y su libro también. El libro contiene muchos ejemplos resueltos y no resueltos para obtener todo lo que se necesita. Una cosa de la que debe estar seguro es que sus conceptos básicos sobre C deben ser claros como el cristal, de lo contrario tomará tiempo comprender los aspectos de nivel superior cubiertos en este libro. Incluso los maestros usan este libro para su estudio y revisión. Esto dice mucho sobre la calidad del contenido y la popularidad de este libro.

    2. Programación orientada a objetos en C ++

    Este es otro gran libro sobre C ++ de Lafore. Lo que destaca en esto es la forma de explicar. La programación orientada a objetos se explica de una manera muy simple. Todos, con lo básico de C cubierto, deben comprender los conceptos dados aquí. El lenguaje utilizado también es muy fácil. Otra cosa sobre este libro es que todos los conceptos, incluso los menores, están cubiertos en esto. Por lo tanto, no tiene que ir a otro lugar que este libro para la programación orientada a objetos.

    3. C ++: la referencia completa, cuarta edición

    A las 530, esta debería ser tu elección. Otra obra maestra de otro autor extranjero. Sin embargo, la diferencia es que este libro contiene todo lo relacionado con C ++ y no solo la programación orientada a objetos. Aquí es donde la mayoría de los autores fallan. Piensan que la programación orientada a objetos es C ++, que no es el caso con este libro. Desde escribir palabras clave en RTII, todo está cubierto.

    Estos libros merecen un lugar en su estante. Después de cubrir C, C ++ debería ser su único objetivo. Y estos libros definitivamente lo ayudarán a obtener el control que necesita sobre el tema. Como siempre, tenga cuidado con los libros pirateados, ya que esto no es lo que estamos buscando.

    Otra cosa a tener en cuenta es el contexto que está buscando. Si el objetivo es la programación orientada a objetos, busque los dos primeros libros, si no, busque libros como el tercero. ¡Compre uno bueno y haga el C ++!

    Mi recomendación es probablemente muy diferente de las respuestas de los otros individuos (puede que no sea así), pero creo que este enfoque me ayudó un poco. Pero la verdad depende de su conocimiento actual de programación, y de qué tan bien entienda los temas en la teoría de la programación, la memoria, los sistemas, etc. También debe tenerse en cuenta que comencé joven, y siento que el enfoque que discutiré me ayudó y aumentó mi curva de aprendizaje. Debido a que tenía muy poco conocimiento de programación, mi enfoque supone que usted tiene muy poco conocimiento.

    La imagen a continuación lo dice todo, he comprado los tres libros más de una vez debido al desgaste causado por el uso excesivo. El título del medio, tenía la edición anterior, pero estaba muy desgastada y se la presté a un amigo para que lo repase antes, y mientras estaba tomando un curso de Algoritmos que se enseñó usando C ++, o debería digamos que se esperaba C ++.

    Primero creo que deberías comenzar en un sistema Unix o Linux con el lenguaje de programación ANSI C por varias razones. Voy a enumerar un par a continuación:

    1. Comenzando con C, aprenderá el lenguaje principal de C ++, aprenderá o debería conocer los hechos y características históricos que tiene C. Después de todo, la creación de C ++ probablemente no habría sucedido si no se hubiera creado C de antemano. (Sin ofender a Bjarne)
    2. Al aprender el lenguaje de programación C primero, probablemente entraría en contacto con muchas de las bibliotecas C que se usan a menudo (incluido, #include <>) en los programas C ++. Qué inturn le dará una comprensión más profunda de C ++.
    3. Una introducción a la utilización de memoria con C ++ mediante el uso de punteros. También siento que aprender los tipos de datos definidos por el usuario de estructuras de estilo C (registros) son importantes, así como typedef Ch. 4, cap. 5, Ch.6 y Ch. 7)
    4. Una vez que pase a C ++, verá qué ventajas ofrece C ++ que el lenguaje de programación C no incorpora. Por ejemplo, la Biblioteca de plantillas estándar, muchos contenedores además de la matriz y un tipo de datos de cadena incorporado más allá de la matriz char [], solo por nombrar algunos.

    Lea todo el libro detenidamente y preste atención a los capítulos 4 a 7. Después de terminar el capítulo 5, regrese y lea el capítulo 4 y resuelva el problema creando elementos a partir de estructuras con typedef. ¡Al hacerlo, mejorará su capacidad de pensar en el diseño!

    Una vez que se haya mojado con el lenguaje de programación C, el siguiente paso sería, por supuesto, un buen libro sobre C ++.

    El libro al pie de la imagen,

    ‘El lenguaje de programación C ++’ por: Bjarne Stroustrup

    Es un gran libro. Comencé C ++ con una edición anterior de este libro en 1994, y desde entonces he comprado otras dos copias (la primera que usé, la segunda que perdí hace una década cuando me mudé). Realmente me gusta su consejo sobre cómo debería pensar un codificador de C ++ (vidualizar en la cabeza) diseñar y crear módulos dentro de sus programas.

    Como segunda opción,

    ‘Programación y resolución de problemas con C ++’ de Nell Dale y Chip Weems

    es un libro de C ++ superior a la media para usar como libro introductorio de C ++ o como actualización sobre el tema de C ++.

    Una vez que leas un libro introductorio,

    ‘Estructuras de datos y análisis de algoritmos en C ++’ por Mark Allen Weiss

    A continuación se muestra una forma bastante buena de avanzar en su conocimiento de la base de C ++ y tener un enfoque más ilustrado de algunos temas más avanzados de C ++, por ejemplo, el análisis de contenedores que se encuentran en la Biblioteca de plantillas estándar.

    Cabe señalar que nunca he leído personalmente “C ++ eficaz” de Scott Meyer, pero me lo recomendaron en el pasado varias veces y noté hace unas semanas, mientras miraba algunos libros de programación en Amazon, que ” Efectivo C ++ ‘tiene una alta calificación de satisfacción del cliente. Eso es algo para pensar.

    También recomiendo mientras esté en las fases de aprendizaje, seguir con las versiones ANSI de C y C ++, que deberían ser las versiones predeterminadas del compilador que instala (pero quién sabe: – /), antes de pasar a C ++ 11 o C + +14. Otras recomendaciones incluirían usar los compiladores GCC de C y C ++, y lo recomiendo encarecidamente, al menos durante los primeros 3 a 6 meses, tal vez incluso un año o más, evitando los IDE y usando un editor de texto normal o el editor NANO para escribir y practicar código / codificación en C ++. Además de compilar desde la línea de comandos a medida que aprende.

    La mejor de las suertes en sus experiencias de programación con C ++.

    El lenguaje de programación C ++ (4a edición) Edición Kindle

    Saltando a C ++ Kindle Edition

    C ++ moderno eficaz: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14 Kindle Edition

    A partir de C ++ a través de la programación del juego, 3a edición, edición Kindle

    Algunos de los libros que encontrarás útiles

    C ++ Primer Plus (6ta edición) (Biblioteca del desarrollador) Edición Kindle

    C ++ acelerado: programación práctica por ejemplo 1a edición

    El lenguaje de programación C ++ (3ra edición)

    Programación: Principios y práctica con C ++ (2nd Edition) Kindle Edition

    C ++ Primer (5a edición) Edición Kindle

    C ++: Crash Course: el curso definitivo para principiantes para aprender programación C ++ en menos de 12 horas Edición Kindle

    Algunos de los libros que encontré en el sitio stackoverflow

    Principiante

    • Programación y principios en c ++
    • C ++ efectivo
    • Efectivo STL.

    Intermedio

    C ++ más efectivo

    • Estilo excepcional de C ++
    • Estructuras de codificación C ++
    • Plantilla C ++

    Avanzado

    • Diseño moderno de C ++
    • C ++ Co Currency Action
    • Metaprogramación avanzada de C ++
    • para obtener información, puede visitar mi sitio web Conceptos básicos del código

    El lenguaje de programación C ++ de Bjarne Stroustrup.

    Bjarne Stroustrup, ha escrito uno de los mejores libros C ++ para usuarios de todo el mundo. En este libro, el escritor ha ampliado, reorganizado y reescrito el tutorial, así como referencias definitivas para principiantes y programadores experimentados. El libro ofrece una amplia información y cobertura sobre diversos aspectos del lenguaje, como técnicas de diseño clave, bibliotecas estándar y mecanismos de abstracción, entre otros.

    ** Y **

    Efectivo Modern C ++ por Scott Meyers

    Con el desarrollo continuo del lenguaje C ++, el autor de este libro ha actualizado y reorganizado el material para ofrecer información extensa sobre las últimas versiones del lenguaje. Debido a ese hecho, este es uno de los mejores libros c ++ que guía a los usuarios, tanto experimentados como nuevos, sobre las características adicionales de las últimas versiones del lenguaje.

    Ambos libros son excelentes para profesionales.

    Será mejor si obtiene una copia impresa, así que menciono los enlaces a continuación,

    Enlaces de Amazon: –

    El lenguaje de programación C ++, cuarta edición (9780321563842): Bjarne Stroustrup: Libros

    C ++ moderno efectivo: 42 formas específicas de mejorar su uso de C ++ 11 y C ++ 14 (9781491903995): Scott Meyers: Libros

    C ++ es un lenguaje extenso para explorar. Es uno de los lenguajes de programación básicos y un súper conjunto de C que tiene una gran comunidad. Hay mucho material de estudio disponible para C ++. En muchos recursos, se escribe mucho aparte del asunto real, lo que hace que a veces sea difícil continuar con el recurso.

    No mencionaría muchos recursos para no confundirlo, pero descubrí que estos son los dos grandes libros que podría seguir

    1. C ++ Primer
    2. Programación orientada a objetos Balaguruswamy con C ++

    Sin embargo, le recomendaría que aprenda C ++ de Codesdope, ya que cubre todos los temas y explica cada tema de una manera muy fácil y fácil de usar. Al aprender el formulario C ++ aquí, puede completar el curso muy fácilmente en un tiempo mucho más corto que el requerido al leer un libro. También puede practicar preguntas de cada tema desde su sección de práctica justo después de completar ese tema y hacer cualquier pregunta o consulta en la sección de discusión donde los expertos estarán allí para aclarar todas sus dudas. Además, también puede contactarlos directamente en caso de cualquier consulta. Este sitio web es totalmente gratuito y muy divertido para aprender a programar.

    CodesDope: aprender a codificar

    Un MacBook es un libro bastante bueno para aprender C ++.

    Esa es mi copia. Dentro del libro puede encontrar un IDE (Xcode) que compilará y ejecutará C ++ por usted. Xcode también viene con muchas cosas útiles como git. Para comenzar a escribir C ++ con Xcode, simplemente cree un nuevo proyecto, seleccione Herramienta de línea de comandos, luego seleccione C ++ como el idioma y ¡ya no está!

    Chrome también está allí para acceder a Stack Overflow, donde los desarrolladores aprenden, comparten y desarrollan carreras y referencia de C ++: cppreference.com. Terminal es ideal para descargar e instalar bibliotecas. (¡No, no necesitas escribir tu propio motor de física 3D!). iTunes es un buen reproductor de música para escuchar melodías mientras destruyes un código.

    Por supuesto, si eres un principiante absoluto en la programación, entonces Xcode y cppreference no serán suficientes. Aquí hay un tutorial de C ++ para principiantes absolutos. Lenguaje C ++ – C ++ Tutoriales. Debería poder copiar los ejemplos en Xcode y jugar con ellos.

    Una vez que lo hayas hecho, necesitarás algunos proyectos de práctica. Podrías intentar hacer un juego de aventura de texto. Podrías comenzar realmente simple como este:

    Estás en un bosque con la capacidad de terminar el juego. ¿Qué eliges hacer?
    > terminar el juego
    ¡Acabas de terminar el juego! ¡Bien hecho!

    Y ábrete camino hasta Zork. Recuerde seguir refiriéndose a cppreference. Sigue practicando. Practicar es la única forma de aprender. Haga pequeños programas que hagan varias cosas diferentes.

    Si sigues practicando, antes de que te des cuenta, estarás diseñando niveles

    Para tu obra maestra gráfica

    En un soleado miércoles por la mañana.

    ¡Buena suerte en tu viaje!

    Como ha leído “Let Us C”, le recomendaría que elija un libro que le permita “ver” la programación como debe hacerse.

    Let Us C no es un libro muy bueno para estudiar programación. Incluso aunque sea lúcido, eso no compensa su falta de un buen estilo de programación y el uso de un compilador de C obsoleto (en realidad, fósil). Pero como ya has estudiado, no te pediría que olvides todo lo que contiene, pero definitivamente te sugeriría que estudies “El lenguaje de programación C” de Kernighan y Ritchie.

    Sé que sé que debes estar pensando que acabas de leer C y quieres aprender C ++, entonces ¿por qué estoy sugiriendo este retroceso?

    La cuestión es que una vez que ingrese a C ++ o cualquier otro lenguaje orientado a objetos, sería muy difícil regresar y aprender C (hasta que tenga una razón muy sólida). Este es el único momento que tiene cuando puede estudiar C y ver cómo funciona realmente y por qué ha existido durante tantos años.

    Al menos pasen 2-3 buenos meses en ello.

    Una vez que haya terminado, le sugiero que comience con C ++ acelerado: programación práctica con el ejemplo: Andrew Koenig, Barbara E. Moo, según lo recomendado por el usuario de Quora. Es un gran libro y te ayudará a acelerar con C ++.

    Después de eso, debe estudiar y resolver problemas de Excepcional C ++: 47 rompecabezas de ingeniería, problemas de programación y soluciones.

    Después de esto, puede ver la Guía y lista de libros de C ++ definitiva en Stack Overflow, que ofrece una lista exhaustiva de libros de C ++.

    El mundo es tu ostra, disfruta.

    Gracias por A2A.

    There are two paths for learning C++ from scratch.

    1. If you want to learn C++ for an interview, say under a month or refresh C++ concepts. Learn C++ is the best site to do so in my opinion.

    2. If you “really” want to learn C++ from scratch and have lots of spare time to do so, get Programming — Principles and Practice Using C++by Bjarne Stroustrup.

    On a side note learning a programming language is mostly about learning the syntax and concepts thoroughly, and then practicing the hell out of them. Start with simple problems and move onto more complex ones. I do recommend to go though Introduction to Algorithms by Thomas.H.Corman et al. to learn more about algorithms.

    Practice list of problems,
    1. Adding two numbers, printing them.
    2. Working with input, output. Simple menu driven programs to do addition, multiplication, division etc.
    3. Arrays – 1D, 2D , etc. (Matrix operations, String manipulation like palindrome, reversing words, etc.).
    4. Implement data structures from scratch eg stack, queue, linked list, binary tree, BST, heap.
    5. Implement common searching and sorting techniques (bubble sort, merge sort, heap sort, quick-sort, linear search, binary search)
    6. Work with recursion ( Fibonacci series, tree traversal etc.).
    7. Solve common Dynamic Programming problems like maximal sub-array sum, longest sub sequence, coin exchange and other variants of knapsack problem.
    8. Move onto templates and standard template libraries.
    9. Learn more about OOPS and design patterns, and finally pickup a pet project you wanted to do for long, implement it in C++.

    Stackoverflow has everything you need to get started with ‘c++’ tag wiki – Stack Overflow. Some of the resources from the above link are quoted here

    • ISO C++ website
    • C++ Reference
    • ISO’s C++ Standards Committee’s Papers
    • Guru of the Week: article series on high-quality, exception-safe C++ code
    • Revised Guru of the Week (for C++1y)
    • SGI’s Standard Template Library Programmer’s Guide
    • More C++ Idioms
    • Boost C++ Libraries (Stack Overflow boost tag)
    • Where do I find the current C or C++ standard documents?

    There are a plenty of books listed up on Stackoverflow The Definitive C Book Guide and List
    Also some are available on Links – Google Docs.

    Update: Found this on cpp subreddit Awesome C/C++ (A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-… stuff.)

    More Interesting