Cómo aprender bien el lenguaje c
1. Cómo aprender el lenguaje C
Aprender el lenguaje C no es algo que sucede de la noche a la mañana, pero no se necesitan diez años para dominarlo. Cómo aprender y dominar el lenguaje C al mínimo costo es el tema de este artículo. Tenga en cuenta que incluso el "coste mínimo" no es de ninguna manera un atajo. Se trata de lograr la mayor cantidad de resultados en el menor tiempo. También significa que debe pasar por un proceso arduo. 1. Debes leer buenos libros, de lo contrario es mejor no leer.
La primera pregunta que enfrenta todo principiante es: cómo elegir los materiales didácticos. Un buen comienzo es la mitad de la batalla y elegir un excelente libro de texto es la clave para obtener el doble de resultado con la mitad de esfuerzo. Desafortunadamente, las escuelas generalmente te asignan un libro de texto C terrible; afortunadamente, puedes elegir nuevamente.
El famoso profesor Tan Haoqiang ha publicado un libro "Programación en lenguaje C", que se dice que tiene una circulación de más de 4 millones. Hasta donde yo sé, muchas escuelas recomendarán este libro como C. libro de texto de idiomas. Aunque mi nombre (Tan Haoyu) es sólo una palabra diferente del del profesor, estoy extremadamente decidido a bloquear su libro. Este libro no está escrito para estudiantes de informática, sino para estudiantes de otras especialidades que necesitan realizar el examen de nivel de informática. Las principales deficiencias de este libro son: los programas de ejemplo son muy poco profesionales y no pueden enseñarte la forma de pensar que debes dominar en programación; el estilo de programación es bastante malo y te hará desarrollar el mal hábito de escribir códigos aleatorios; Demasiados errores, y una vez alguien me señaló cientos de errores en este libro, muchos de los cuales eran errores conceptuales críticos. Bien, no quiero decir mucho sobre este libro. Si está interesado, puede buscarlo en Baidu :)
"El lenguaje de programación C" de Kernighan y Ritchie (nombre traducido al chino: "). "Lenguaje de programación C") vale la pena leerlo. Se considera un clásico entre los clásicos, pero muchos contenidos de la versión anterior están desactualizados y lejos del lenguaje C estándar actual. Debe leer la última versión; de lo contrario, es mejor no leerla. Además, ni siquiera el libro más clásico y autorizado puede cubrirlo todo, por lo que es necesario tener a mano un "Manual de referencia del lenguaje C". El "Manual de referencia de C" es el "Manual de referencia de C". Es una descripción detallada del estándar del lenguaje C, que incluye detalles de la mayoría de las funciones de la biblioteca estándar de C. Puede considerarse como el mejor libro de referencia del lenguaje C. Por cierto, el último "Lenguaje de programación C" está revisado de acuerdo con el estándar C89, mientras que el "Manual de referencia del lenguaje C" describe el estándar C99. Puede haber algunas diferencias entre los dos. Se recomienda estudiar de acuerdo con el C99. estándar. También hay un libro "C and Pointers", que también está bastante bien escrito. El nombre en inglés es "Pointers on C", que enfatiza particularmente la importancia de los punteros, que es una característica de este libro. Sin embargo, este libro no es muy adecuado para principiantes. Si alguna vez ha aprendido el lenguaje C y tiene algunos conocimientos básicos del lenguaje C pero no es muy sólido, puede probar este libro. Creo que mientras entiendas los consejos, el lenguaje C ya no será un misterio.
Si has terminado de leer un libro de texto en lenguaje C y quieres ir más allá, entonces hay dos libros que debes leer. El primero es "C Traps and Pitfalls" (traducción china: "C Traps and Pitfalls"), un folleto muy fino con contenido muy interesante. Cabe señalar que este libro fue escrito hace más de veinte años y muchas de las deficiencias del lenguaje C mencionadas en él se han mejorado, pero no está mal entender algo de historia. Luego, puede desafiar la "Programación experta en C" (traducción china: "Programación experta en C"). Como sugiere el nombre del libro, este libro es bastante difícil. Una vez que lo lea detenidamente y lo comprenda a fondo, podrá escribir con confianza. reanudar "Competente en lenguaje C".
Recuerda un principio: no leas libros que aún no puedas entender. Es una pérdida de vida. Si no puedes entenderlo, entonces te deben faltar algunos conocimientos básicos necesarios. En este punto, debe analizar cuidadosamente qué contenido necesita agregar y luego ir a la librería para buscar libros sobre estos contenidos. Sólo completando los conocimientos básicos y luego volviendo a aprender obtendrás realmente el doble de resultado con la mitad de esfuerzo.
2. Unix/Linux o Windows, esta es una gran pregunta
Los diferentes entornos de programación crearán programadores con pensamientos diferentes.
La mayoría de los programadores de Windows dependen de entornos de desarrollo integrados, como Visual Studio, mientras que los programadores de Unix prefieren Makefiles y consolas. Obviamente, el entorno de desarrollo integrado es más fácil de usar. Para aprender el lenguaje C en Windows, solo necesita presionar algunos botones básicos de la barra de herramientas de Visual C++ para comenzar a escribir ¡Hola, mundo!, mientras que en Unix, necesita algunos conocimientos básicos de la consola. . Algunas personas pueden pensar que el entorno Unix es más simple, pero el poder del hábito es grande. Todos están familiarizados con las operaciones básicas de Windows, pero parece un poco antieconómico instalar un sistema Unix específicamente para aprender el lenguaje C.
Para un novato que sólo conoce las operaciones básicas de Windows y ni siquiera sabe qué es DOS, lo más importante es hacer algo interesante y significativo lo antes posible. Escribir un pequeño programa en lenguaje C es mucho más interesante que aprender ls, cat y otros comandos. Además, si queremos centrarnos en el lenguaje C en sí, tenemos que ignorar temporalmente algunas cosas, como el proceso de compilación y vinculación. método de escritura de Makefile, etc.
Por lo tanto, sugiero que los principiantes utilicen Visual C++ 6.0 (no VisualC++ .NET) o Dev C++ como entorno de aprendizaje principal, y no se enreden demasiado en el uso de habilidades IDE, porque en el futuro Definitivamente cambiaré al entorno Unix. Visual C++ 6.0 es fácil de usar e intuitivo de depurar, pero su compilador predeterminado no soporta bien el estándar C, mientras que Dev C++ usa el compilador gcc y tiene buen soporte para el estándar C99. Por cierto, muchos cursos universitarios de lenguaje C todavía usan Turbo C 2.0 como entorno experimental. Esto es bastante indeseable. La primera razón es que TC 2.0 casi no tiene soporte para el estándar C. La segunda razón es que los programas compilados por TC. 2.0 es de 16 bits, lo que causará grandes problemas a la hora de comprender programas de 32 bits en el futuro (por supuesto, usar cosas como djgpp puede hacer que TC 2.0 compile programas de 32 bits, pero eso es demasiado complicado).
Después de terminar de estudiar un libro de texto en lenguaje C, debe recurrir a la plataforma Unix para continuar aprendiendo. Casi todos los tutoriales avanzados en lenguaje C se basan en la plataforma Unix (como "Programación experta en C"). El proceso de transformación es doloroso. Debes enfrentarte a una variedad de comandos complicados, que son completamente diferentes a la forma de pensar en la plataforma Windows, pero el dolor vale la pena. Unix y C nacen juntos, y la forma de pensar y los hábitos de Unix están más en línea con la forma de pensar y los hábitos del lenguaje C. En Unix, puede encontrar innumerables códigos fuente excelentes para que pueda leer todo lo que desee. Puede ver fácilmente el manual en línea de una determinada función de la biblioteca y también puede ver el mejor estilo de codificación.
Se reduce a una frase Palabras: si es nuevo en el lenguaje C, se recomienda utilizar el sistema Windows y el entorno de desarrollo integrado. Cuando se prepare para trabajar duro para convertirse en un "maestro", primero recurra a la plataforma Unix.
3. Todo está listo, eres Dongfeng
Se ha seleccionado el libro, la configuración del entorno está completa, como dice el refrán, todo está listo, todo lo que debes es tuyo. esfuerzos. Comience desde el prefacio del libro y lea atentamente el libro de texto que tiene a mano. A muchas personas les gusta comenzar a leer directamente desde el primer capítulo. Este es un enfoque incorrecto. El prefacio es la introducción general del autor a todo el libro. El autor generalmente le dirá qué base necesita para leer el libro sin problemas, lo que puede ayudarlo a verificar si ya tiene los conocimientos básicos. Después de leer el prefacio, también debes examinar el índice para comprender la estructura general del libro y elaborar un plan de estudio para ti.
Al aprender el lenguaje C, debes prestar atención a cada detalle. Debes escribir el código de ejemplo en el libro tú mismo. Solo cuando el resultado de compilación y ejecución sea consistente con lo que se dice en el libro. Se considera que ha terminado de aprender un ejemplo. Si es inconsistente, simplemente busque las razones con atención. Además de los ejemplos en los libros, también necesita "crear" algunos ejemplos usted mismo. Por ejemplo, cuando aprende la precedencia de los operadores, puede escribir varias expresiones idénticas y agregar paréntesis en diferentes posiciones para ver qué comportamientos diferentes existen, como. *p++ y (*p)++, y como a = b == c, (a = b) == c y a = (b == c), etc.
Los ejemplos del libro que copió, los ejemplos después de la modificación y los ejemplos que "creó" deben clasificarse y guardarse cuidadosamente, y se debe escribir un breve comentario en el código fuente para explicar la intención del ejemplo.
Después de los ejemplos están los ejercicios. Sugiero a los principiantes que hagan todos los ejercicios de forma independiente y luego comparen los códigos de respuesta para ver qué deficiencias tiene su propio código y luego intenten modificar su código. Mucha gente no presta atención a los ejercicios, lo cual es un gran error, porque el autor suele explicar algunos principios importantes en los ejercicios en lugar de simplemente poner a prueba los conocimientos previos.
Quizás pienses que aprender de esta forma es demasiado lento, pero no lo es. Si estudias detenidamente, no tendrás que mirar atrás. Cuando aprendas más tarde y descubras que no lo entendiste antes, entonces la ganancia realmente no vale la pena perder. En términos generales, después de leer el libro completo, debe completar miles o incluso decenas de miles de líneas de código, ya sea que copie el libro exactamente o lo escriba por su cuenta, será una ventaja para continuar aprendiendo en el futuro. . Tómese como ejemplo cuando leí "Programación central de Windows" (solo leí 3/4 del contenido), además de copiar el código del libro, también escribí muchos ejemplos. Hay 5574 líneas en una oración. (usando código UNIX) estadísticas de la herramienta wc), después de muchos días, ya no puedo recordar la programación del sistema de Windows, pero mientras me tome unos minutos para desenterrar el código anterior y mirarlo, lo entenderé nuevamente. . Dicen que una buena memoria es peor que una mala escritura.
Lea atentamente, copie el código fuente con atención, complete los ejercicios de forma independiente y realice más experimentos, y finalmente deje todo el código atrás para convertirse en su propia experiencia y riqueza. Es un trabajo absolutamente duro, y definitivamente lo es. el doble de resultado con la mitad de esfuerzo. Por supuesto, este método solo es adecuado para aprender tecnologías que requieren dominio. Si no está aprendiendo el lenguaje C, debe analizar la situación específica.
Al final de la escritura, todavía hay un punto muy, muy importante que no se mencionó: el estilo de codificación. Desde el comienzo del aprendizaje, debes esforzarte por imitar el mejor estilo de codificación.
Después de leer este artículo, estoy muy conmovido. Creo que llevo muchos años aprendiendo lenguaje C y todavía no hay progreso, como se mencionó anteriormente. Se recomienda que el autor lo fije en la parte superior para que más personas puedan aprender el lenguaje C más rápido y mejor. El lenguaje C es la base de la programación y el lenguaje más profundo y flexible. Con la ayuda de este artículo, creo que todos tendrán un método de aprendizaje.