¿Qué libros debo leer para aprender el lenguaje C?
Tres personas hablando sobre libros en C recomendados por "Programmer"
Moderador: Xiong Jie (Transparent), editor de la revista "Programmer", miembro de C-View
Invitado: Meng Yan (Nightmare), trabaja en el Departamento de Desarrollo de Aplicaciones de la División de Dispositivos Portátiles de Lenovo y es miembro de C-View. Co-tradujo el libro "C Standard Library" con el Sr. Hou Jie
Jin Yin (Diablo), director de tecnología de Shanghai Tianyu Company, publicó por entregas una serie de artículos sobre "El país de la libertad y la prosperidad" en " Programador"
Transparencia: "¿Qué libro debo utilizar para empezar a aprender C?" Esta es la pregunta más frecuente. Pero, ¿qué libro es el mejor lugar para empezar? Parece difícil encontrar la respuesta. "C Primer" es demasiado denso, "Effective C" tiene requisitos más altos para los lectores y "Essential C" a menudo es criticado como "demasiado superficial".
Para decirlo sin rodeos: no hay una solución milagrosa. Es imposible aprender C de un libro. Un amigo me preguntó cómo aprender C. Le sugeriría que primero buscara un libro de estructura de datos, hiciera todos los ejercicios en C y luego leyera "C efectivo". Myan suele decir "hay que desarrollar buenos hábitos en las primeras etapas del aprendizaje", algo con lo que no estoy de acuerdo.
Personalmente, creo que "Essential C" es adecuado como material didáctico, "C Primer" es adecuado como libro de referencia y "Effective C" es adecuado como lectura extracurricular.
Diablo: Me arrepiento de haber comprado "C Primer". Porque desde mi punto de vista personal, sus funciones y utilidad básicamente se superponen con "El Lenguaje de Programación C". Por supuesto, sigue siendo muy bueno para los principiantes. Sin embargo, "C Primer" es demasiado grueso, lo que hace que la lectura sea extremadamente inconveniente y, en segundo lugar, lleva mucho tiempo aprender el sistema. Para la era actual de comida cada vez más rápida, hay muchos lugares donde no es adecuada, pero puede usarse como libro de referencia para principiantes. Ahora se lo he prestado a otra persona por el precio de una CPU K3, con la esperanza de que mi colega pueda beneficiarse de él.
Si ya tiene una base de C, le recomiendo leer libros nacionales, como "C University Tutorial (Segunda edición)" de Qian Neng. (Si no tiene conocimientos básicos de C, debería leer el lenguaje C de Tan Haoqiang). Este libro explica C con relativa claridad y hay muchos ejercicios que vale la pena hacer, especialmente las dos últimas partes de estructura y unión. Algunos de los algoritmos son relativamente lentos y engorrosos (como los algoritmos de recorrido de árbol y lista vinculada). Los lectores pueden intentar modificar estos ejemplos como prueba resumida final del lenguaje C.
Pesadilla: Esta pregunta me recuerda la situación de hace cuatro o cinco años. La mayoría de las personas que hoy saben un poco sobre C comenzaron a aprender C en esos pocos años. En aquella época no existía ningún concepto de marca. Busca un libro C en la librería. Si te parece claro, cómpralo. Recuerdo que en ese momento, los libros escritos por los profesores Wan Yankai, Zhang Guofeng y Mai Zhongfan fueron muy elogiados. Mi primer libro personal sobre C fue un libro de Greg Perry. Pensándolo bien hoy, en realidad era un tutorial de lenguaje C bajo el lema C. El libro que tuvo mayor impacto en mí fue un libro publicado por National Defense Science and Technology Press. No recuerdo el título. El autor fue Stephen Blaha.
Transparencia: todavía recuerdo que una vez critiqué un libro en C publicado por la Universidad de Beihang. La palabra clave clase no aparecía en todo el libro. Para ser honesto, ese libro solo presenta el uso del lenguaje C y la biblioteca iostream, y no puede contarse como C en absoluto. En ese momento, un libro que recomendaba a menudo era el tutorial de C del profesor Zhang Songmei de la Universidad de Ciencia y Tecnología Electrónica de China. No hay muchos problemas con ese libro hasta hoy. El único inconveniente es que muchas cosas están desactualizadas debido a su antigüedad. Para un libro técnico, "obsoleto" es lo más inaceptable.
En general, las personas que usaban C en ese momento eran realmente "personas ciegas que tocaban al elefante".
Sin embargo, esto también tiene la ventaja de que puedes entender muchos detalles de C, y será más fácil de entender cuando leas libros clásicos en el futuro, por supuesto, la desventaja es que el concepto no está claro y ni siquiera lo entiendes; Sepa cuál es la diferencia entre C y Visual C o Borland C.
Pesadilla: A lo largo de la década de 1990, la mayoría de la gente tenía una comprensión engañosa de C. Inicialmente era equivalente a Borland C, y posteriormente fue equivalente a Visual C y MFC. En términos generales, los libros bajo la marca BC y VC se venden bien y la gente piensa que es C. Tengo relativa suerte. Aunque el libro de Blaha no es excelente desde la perspectiva actual, el enfoque básico es correcto. Tal vez sea porque el libro original es un material de capacitación para programadores de UNIX, por lo que no me permitió comprender "C == VC" desde el principio.
De hecho, hasta 1996, quienes trabajaban con ordenadores allí sólo eran Borland C. Cuando salió VC 4.0, la situación cambió de repente. Después del lanzamiento de VC5 en 1997, los libros de MFC estaban abrumadoramente disponibles en las librerías, y quienes estudiaron MFC mantuvieron la cabeza más alta que los demás. Pero ahora parece que la mayoría de los libros de MFC en ese momento eran material de tercera categoría. Hubo un tiempo en el que pensé que muchos de esos programadores estaban equivocados. La razón fundamental es el relativo aislamiento.
Transparencia: Creo que el valor de un libro tiene dos aspectos: primero, te enseña técnicas prácticas; segundo, te incita a pensar. Para un libro que presenta cómo usar VC (o MFC), no quiero que me haga pensar en absoluto, por lo que debo exigir que sea técnicamente perfecto y perfecto. Cuando comencé a usar VC, el primer libro que compré fue "VC Technology Insider" (cuarta edición) traducido por el maestro Pan Aimin. No me dejé engañar por esas "cosas de tercera categoría".
Pesadilla: En 1999, Machinery Industry Press comenzó a publicar la "Serie de Ciencias de la Computación" y la primera edición de "Thinking in C" fue muy bien recibida. De hecho, nunca pensé que este libro fuera muy bueno, a pesar de que ganó un premio. Sin embargo, todos tenemos que admitir que este libro estableció un concepto de marca por primera vez en el campo de los libros C. Muchos principiantes comenzaron a comprender que no todos los libros que compran son iguales. Después de eso, está la segunda edición de "Explicación en profundidad de MFC (segunda edición)" en 2000, y el artículo "Sistema C/OOP" publicado por el Sr. Hou en "Programador", junto con los cambios en todo el entorno. El concepto de marca está profundamente arraigado en los corazones de las personas y el mercado de los libros C finalmente ha comenzado a sincronizarse gradualmente con el mundo.
Mirando hacia atrás, siento que la era de elegir libros introductorios con temor ha pasado. Los principiantes de C de hoy pueden comprar libros con buena reputación y lectura fluida con seguridad. Luego está el problema de ser demasiado grandes. . También hay algunos programadores que han estudiado C durante varios años, pero cuando ven algunos libros nuevos publicados hoy, no se sienten familiarizados. El Sr. Hou solía decir que "todo aquel que camina debe dejar huellas". Los llamados "desvíos" pueden no ser algo malo.
En cuanto a la lista de recomendaciones concretas, es difícil generalizar. En resumen, en mi impresión, "Essential C", "C Primer" y el tutorial de C impartido por Qian Neng son todos buenos. Algunas personas incluso leen "El lenguaje de programación C" de Bjarne Stroustrup tan pronto como empiezan a leerlo. Siempre que les guste, no tiene nada de malo.
Transparencia: Estoy de acuerdo contigo. En cualquier caso, la programación es un conocimiento muy práctico. Si desea tener una comprensión profunda del modelo de objetos de C, la mejor manera es escribir una serie de programas para ver los resultados; si desea aprender programación orientada a objetos, solo puede aprender de los proyectos. Para los principiantes, la mejor manera de aprender es seguir escribiendo programas, escribir programas realmente útiles y, cuando tenga problemas, buscar libros. Entonces, naturalmente, sabrá qué libro es bueno y cuál es malo. Sin embargo, dudo que nuestro sistema educativo pueda ofrecer a los estudiantes de las universidades tales oportunidades de aprendizaje.
En mi experiencia, existen dos umbrales para aprender C: comenzar y usarlo. No entiendo C en absoluto. Este es un umbral, pero siempre que tengas un libro introductorio adecuado, puedes cruzarlo rápidamente. No es fácil utilizar realmente C. Especialmente para los estudiantes, la mayoría de las cosas con las que entran en contacto son "juguetes" y es difícil tener oportunidades prácticas. Por eso, a menudo veo gente preguntando "¿Qué puede hacer C?". Esta es una pregunta problemática en el aprendizaje de C. Todos hemos estado programando en C durante mucho tiempo antes de leer algunos libros verdaderamente clásicos, y es precisamente porque tomamos un largo desvío que llegamos a conocer los clásicos de estos libros. Los llamados desvíos, creo, también son una acumulación necesaria. Incluso si miras "Essential C" y "C Primer" desde el principio, me temo que será difícil conseguirlos si no tienes dos o tres años.
Diablo: Hay dos dichos muy razonables. Uno es lo que dijo mi profesor de lenguaje C en la universidad: "Escribir un programa es peor que copiar un programa". El otro es lo que dijo un internauta: "El buen diseño viene". aprendiendo de los demás." , el diseño genial proviene del plagio." Para mí, un crítico racional, estas dos frases no son adecuadas. Pero no importa desde qué perspectiva, para los principiantes, plagiar las obras de los maestros es el camino más corto hacia el éxito.
Personalmente creo que los principiantes en C, primero deben determinar la dirección de las funciones que se utilizan principalmente en su campo profesional. Debido a que C tiene tantas funciones, es básicamente imposible que los principiantes tengan éxito si quieren hacer demasiadas cosas. El paradigma de programación de C se puede dividir básicamente en tres direcciones: ADT PP, GP y OO. Para el paradigma ADT PP, el principal problema para los principiantes no es aprender C, sino aprender a utilizar C. Para estos principiantes, varios libros nacionales son relativamente claros y están en línea con los hábitos chinos, como "C Language Tutorial" de Tan Haoqiang y "C Language University Tutorial" de Qian Neng. Recomiendo el primero de estos dos libros porque he estado estudiando este durante un año. Muchos de los programas de este libro pueden ser plagiados y estos programas pueden procesarse y mejorarse. Por ejemplo, en el capítulo sobre estructura, el algoritmo que proporciona para usar struct para implementar listas enlazadas y árboles binarios es bastante aburrido. Los principiantes que aprenden ADT PP pueden intentar modificar estos dos programas después de comprender a fondo este libro. Además, la segunda edición de este libro toca un poco las "clases". Los principiantes que aprenden ADT PP pueden evitar que sus ideas se vean interrumpidas por algunas características patentadas en OO, lo que es de gran beneficio para escribir programas con una jerarquía de clases plana, sin herencia y sin polimorfismo.
Transparencia: Parece que prefieres libros escritos por profesores nacionales. Hay una mala tendencia en la sociedad actual: cuando alguien es elogiado, alguien es alabado hasta el cielo, y cuando alguien es humillado, alguien es degradado al suelo. Es como tratar el libro del profesor Tan. En los últimos años, se consideró un clásico, pero en los últimos años mucha gente lo ha criticado enérgicamente. Cuando aprendo C, estoy un poco "defiendo cosas extrañas". Siempre siento que los principiantes deberían ver "Essential C". Creo que esta visión también es unilateral.
Diablo: Por supuesto, también vale la pena ver "Essential C". Pero personalmente creo que este libro no es tan bueno como el "Tutorial de lenguaje C" de Tan Haoqiang. Las razones principales son: en primer lugar, se abordan todas las características de C, pero no en profundidad. Después de leerlo, se sentirá poco entusiasta y no tendrá dirección. En segundo lugar, hay muy pocos ejemplos que puedan copiarse y usarse; referencia. Hay muchos problemas interesantes en el "Tutorial del lenguaje C", como el mono comiendo melocotones, la Torre de Hanoi, etc. Estos ejemplos son buenos ejemplos para aprender programación para personas que recién se están involucrando en la programación en lenguaje C / C. "Essential C" solo se puede utilizar como libro de transición para aprender las funciones de C después de comprender a fondo los dos primeros libros. Permita que los lectores comprendan realmente qué es la programación en C y cuál es la diferencia con la programación en C.
Transparencia: encontré un fenómeno muy interesante: a los principiantes a menudo les gusta preguntar "qué libro es mejor", lo que me desconcierta mucho. Esto es un poco como si una persona que acaba de aprender a jugar baloncesto preguntara "¿Quién es mejor, Wang Zhizhi o Kobe?". Por supuesto que Kobe es mejor. Pero si quieres aprender a jugar baloncesto, estas dos personas están muy, muy cualificadas para enseñarte. Puedes aprender muy bien de cualquiera de quien aprendas; la clave no es qué profesor eliges, sino cuánto esfuerzo pones en aprender. él. .
Transparencia: Volver al tema original. Una vez que haya aprendido la sintaxis de C y pueda comprender el código C, debe tener algunos libros que lo guíen para avanzar (o que lo orienten). Creo que "Patrones de diseño" es muy bueno y permite a los lectores ver algunos usos sutiles. Pero como siempre digo, los patrones traen tantos problemas como buenos, si no más. Además, los problemas con el propio C hacen que el uso del patrón GoF en C sea más problemático.
Pesadilla: El libro "Design Patterns" es absolutamente indispensable, y tanto la versión china como la inglesa son indispensables. Al principio leí la versión china, y para ser honesto no podía entenderla, pero no pensé que la traducción fuera mala, así que pensé que tal vez era porque el texto original era difícil de entender y mi nivel era limitado. . Por eso siempre quiero encontrar algunos libros más sobre patrones para leer. Más tarde encontré algunos libros que tenían buena reputación, pero la calidad era diferente. Después de una comparación, el libro "Design Patterns" seguía siendo el más clásico y el más divertido de leer. Después de que salió la versión en inglés, comparé las dos versiones y las entendí mucho mejor. Ahora siento que, de hecho, en lo que respecta a los patrones de diseño, es muy bueno entender este libro con claridad y no es necesario perder mucho tiempo buscando otros libros. Ahora siempre tengo este libro en mi bolso y lo llevo conmigo dondequiera que vaya, así siempre estoy preparado.
En cuanto a los efectos secundarios y posibles desventajas de los patrones de diseño, tengo mucha experiencia. Pero eso es todo, pensemos en ello, ¿bajo qué circunstancias se pueden utilizar bien los patrones de diseño? Una es dejarse guiar por personas con experiencia. Por ejemplo, si Robert Martin lidera el equipo y usted utiliza el patrón de diseño incorrecto en alguna parte, él lo señalará y le dirá qué está mal aquí y qué tipo de desventajas causará en el futuro. . Para él, una rica experiencia práctica es suficiente para respaldar su diseño "predictivo". Pero la mayoría de la gente no tiene esta capacidad, por lo que tenemos que tomar el segundo y tercer camino, que son el diseño "exploratorio" y el diseño de "reconstrucción". Cuando te encuentras con un problema, sientes que es apropiado usar un determinado modelo, por lo que lo usas con valentía. El éxito es acumular experiencia. Si descubres que algo no está bien y algo sale mal, debes cambiarlo. También está acumulando lecciones. Esto se llama "prueba". En cuanto a la refactorización, debe considerarse como el método de ingeniería más organizado y exitoso. Primero resuelva el problema "rápido y sucio" y exponga todos los arrecifes ocultos, y luego utilice el modelo apropiado para optimizar el diseño en función de la situación real. Ahora tanto XP como UP otorgan gran importancia a la refactorización, y UP fomenta iteraciones especiales para la refactorización en las etapas de Elaboración y Construcción. Entonces, si organiza un desarrollo rápido de software, por supuesto, estará más inclinado a seguir este camino: la tasa de éxito.
Transparencia: Hablando de refactorización, por cierto, permítanme hablar sobre la influencia del libro "Refactoring". Desde la perspectiva del proyecto en sí, no hay nada de malo en su llamado "diseño de reconstrucción". Pero los desarrolladores chinos (incluyéndome a mí) tendemos a ser más impulsivos y a creer más fácilmente en la existencia de soluciones milagrosas. Hubo un momento en que probé el método de refactorización en Java y luego lo probé en C. Se descubrió que el proceso de refactorización, que era muy rápido en Java, se ralentizaba en C. La razón es que las restricciones de C y Java son diferentes. Tome los casos exitosos en Java y aplíquelos directamente a C. Sería extraño si no fallara.
Entonces, debo decir: "Refactoring" es un libro valioso. Pero para los programadores de C, su valor es hacerles pensar en la viabilidad de este enfoque. Si un programador de C no tiene intención de migrar a Java, entonces debo decirle: El libro "Refactoring" no es para que usted lo use de acuerdo con él, ni siquiera para que crea en él. Para los programadores de C, sólo se puede confiar en el Capítulo 13 del libro completo "Refactorización", y otras partes deben tratarse con gran precaución.
Pesadilla: Me gustaría decir algunas palabras más sobre el método de "pruebas". Creo que las "pruebas" también son indispensables para el desarrollo personal. No da miedo chocar contra una pared y es de alto nivel. ¿La gente no le tiene miedo? Si falla una vez, sabrá qué problemas potenciales hay en este modelo. La próxima vez que lo use, verá algunos movimientos más, como jugar al ajedrez. Cuantas más colisiones tengas, mejores serán los números de las carreteras.
No sé si tienes esta sensación: has usado el patrón incorrecto y has sufrido una pérdida. Luego regresas y revisas "Patrones de diseño" y ves que otros han señalado este problema. Hace mucho tiempo, pero solo hay unas pocas. Una frase, que parecía seca al principio, ahora siento que le habla al corazón. La imagen de GoF inmediatamente se vuelve más alta y tiene un aura que me hace sentir emocionado y arrepentido.
Transparencia: Mirando hacia atrás, aprecio aún más el "Diseño de aplicaciones C orientadas a objetos usando el método Booch" que myan me recomendó. Este libro puede ayudar a los programadores de C a aclarar su pensamiento y desarrollar hábitos, pero es una lástima que no se haya introducido en China. En comparación con la posterior serie de libros UML con un fuerte sabor comercial, creo que la explicación de este libro sobre la orientación a objetos es incisiva y única, y hasta ahora no hay nadie que pueda igualarla.
Pesadilla: Hace un momento ambos hablamos de Robert Martin, él es mi modelo a seguir. Creo que el libro de 1995 "Diseño de aplicaciones C orientadas a objetos" es un libro que todo ingeniero de software C debería leer una y otra vez. Lamentablemente, no sólo no se ha introducido en China, sino que tampoco es muy conocido en el extranjero. Si cree que comprende todos los principios de la orientación a objetos, pero no puede hacer el esfuerzo cuando se encuentra con problemas prácticos, entonces este libro es su mejor mentor.
A la hora de aclarar ideas, hay otro libro que tengo que mencionar, que es "Ruminations On C" de Andrew Koenig. Todo el mundo debería preguntarse, después de estudiar C durante tantos años, ¿cuál es el concepto de diseño más básico de C? ¿Cuál es mi primer instinto cuando me encuentro con un problema? ¿Qué características debe tener la primera solución heurística? Si no puede dar una respuesta clara, debería leer este libro en serio. Después de leerlo, tendrá una "columna vertebral".
Transparencia: Inserta una frase y habla sobre el tema de las “recomendaciones”. Los libros introductorios son básicamente de aplicación universal, por lo que la recomendación tiene poca importancia. La dirección del desarrollo después de la entrada es diferente para cada uno. En este momento, se necesita la orientación de los "expertos". Por ejemplo: cuando estaba aprendiendo C, Myan aún no me conocía, por lo que no me recomendó ningún libro, aun así lo aprendí, así que incluso si me recomendaste "Essential C" o "C Primer" en. En ese momento todavía lo aprendería, no te lo agradeceré mucho, pero cuando estaba estudiando OO en serio, me recomendaste el libro de Robert Martin, que me resultó muy útil y me resulta difícil encontrar uno similar. Recomendaciones de otros lugares, así que estoy muy agradecido.
Un programador debe conocer el marco, aprender a usarlo y tomar la iniciativa para analizarlo (en este sentido, los "patrones de diseño" pueden ser de cierta ayuda). Sin embargo, los libros sobre marcos establecidos y de verdadera alta calidad probablemente sean solo para MFC. Desde esta perspectiva, aunque MFC tiene muchos defectos, es muy necesario que los programadores de C lo utilicen primero, se familiaricen con él, lo estudien e incluso lo analicen con la ayuda de libros como "Introducción a MFC en un lenguaje simple". ". De lo contrario, será difícil tener conciencia y sentimiento del marco.
Por supuesto, otro marco también es muy bueno, ese es STL. Independientemente de si utiliza MFC o STL, dominar y comprender estas dos cosas es de gran ayuda. Recientemente he estado leyendo nuevamente "Introducción a MFC de manera sencilla". Aunque ya no uso la programación de MFC, definitivamente hay ayuda.
Pesadilla: con respecto a MFC y STL, todavía recomiendo los dos libros del Sr. Hou "Una guía simple para MFC" y "Análisis de código fuente STL".
El libro "Introducción a MFC de forma sencilla" es naturalmente muy famoso, pero también ha sido criticado por mucha gente. De hecho, ningún libro es perfecto y, por supuesto, las críticas son inevitables. Sin embargo, a veces veo gente comentando este libro y comparándolo con Inside VC.
Lo que acabas de decir es bastante correcto. Los programadores deberían tener cierto conocimiento del marco. Esta "Introducción en profundidad a MFC" no trata tanto de la programación de MFC sino de tomar MFC como ejemplo para analizar la arquitectura y el contexto del marco de aplicación. Entonces, no importa cuál sea su actitud hacia el propio MFC, este libro será de gran beneficio para todos los programadores de C.
Transparente: Sí. "VC Technology Insider" le dirá "cómo utilizar la macro DYNAMIC_CREATE" y "Instrumental MFC" le dirá "cómo implementar la macro DYNAMIC_CREATE". Por lo tanto, si solo necesita escribir algunas aplicaciones pequeñas en VC, "Introducción a MFC de manera simple" no es de gran valor; sin embargo, si necesita diseñar algo un poco más grande (no necesariamente un marco), las ideas de diseño de; MFC le ayudará.
Pesadilla: Además, creo que debería haber una evaluación justa de MFC. En el pasado, fue muy elogiado y las librerías estaban llenas de libros de MFC. Como resultado, todos solo conocían MFC pero no C. Incluso ahora, algunas personas todavía preguntan: "¿Debería aprender MFC o C? VC no es". ¿Es un lenguaje de nivel superior al C? "MFC se ha convertido en una estatua que bloquea la vista de las personas. Así que tengo que sacarlo del altar. Esta es una de las razones por las que muchas personas, incluyéndome a mí, hemos criticado a MFC durante el último año o dos. Pero ahora los horizontes de todos se han ampliado, ha aparecido .NET, MFC ya no es un dios y algunas personas han comenzado a disfrutar menospreciando a MFC. Creo que esta actitud está mal.
¿Qué es un buen marco? Creo que un marco que pueda mantener la estabilidad y seguir mejorando como MFC durante más de diez años es un buen marco. Tal vez tengamos opiniones diferentes sobre algunas cuestiones de diseño específicas y pensemos: "¿No sería este lugar más hermoso si se diseñara de esta manera? Muchas veces, sí, pero eso no es importante, lo importante es que MFC sea maduro y estable". , con más de diez años de experiencia exitosa. Esto es lo más sorprendente.
Otro punto, MFC contiene la mejor información para aprender a programar la API Win32. Este es otro punto destacado además de su marco. Actualmente uso la API Win32 para el desarrollo, pero a menudo consulto el código fuente de MFC y gano mucho.
Transparencia: con respecto a STL, no estoy muy interesado en analizar su código fuente. Después de todo, el código fuente interno es en su mayoría problemas algorítmicos. Por lo tanto, hojeé el "Análisis del código fuente STL" y lo guardé. Creo que este libro es bueno como libro de texto sobre algoritmos y estructura de datos para departamentos de informática. Me pregunto si algún profesor estaría dispuesto a hacerlo.
Mi actitud hacia STL siempre ha sido "la aplicación primero". Sin embargo, siempre he pensado que SGI STL es un libro maravilloso en sí mismo, un libro de referencia clásico sobre estructuras de datos y algoritmos, y también un libro de referencia sobre tecnología genérica. Si desea saber cómo se implementa un algoritmo, simplemente mire el código fuente STL; si desea saber cómo usar los rasgos de tipo, hay ejemplos en el código fuente STL; Cuando leo libros escritos por otros, siempre siento que hay una capa de velo entre ellos y siento que no puedo rascarme la picazón. El código de SGI STL está muy bien escrito. Sería una lástima que un programador de C no leyera este libro.
Pesadilla: En cuanto a STL, además del "Análisis de código fuente STL", no rehuyo a mis familiares y recomiendo encarecidamente el libro "The C Standard Library" cotraducido por el Sr. Hou y yo. . No hay duda de la alta calidad de este libro. Ahora siempre tengo este libro a mano y puedo consultarlo en cualquier momento. Me ha sido de gran ayuda.
Transparencia: En comparación con Java, la mayor ventaja de C es que no tiene una empresa dedicada a administrarlo, y la mayor debilidad es que no tiene una empresa dedicada a administrarlo. Después de que los programadores de Java aprenden una sintaxis simple, ingresan inmediatamente al marco proporcionado por SUN. Mientras utilizan este marco listo para usar para el desarrollo real, continúan aprendiendo algunas características profundas de Java durante el proceso de desarrollo. En este momento, los programadores de C probablemente todavía se estén preguntando "¿Cuál es mejor, VC o BCB?" Sin duda, esto es una pérdida de tiempo.
Pesadilla: Acabas de hablar sobre las ventajas y desventajas de Java y C. Este tema se ha convertido en una onda sonora en nuestra era que nunca desaparecerá. No quiero hablar más de esto. Pero tengo que dejar una cosa clara: muchos de los que usamos C hemos sufrido mucho ahora. Nos arriesgamos a mirar Java y pensamos que es tan lindo. Esta impresión es inexacta. Además, Java no es simple y será cada vez más grande y complejo. En muchas situaciones, Java aún no es competitivo. En cuanto al futuro, creo que algunos entusiastas de Java son demasiado optimistas. Parece que los problemas que no se han resuelto en la comunidad informática durante décadas se pueden resolver con la ayuda de Java.
Transparencia: Por supuesto. Lo digo de nuevo: no hay bala de plata. La lectura es muy importante, pero los antiguos decían: "Viajar miles de kilómetros, leer miles de libros", todavía anteponían "viajar" a "leer". Especialmente los libros técnicos, si no pueden ayudarme a resolver problemas y brindarme beneficios muy prácticos, entonces no los leeré. El diablo tiene razón, nuestra sociedad es muy de comida rápida, nuestra industria es especialmente de comida rápida, y sólo podemos intentar adaptarnos a ella.