Red de conocimiento informático - Material del sitio web - ¿Cómo aprender C rápidamente?

¿Cómo aprender C rápidamente?

Aprendí c en mi primer año de universidad y lo he estado usando desde que comencé a trabajar.

1. Lista de libros desde los primeros pasos hasta el dominio de C

"Lenguaje de programación C" es una lectura obligada

"C Primer" se conoce como una introducción libro Este libro de referencia puede convertirlo de un programador de C o JAVA en un verdadero programador de C. Es una lectura obligada.

"Lenguaje de programación C", el padre de C, es conocido como el libro padrino de nivel B. Después de leer "Introducción a C", debería poder omitir la selección de capítulos.

"C Thinking", Internet dijo que la calidad de traducción de la versión china de este libro es muy mala, se recomienda mirar la versión fotocopiada y optar por leer.

"Effective c", similar a "Effective java", habla sobre las mejores prácticas y es una lectura obligada para los programadores.

“Más Efectivo C”, complemento del volumen anterior.

"Biblioteca estándar C", ¿qué debo hacer si puedo escribir en lenguaje C pero no puedo usar la biblioteca estándar? Esto es lo mismo que los programadores de Java que no saben cómo usar el paquete java.util y deben leerlo.

"Effective STL", las mejores prácticas de las 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, por lo que es una lectura opcional.

"Programación genérica y STL", cuando se trata de programación en C, hay que lidiar con plantillas y genéricos, por lo que es imperativo dominar los genéricos.

"Plantilla C", programación de plantillas C, experiencia de reutilización de código, lectura obligada.

"Exceptional C", similar a "Effective C", trata sobre las mejores prácticas y el análisis de problemas difíciles. El libro enumera muchos escenarios de aplicación y códigos de muestra para que los lectores reflexionen y, opcionalmente, lean.

"Better C", complemento del volumen anterior.

"Estilo C excepcional", un suplemento del volumen anterior

"Inside The C Object Model", con los libros anteriores como base, finalmente puedes leer este libro. Le lleva a través de la implementación subyacente del modelo de objetos C. Después de leer este libro, cualquier código C se volverá fluido y fluido. Es un libro de lectura obligada.

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

Compilador: VM, GCC

Marco: OpenSip, SipProxy,

Red: ACE (Java Mina, Netty), TCP/IP, pila HTTP

p>

Caché: Memcached, Redis,

Biblioteca: STL (paquete de utilidades java), Boost, Qt (UI),

Equilibrio: Apache, Nginx

GSL

Dirección:/microsoft/GSL

Documentación de Boost

Dirección:

Qt

Dirección: /Asio

POCO

Dirección: /w/cpp/links: /w/cpp/links/libs

Además de En estos proyectos de código abierto, también puedes encontrar algunos cursos públicos gratuitos, así que aquí tienes un curso gratuito de C impartido por un conferenciante con medalla de oro de ACM. Puedes probarlo:

Aprender C es un trampolín hacia lo grande. ¡fábricas! Si este curso hubiera estado disponible en aquel entonces, mi C no sería lo que es ahora

¿Expirado?

3. Explicación detallada de la sintaxis de C

Conceptos básicos del lenguaje

Presenta variables, expresiones, declaraciones, punteros, matrices, control de flujo, funciones, organización de archivos, etc. . en detalle.

Mecanismo abstracto: programación orientada a objetos

Explicación detallada del mecanismo abstracto de C, encapsulación (clase), herencia, polimorfismo, sobrecarga de operadores, objetos de función, manejo de excepciones, etc.

Plantilla - Programación general

Presenta en detalle el mecanismo de plantillas de C, plantillas de clases, plantillas de funciones, especialización de plantillas, etc.

4. C orientado a objetos en términos simples

4.1. De C a C

Referencias y sugerencias: por qué las referencias son importantes

Palabras clave de Const: por qué es importante const

Espacio de nombres

