El camino de aprendizaje de C
1. Lista de libros que cubren el acceso al dominio de C
El lenguaje de programación C es una lectura obligada.
Se dice que "C Primer" es un libro de referencia introductorio que puede transformarlo de un programador de C o JAVA a un verdadero programador de C. Es una lectura obligada.
El lenguaje de programación C, el padre de C, es conocido como el trabajo del Maestro B. Después de leer "Introducción a C", debería poder saltarse capítulos y leer.
"Pensando en C", Internet dijo que la calidad de la traducción de la versión china de este libro es extremadamente pobre. Se recomienda leer la versión fotocopia y optar por leerla.
Effective c es similar a Effective java, habla sobre las mejores prácticas y los programadores deben leerlo.
Suplemento de libro c, más eficaz.
Biblioteca estándar C, puedes escribir C, pero no puedes usar la biblioteca estándar. Esto es como si los programadores de Java no pudieran usar el paquete java.util, es una lectura obligada.
STL efectivo, mejores prácticas para bibliotecas STL. Otra obra maestra del autor de Effective C, una lectura obligada.
Código fuente STL anotado, análisis del código fuente STL, este libro debe considerarse en profundidad/competente, elija leerlo.
La programación genérica y STL, conocida como programación en C, se ocupa de plantillas y genéricos, por lo que dominar los genéricos es imperativo.
"Plantilla C", experiencia en programación de plantillas C y reutilización de código, lectura obligada.
La excepción C, similar a la C válida, pertenece a las mejores prácticas y análisis de problemas. El libro enumera muchos escenarios de aplicación y códigos de muestra para que los lectores reflexionen y elijan.
Better C, un suplemento a este libro.
Estilo C excepcional, complemento del libro anterior.
"Conceptos internos del modelo de objetos C", con los libros anteriores como base, finalmente puedes terminar de leer este libro. Le mostrará el mecanismo de implementación subyacente del modelo de objetos C. Después de leer este libro, cualquier código C se verá como una corriente que fluye y debe leerse.
2. Excelente proyecto C/C de código abierto (leer el código)
Sistema operativo: kernel Linux LVS, aplicación Linux
Base de datos: Mysql, PostgreSQL
Editor: VM, GCC
Framework: OpenSip, SipProxy,
Net: ACE (Java Mina, Netty), TCP/IP, pila de protocolos HTTP.
Caché: Memcached, Redis,
Biblioteca: STL (paquete de utilidades java), Boost, Qt (UI),
Balance: Apache, Nginx p> p>
Glucosfingolípidos
Dirección: /Microsoft/GSL
Documentación de Boost
Dirección: /
Quart
p>Dirección: /Asio/
Little
Dirección: /w/cpp/links/libs
Además de estos proyectos de código abierto, También hay algunos cursos públicos gratuitos disponibles. Entonces aquí tienes un curso de C impartido por ACM Gold Medals de forma gratuita, puedes probarlo:
¡Aprender bien C es un trampolín para ingresar a una gran fábrica! Si tuviera esta clase, mi C no sería así.
¿Caducado?
Explicación de la sintaxis 3.C
Conceptos básicos del lenguaje
Detalles de variables, expresiones, declaraciones, punteros, matrices, control de procesos, funciones, organización de archivos, etc.
Mecanismo abstracto: programación orientada a objetos
Explicación detallada del mecanismo abstracto de C, incluida la encapsulación (clase), la herencia y el polimorfismo, la sobrecarga de operadores, los objetos de función, el manejo de excepciones, etc. .
Programación genérica de plantillas
Presenta en detalle el mecanismo de plantillas de C, las plantillas de clases, las plantillas de funciones y la especialización de plantillas.
4. C orientado a objetos en profundidad
4.1, de C a C
Referencias y sugerencias: ¿Por qué son importantes las referencias?
Palabra clave const: por qué es importante const
Espacio de nombres (espacio de nombres)
4.2 Objetos C en profundidad
Acerca de los objetos C
Objetos de tipos integrados, como objetos int y double, y objetos de tipos personalizados.
Definición de tipo de objeto
Clase y estructura de palabras clave
Miembros de clase: funciones miembro y miembros de datos
Miembros de datos estáticos
Control de acceso de miembros
El tamaño del objeto
En este puntero
¿Qué modifica constantemente y funciona el primer miembro?
Miembros de datos variables
Cuatro funciones miembro especiales: destructor, destructor, constructor de copias, operador=
Construcción de objetos y lista de inicialización
Destrucción de objetos
Copia de objetos
¿Cuándo es necesario definir explícitamente cuatro funciones especiales?
Ciclo de vida del objeto C
4.3. Sobrecarga de operadores
Investigación sobre el mecanismo de sobrecarga de operadores en C
Sobrecarga de operadores importante
p>
Operaciones aritméticas: , -, *, /,, , -,...
Operaciones relacionales: >, lt, ==, !=
Acceso de subíndice: []
Llamada a función: (), objeto de función
Conversión de tipo, constructor de un solo argumento y conversión implícita para evitar la conversión implícita - palabra clave explícita
Amigos y miembros
4.4. La base de la herencia orientada a objetos
Clase base y clase derivada
Sobre la estructura y deconstrucción de objetos
p >Función virtual, función virtual pura
Diseño de memoria y tabla de funciones virtuales de clases derivadas
Polimorfismo, tipos polimórficos y cómo incorporar el polimorfismo
Destrucción virtual, ¿por qué es importante la destrucción virtual?
4.5. Más temas sobre herencia.
Herencia múltiple
Herencia virtual y clases base virtuales
Acceso a clases base, herencia pública/protegida/privada
Casting directo a continuación : static_cast lt gt y conversión dinámica
Identificación de tipo en tiempo de ejecución (RTTI)
4.6, C y diseño orientado a objetos
Mecanismo de lenguaje C Proporciona programación orientada a objetos completa apoyo.
Herencia trascendental
Algunas reglas y patrones de diseño orientados a objetos
5.C Programación genérica y STL
5.1, Mecanismo de plantilla C
5.2, resumen STL
5.3 contenedor STL
5.4, iteración STL
5.5, algoritmo STL
5.6. Objetos digitales STL predefinidos
5.7.Adaptador STL
6.C Advanced Edition
"C Primer"
Lo último edición: la tercera edición (la cuarta edición se ha puesto en los estantes en el extranjero y algunas librerías nacionales en línea también están realizando pedidos por adelantado)
Adecuado para personas con una rica experiencia en C pero sin experiencia en C. Pero personalmente siempre pienso que este libro tiene rastros demasiado fuertes del lenguaje C, lo que puede no ser bueno para el aprendizaje de C.
c Programming Language/c Programming Language
Última versión: tercera edición especial
Conocido como TC PL, tiene una rica experiencia en otros lenguajes. (Algunas personas lo llaman "TCPL" para abreviar, pero es necesario distinguirlo de otro libro, "Lenguaje de programación C".)
"C básico"
"C acelerado"
p>
Estos dos libros son relativamente delgados y ambos son buenas opciones.
No he visto Accelerated C, pero desde todos los aspectos, vale la pena recomendarlo.
Todos los libros anteriores tienen sus correspondientes versiones en chino y la calidad de la traducción es buena. No es necesario que lea todos los libros anteriores, pero TC PL debe leerlos de todos modos.
"Effective C"
La última edición: la segunda edición (la tercera edición se ha puesto en los estantes en el extranjero y algunas librerías nacionales en línea también están realizando pedidos por adelantado) p>
denominado CE. ¡Una lectura obligada para los programadores de C! Muchas veces, cuando hablamos de la Biblia C, no nos referimos a TC PL, sino a ésta. "Tan pronto como se encuentre involucrado en el desarrollo de un proyecto C, no vaya a la librería y compre Effective C de Scott Mayer, y tal vez incluso un C más efectivo", escribió el práctico programador.
Estándares de codificación C: 101 reglas, directrices y mejores prácticas/Estándares de programación C.
Personalmente, creo que este libro debería ser un libro de escritorio imprescindible para los programadores de C. A continuación se muestra un resumen de series casi válidas y series de excepción. Aquí se reflejan las últimas plantillas y la experiencia inusual de la industria. El único defecto posible es que la pregunta "¿por qué haces esto?" no se explica lo suficiente a un novato.
Mi opinión es: si no comprende los términos, recuerde hacerlo; si comprende estos términos, creo que estará de acuerdo con las opiniones del libro. No creo que el contenido de este libro quede desactualizado al menos hasta 2009, y sus 101 preceptos serán ampliamente recitados.
Aún no sé su nombre corto. ¿Quizás "101" sería un candidato?
Cuando se trata de C eficaz, surgen otros tres libros:
"C más eficaz"
"C excelente"
"Better C".
El nuevo libro "Exceptional C Style" también es un buen libro que vale la pena leer.
No te pierdas ninguno de los libros anteriores.
Personalmente, se recomienda leer los libros anteriores en orden. Y lea estos libros una y otra vez en el futuro.
c /c Pensamientos en Pensamientos de Programación
Hay buenos y malos rumores sobre este libro y su versión china. No lo he leído con atención, así que no comentaré. Si estás realmente interesado, pruébalo.
Los siguientes libros están relacionados básicamente con el lenguaje en sí y pueden leerse en el siguiente orden.
C debe saber y ser conocido
Hace un año, este libro podría haber tenido mucho peso, pero quedó eclipsado por el estilo 101 y el inusual de C.
C Gothas: Cómo evitar problemas comunes en la codificación y el diseño/trampas de programación en C
Este es otro libro que no he leído pero que ha sido bien recibido.
Análisis del código fuente STL
Tan pronto como recibí el libro, lo "prestaron" y aún no lo he leído. Los amigos que hayan leído este libro pueden dar una evaluación adecuada.
7.C Conceptos básicos avanzados de estructura de datos
Esta es la parte más importante de todos los lenguajes de programación y una de las bases de la composición de programas.
Almacenamiento secuencial, almacenamiento en cadena, lista enlazada circular
Lista doble enlazada, pila (secuencia y cadena), cola (secuencia y cadena); Aplicación, conceptos básicos de árbol y recorrido, árbol binario;
Algoritmo de ordenación, algoritmo de unión, selección, inserción, rápido, Hill.
¿Conoces lo anterior?
8.C Desarrollo avanzado de interfaz UI
Dominar la arquitectura de la biblioteca de clases QT y el modelo de desarrollo de interfaz gráfica;
Dominar las habilidades de desarrollo QT, el mecanismo de mensajes y el procesamiento de gráficos
Dominar la programación de redes QT, el uso de UDP y TCP;
Dominar los métodos de procesamiento y serialización de archivos QT
Dominar las diferencias entre Windows, Linux, ios, tecnología de trasplante QT de Android bajo la plataforma.
9.C Servidor de red Unix/Linux avanzado
Dominar el modelo de desarrollo de la plataforma Unix/Linux;
Competente en el uso de llamadas al sistema;
Familiarizado con la gestión de memoria, programación de procesos y subprocesos de Unix/Linux;
Familiarizado con el modelo de desarrollo de servidores de red, competente en la escritura de programas de servicios de red TCP y UCP;
Maestro el modelo IO síncrono/asíncrono en Se utiliza en la programación de redes.
10.C Desarrollo avanzado de bases de datos
Dominar las habilidades prácticas del lenguaje SQL. ¿Cómo utilizar la base de datos Oracle, MySQL?
Si puede dominar las habilidades enumeradas anteriormente, tiene la capacidad de resolver problemas complejos y dificultades técnicas y puede desarrollar de forma independiente algunos módulos funcionales complejos, entonces es un honor para mí informarle que ha alcanzado el nivel intermedio. Ganar más de 10.000 yuanes es pan comido.
11.Referencia estándar C
Referencia C
Dirección: /w/
Estándar de codificación C
Dirección: /Cpp/CppCodingStandard.html
Estándar C
Dirección: /
Borrador del estándar C: Índice
Dirección: http: //eel.is/c draft/.
Siga la cuenta oficial de WeChat, como el lenguaje C y la programación cpp.