La Red de Conocimientos Pedagógicos - Currículum vitae - El camino de aprendizaje de C

El camino de aprendizaje de C

Estudié C en mi primer año y he estado usando C desde que comencé a trabajar.

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>

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)

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.