4.2. Acerca de los objetos C

Tipos de objetos integrados, como int, objetos dobles y objetos personalizados tipos

Definición de tipos de objetos

Palabras clave clase y estructura

Miembros de clase: funciones miembro y miembros de datos

Miembros de datos estáticos

Control de acceso de miembros

Tamaño del objeto

Acerca de este puntero

función miembro onst, ¿qué modifica const?

Can Miembros de datos variables

4 funciones miembro especiales: constructor, destructor, constructor de copia, operador=

Construcción de objetos, lista de inicialización

Destructor de objetos

Copia de objeto

Cuándo es necesario definir explícitamente estas 4 funciones especiales

Ciclo de vida del objeto C

Sobrecarga del operador

Acerca del mecanismo de sobrecarga de operadores en C

Sobrecarga de operadores importantes

Operaciones aritméticas: , -, *, /, , , --, ..

Operaciones relacionales: gt;, lt;, ==, ! =

Acceso a subíndice: [

Llamada a función: (), objeto de función

Conversión de tipo , constructor de un solo parámetro y conversión implícita, además de bloquear la conversión implícita: palabra clave explícita

Amigos y miembros

4. Orientado a objetos. orientado - herencia

Clase base y clase derivada

Más discusiones sobre construcción y destrucción de objetos

Funciones virtuales, funciones virtuales puras

Memoria diseño de clases derivadas, tablas de funciones virtuales

Polimorfismo, tipos de polimorfismo, cómo incorporar el polimorfismo

Destructor virtual, por qué el destructor virtual es importante

4.5, más información sobre herencia

Herencia múltiple

Herencia virtual y clase base virtual

Acceso a clase base, herencia pública/protegida/privada

Descargar : static_castlt;gt; ydynamic_castlt;gt;

Identificación de tipo en tiempo de ejecución (RTTI)

4.6, C y diseño orientado a objetos

El lenguaje C El mecanismo proporciona soporte completo de programación orientada a objetos

Además de herencia

Varias reglas de programación orientada a objetos y patrones de diseño

5.C Programación general y STL

5.1.C Mecanismo de plantilla

5.2.Resumen STL

5.3 Contenedor STL

5.4, iteración STL

5.5, algoritmo STL<. /p>

5.6, anteponiendo y definiendo objetos numéricos STL

5.7, adaptador STL

p>

6 C Primer

C Primer

Última versión: 3.ª edición (la 4.ª edición se ha lanzado en el extranjero). La cuarta edición se ha puesto a la venta en el extranjero y está disponible para pedidos por adelantado en algunas librerías nacionales en línea)

Adecuado para personas que tienen mucha experiencia en lenguaje C pero carecen de experiencia en C. Sin embargo, siempre he pensado que este libro contiene demasiado contenido en lenguaje C, lo que puede no ser propicio para aprender C.

"Lenguaje de programación C"

Última edición: 3ª edición especial

"TC PL" es adecuado para lectores con amplia experiencia en otros lenguajes.

(También conocido como "TCPL", pero debe distinguirse de otro libro "El lenguaje del programador C")

"Essential C"

"Accelerated C"

Estos dos libros son relativamente delgados y ambos son buenas opciones. Personalmente no he leído Accelerated C, pero considerando todo, es completamente recomendable.

Todos los libros anteriores están disponibles en chino y la calidad de la traducción es muy buena. Puede que no sea necesario leer todos los libros anteriores, pero TC PL debería leerlos de todos modos.

C efectivo

La última versión: segunda edición (la tercera edición se ha puesto a la venta en el extranjero y se está reservando en algunas librerías nacionales en línea)

La abreviatura de EC. ¡Una lectura obligada para los programadores de C! Muchas veces, cuando decimos Biblia C, no nos referimos a la TC PL, sino a ésta. El libro "The Pragmatic Programmer" escribe: "¡Tan pronto como te encuentres trabajando en un proyecto de C, corre (no camines) a la librería y compra "Effective C" de Scott Mayer y tal vez "More Effective C"!

