¿Qué materiales debo comprar para aprender los lenguajes jove, C y c++? Mejor dar dos títulos. . .
C++ es en realidad un superconjunto de C, pero en aplicaciones reales, los campos de aplicación de C y C++ son diferentes. Esto se debe a que sus ideas de diseño básicas son diferentes: C ++ es un lenguaje OOP con una serie de características como herencia, polimorfismo y enlace dinámico. La biblioteca STL proporciona una gran comodidad para el diseño OOP. Lo que hay que resolver es el problema del algoritmo y la estructura de datos, es decir, a través de un proceso, la entrada (o las condiciones ambientales) se procesa para obtener la salida (o se implementa el control del proceso (transacción)). Pero esto no significa en modo alguno que C esté obsoleto. Si nos fijamos en el ranking de lenguajes de programación, C siempre ocupa el primer lugar, mientras que C++ desciende año tras año porque hay demasiados competidores de programación orientada a objetos, como Java, C# y Python.
Personas importantes dijeron que para convertirse en un excelente talento en software informático, se deben tener al menos tres aspectos de conocimiento: dominar más de tres lenguajes (incluido el lenguaje de scripting shell, python), estructura de datos y algoritmo, sistema operativo.
En términos de información, C Primer Plus y C++ Primer Plus son muy adecuados para principiantes, con una introducción detallada de la sintaxis e ideas básicas de programación. Según mi experiencia, el muy apreciado manual de C++ es difícil de entender para los principiantes. Es mejor leerlo con cierta base. Es fácil dominar la sintaxis básica de estos dos lenguajes, pero cuando empieces a escribir un buen programa, descubrirás que la sintaxis es el paso más sencillo para escribir un programa. Al igual que la alfabetización y las obras literarias, están a miles de kilómetros de distancia. A medida que vaya acumulando algo de experiencia en la escritura de programas, podrá leer C++ efectivo o Reflexiones sobre C++, Errores y trampas de C, C y punteros. Esto puede ayudarle a romper con muchos malos hábitos de programación, así como con muchas partes más profundas del diseño de C++. Más abajo, debe tener cierta comprensión de la arquitectura de diseño del programa (debe basarse en escribir una gran cantidad de código y debe poder comprender al menos decenas de miles de líneas). Puedes ver Patrones de diseño: la base del software reutilizable orientado a objetos. Además, existe la refactorización de código, refactorización: mejorar el diseño del código existente.
Por supuesto, esto es sólo para la parte del idioma. Como acabo de decir, el núcleo del progreso real no es el lenguaje, sino la estructura de datos y el algoritmo, porque lo que en última instancia desea implementar son las necesidades y funciones del usuario, en lugar de mostrar su código. Al igual que la escritura, las palabras son sólo herramientas para expresar sentimientos y opiniones, y un lingüista nunca se convertirá en escritor. Así que asegúrese de aprender algoritmos y estructuras de datos. En cuanto a las estructuras de datos, la más popular en China es la "Estructura de datos" (versión en lenguaje C) escrita por Yan Weimin. Es un gran desafío entenderlo todo porque todos los estudiantes de informática saben que la estructura de datos es un curso muy difícil. El algoritmo es algo muy abstracto y la mayoría de los programadores no pueden comprender realmente sus misterios incluso si han escrito código durante muchos años, porque esto generalmente requiere una base matemática profunda. Si está interesado, puede leer "Introducción a los algoritmos".
Finalmente, para convertirte en un verdadero maestro de la programación, debes tener un conocimiento profundo de todo el sistema informático (incluido el hardware y el software). Es mejor leer muchos libros sobre informática, "Principios de compilación", "Comprensión profunda de los sistemas informáticos", etc.