Cómo convertirse en un programador avanzado de C C es un lenguaje que tiene casi 30 años. No se puede negar que es más difícil de aprender que otros idiomas. Y su dificultad de aprendizaje proviene principalmente de su complejidad. Hoy en día, el uso de C no es tan bueno como solía ser. Idiomas como Java, C# y Python pueden reemplazar a C en muchos aspectos. Pero también hay muchos lugares que otros lenguajes no pueden reemplazar en absoluto, principalmente en industrias como los juegos y servidores eficientes que requieren un funcionamiento más eficiente. Hoy en día, hay muchas más personas que aprenden lenguajes como Java y C# que C. La razón principal es que la barrera de entrada para C es demasiado alta. Después de aprender durante un tiempo, es posible que no sepas nada. Hará que tu confianza se vea muy afectada y desistas. Quiero compartir mi experiencia con todos, con la esperanza de ayudar a los principiantes a evitar desvíos. Aquí no discutiremos detalles técnicos específicos, solo lo que debemos aprender. 1. Capacidad técnica 1. Idioma. Si queremos convertirnos en programadores aprenderemos muchas cosas complicadas, pero lo más importante es empezar por el idioma. Lo más importante para aprender un idioma es elegir un buen idioma. Los libros, incluso los mejores libros de texto de las escuelas, no están bien escritos. Recomiendo encarecidamente "C Primer". Este libro es muy denso y rico en contenido. Explica más que solo conocimientos superficiales. Si tiene la paciencia para leer este libro, básicamente no tendrá problemas importantes con el idioma y también sentará una buena base para el aprendizaje futuro. 2. GUI Hay muchos tipos de bibliotecas GUI en C, como MFC, WTL, wxWidgets, QT, etc. Estas bibliotecas GUI tienen sus propias características. De hecho, solo necesitamos comprender una primero. Siempre que tengamos un conocimiento profundo de una biblioteca GUI, es suficiente aprender otras cuando necesitemos una biblioteca GUI. Lo mismo, muy rápidamente Puedes comenzar. Aunque MFC tiene muchos problemas en su diseño, sigue siendo bueno como introducción y hay muchos materiales de aprendizaje, por lo que puede resolver problemas fácilmente si los encuentra. 3. Estructuras de datos y algoritmos. Muchas personas ignoran el conocimiento de las estructuras de datos y los algoritmos. Especialmente en algunos lenguajes de programación, las bibliotecas son muy buenas y casi no es necesario implementar algunas estructuras de datos y algoritmos por su cuenta. aprender algoritmos. Es necesario implementar algunas estructuras de datos y algoritmos, lo que hace que muchos programadores no presten atención o incluso ignoren este aspecto del conocimiento. Sin embargo, este conocimiento es muy, muy importante cuando queremos que el programa se ejecute más rápido y utilice menos memoria. Muchos programadores no les prestan mucha atención al principio, pero después de trabajar durante algunos años, volverán a prestar atención a este conocimiento. Al principio, es posible que no necesite aprender demasiado, pero debe conocer las estructuras de datos y los algoritmos básicos. Recomiendo "Estructura de datos (Edición en lenguaje C)". Al aprender estructuras de datos y algoritmos, es mejor no preocuparse por las habilidades orientadas a objetos e implementarlas en lenguaje C, para que pueda concentrarse más en el contenido del algoritmo en sí. 4. Base de datos Aprenda los conocimientos básicos de la base de datos y domine el uso de una base de datos. Se recomienda usar mysql, y es mejor no usar algunas interfaces encapsuladas. En su lugar, debe usar directamente la API de la base de datos MySQL. tener un conocimiento más profundo de la base de datos. 5. La frecuencia principal de las CPU paralelas ya no puede seguir la ley de Moore. La tendencia actual de desarrollo de las CPU es la de múltiples núcleos. Ya sea multiproceso o multiproceso, todo es para utilizar mejor el rendimiento de la CPU y brindar una mejor experiencia de usuario. Esto requiere que involucremos la computación paralela al escribir aplicaciones eficientes. Dedicar más esfuerzo a la computación paralela dará buenos resultados. 6. Programación de red La programación de red mencionada aquí se refiere a la programación de sockets. Hoy en día, muchas aplicaciones C están desarrollando servidores. Cómo desarrollar un servidor con alta concurrencia, gran rendimiento y alta estabilidad es un tema que debemos considerar. 7. Patrones de diseño Los patrones de diseño no son una tecnología específica, sino más bien cómo hacer que el código sea más legible, mejor extensible y más fácil de usar. 8. Uso de bibliotecas La biblioteca estándar de C sólo proporciona algunas funciones muy básicas, por lo que a menudo introducimos algunas bibliotecas de terceros.
La más famosa de estas bibliotecas es la llamada biblioteca boost cuasi estándar, que proporciona técnicas ampliamente utilizadas en programación, incluido el procesamiento de textos, algoritmos, redes, subprocesos múltiples, procesamiento de imágenes, etc. Existen otras bibliotecas que se especializan en un área determinada, como ACE para comunicaciones de red, TinyXML para analizar xml y OGRE para representación de gráficos. 9. Conocimiento del sistema operativo. El conocimiento del sistema operativo que los programadores necesitan saber es diferente del de los usuarios comunes. Un maestro necesita tener una comprensión profunda de todos los aspectos del sistema operativo, en lugar de limitarse a limitarse al nivel de uso. En cuanto a los conocimientos que debe tener, vaya a "Programación básica de Windows" para Windows y "Comprensión profunda del kernel de Linux" para Linux. Debería poder saber lo que debe aprender. 2. Experiencia en proyectos Si domina lo anterior, puede ser considerado un programador relativamente poderoso. Pero para los programadores, la experiencia en proyectos es más importante. Un buen proyecto le permite aplicar de manera integral diversas tecnologías y aprender algunos conocimientos nuevos. Por ejemplo, si creas juegos, necesitas aprender gráficos, y si creas reproductores, necesitas aprender códecs. Muchos programadores ignorarán la experiencia en proyectos y solo hablarán de capacidades técnicas. De hecho, esta es la relación entre teoría y práctica. La tecnología es conocimiento teórico, hacer proyectos es práctica, la teoría conoce el papel de la práctica y la práctica puede profundizar nuestra comprensión profunda de la teoría. Habilidades de comunicación Las habilidades de comunicación son las habilidades sociales que debe poseer un programador senior. Lo que quiero decir aquí es que las habilidades de comunicación no suelen ser elocuentes, jactanciosas ni locuaces. Se trata de habilidades comunicativas basadas en la tecnología.