"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 imprescindible para los programadores de C. libro. Esto resume prácticamente todo lo que hay en la serie Eficiencia y Anormalidad. Aquí se reflejan las últimas plantillas, anomalías y experiencia en la industria. El único inconveniente posible es que el libro no explica suficientemente el "por qué" para los principiantes.

Mi punto es: si no comprende estos términos, simplemente memorícelos; si los comprende, supongo que estará de acuerdo con las opiniones de este libro. No creo que este libro quede obsoleto al menos hasta 2009, y los 101 mandamientos que establece serán ampliamente recitados.

No estoy seguro de cuál es su abreviatura, ¿tal vez "101" sea un candidato?

Al mencionar "C efectivo", han aparecido tres libros más:

C más efectivo

C excepcional

C más excepcional.

El nuevo libro "Extraordinary C Style" también es un buen libro que vale la pena leer.

Los libros anteriores no te los puedes perder.

Personalmente recomiendo leer los libros anteriores en orden. Además, lea estos libros una y otra vez en el futuro.

Pensar en C

Este libro y su versión china han tenido una amplia circulación, tanto buena como mala, por lo que no lo he leído y no comentaré sobre él, pero si realmente Si estás interesado, también puedes intentarlo.

Los siguientes libros tratan básicamente del lenguaje en sí y pueden leerse aproximadamente en el siguiente orden.

C Essentials

Hace un año, este libro debería haber sido un peso pesado, pero fue eclipsado por 101 y Exceptional C Style.

"C Gotchas: Cómo evitar problemas comunes en codificación y diseño"/"C ​​Programming Gotchas"

Este es otro libro que no he leído y que ha sido bien recibido <. /p>

"Análisis de código fuente STL"

Alguien me "tomó prestado" este libro cuando lo recibí por primera vez, así que aún no lo he leído. Si lo has leído, puedes hacerlo. dale una evaluación adecuada.

7.C Conceptos básicos de estructuras de datos avanzadas

Esta es la parte más importante para aprender en todos los lenguajes de programación y también es la base de la composición del programa. . uno.

Almacenamiento secuencial, almacenamiento encadenado, lista circular enlazada;

Lista doble enlazada, pila (secuencial y encadenada), cola (secuencial y encadenada);

Aplicación de pila, 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, el mecanismo de mensajes y los gráficos de QT procesamiento

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 QT en Windows, Linux, iOS , Tecnología de trasplante bajo diferentes plataformas Android.

9.C Servidor de red Unix/Linux avanzado

Dominar los métodos de desarrollo de plataformas Unix/Linux;

Competente en el uso de llamadas al sistema;

Competente en gestión de memoria, procesos y programación de subprocesos de Unix/Linux;

Familiarizado con los métodos de desarrollo de servidores de red, competente en la escritura de programas de servicios de red TCP y UCP;

Familiarizado con servidores de red Métodos de desarrollo, competente en la escritura de programas de servicios de red TCP y UCP.

Domina el uso de modos IO síncronos/asincrónicos en la programación de redes.

10.C Desarrollo Avanzado de Bases de Datos

Dominar las habilidades prácticas del lenguaje SQL y el uso de bases de datos Oracle y 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 más complejos, entonces es un honor para mí informarle que ha alcanzado el nivel intermedio. Nivel. Nivel, un salario de más de 10,000 es pan comido para ti.

11.Referencia estándar C

Referencia C

Dirección: /w/

Estándar de codificación C

Dirección: /Cpp/CppCodingStandard.html

Estándar C

Estándar C

Dirección: /w/

Dirección: /w/

Estándar C

Dirección: /w/

Estándar C

Dirección:

C Borrador Estándar:

Dirección: http://eel.is/c draft/

Si necesitas información envíame un mensaje privado