Red de conocimiento informático - Material del sitio web - ¿A qué debes prestar atención al aprender a programar?

¿A qué debes prestar atención al aprender a programar?

Cuando aprendes un idioma (es decir, recuerdas la gramática, el léxico y algunas funciones comúnmente utilizadas del idioma), significa que dominas los programas de escritura. No importa el idioma que uses, es más o menos lo mismo. Es sólo que existen pros y contras entre las herramientas. Por ejemplo, Delphi, VB y similares son muy convenientes para desarrollar aplicaciones en el entorno Windows; es fácil desarrollar programas basados ​​en red con Java C y C son adecuados para desarrollar software a nivel de sistema. Si usamos C (C) para escribir un bloc de notas, se estima que tendremos que escribir cientos de líneas de código y no hay garantía de que no habrá errores importantes. Sin embargo, si usamos Delphi, o VC. para hacerlo, solo necesitamos hacer clic con el mouse para controlarlo y se completará en unos pocos clics. Se puede decir que es conveniente. Esto significa que cada herramienta tiene sus propias características, y existen herramientas que son más adecuadas para cada aspecto. Pero las herramientas son sólo herramientas, y no se pueden escribir buenos programas basándose únicamente en herramientas. Es como si quisiera escribir un artículo, primero decido en qué idioma escribirlo (¿chino, inglés, ruso u otro? Obviamente, si lo escribo para chinos, naturalmente usaré chino, y si estoy escribiendo para los estadounidenses, por supuesto usaré el inglés). Bien, ¿qué pasa después de decidir el idioma? ¿Puedo escribir artículos? ¿Cómo diseñar la estructura del artículo? ¿Cuáles son los consejos y precauciones para escribir artículos? No sé nada de esto, así que, naturalmente, no puedo escribir un buen artículo. Se puede observar que para escribir un buen artículo no basta con conocer el idioma. De manera similar, para escribir un buen programa (el programa tiene resultados de ejecución correctos, alta eficiencia de tiempo y espacio, buena robustez, gran legibilidad, etc.), no basta con saber un solo idioma. Aprender métodos de programación es lo que debemos hacer. La educación informática universitaria también comienza con la enseñanza de un lenguaje (generalmente el lenguaje C) y luego comienza con el estudio de estructuras de datos y algoritmos. La estructura de datos y el diseño y análisis de algoritmos son la base y la máxima prioridad de todo el método de programación, y también son materias obligatorias para los exámenes de ingreso de posgrado. En el pasado había un dicho popular: algoritmo de estructura de datos = programa. Esto no es descabellado. La representación y almacenamiento de datos en las computadoras no es desorganizada, sino regular y estructurada. Por lo tanto, cuando operamos con estos datos, teóricamente existe un algoritmo óptimo (o casi óptimo) que coincide con una determinada estructura para garantizar la eficiencia espacio-temporal de los datos operativos. Por ejemplo, hay una fila de datos: a, b, c, d, e. Si necesita realizar operaciones de búsqueda con frecuencia en ella, almacenar la matriz en secuencia puede reducir el tiempo de operación. De manera similar, si se realizan operaciones de inserción o eliminación con frecuencia, el uso de almacenamiento vinculado puede reducir la complejidad temporal de la operación. ¡Se puede ver que las estructuras de datos razonables y los algoritmos eficientes tienen un impacto importante en la calidad del programa! Para poner otro ejemplo, queremos escribir un programa que pueda ordenar los números de identificación de todos los ciudadanos de China. Este es un conjunto de datos extremadamente grande. ¿Qué estructura se utiliza para representar y almacenar una cantidad tan grande de datos y qué algoritmo se aplica para ordenarlos, de modo que el programa pueda ordenarse lo más rápido posible y ocupar el menor espacio posible? posible. ¡Todo esto es conocimiento, el conocimiento de la programación! Por lo tanto, creo que la comprensión de un programador de las estructuras de datos y los algoritmos determina directamente su nivel de programación. Entonces, ¿cómo mejoras tus habilidades? Podemos aprender y estudiar funciones en la biblioteca de funciones (API) de C (C) o funciones en JFC (biblioteca de clases JAVA). Estas implementaciones de funciones están escritas por programadores muy experimentados y tienen muy buena eficiencia operativa. Además, es la importancia de las matemáticas. Creo que la importancia de las matemáticas para los programas se refleja en su soporte para los algoritmos. Ideas como el cálculo proporcionan orientación teórica para los cálculos numéricos por computadora, mientras que las estructuras de datos y los algoritmos se originan a partir de ideas y métodos de matemáticas discretas, álgebra lineal y estadística de probabilidad. Además, la criptografía informática, los gráficos informáticos y los multimedia informáticos son inseparables de las matemáticas. ¡Los buenos algoritmos requieren herramientas matemáticas para la verificación teórica y matemáticas para la mejora y la perfección! Entonces, ¿qué papel juega la orientación a objetos? Después de todo, creo que el propósito del pensamiento orientado a objetos es la reutilización del código. Los tres conceptos principales en orientación a objetos: encapsulación, herencia y polimorfismo están destinados a la reutilización de código. Reutilizar código de alta calidad no sólo ahorra mano de obra, sino que también mejora enormemente la calidad del programa original.

Por ejemplo, si quiero escribir una calculadora multifunción, diseño la interfaz de acuerdo con mis propias preferencias. En términos de implementación de funciones específicas, heredo las clases funcionales correctas que otros han escrito. escribiéndolo yo mismo, pero también asegura que la precisión de la calculadora mata dos pájaros de un tiro. El pensamiento orientado a objetos puede no ser superior al escribir programas pequeños, pero su poder incomparable se reflejará al desarrollar software mediano y grande. Las personas que nunca han realizado proyectos medianos o grandes no sentirán la grandeza del pensamiento orientado a objetos. Aquí todavía quiero enfatizar que el pensamiento orientado a objetos es una idea excelente y un método de programación excelente. Pero si no hay un código de buena calidad digno de ser reutilizado, ¡los métodos orientados a objetos no sirven de nada! Se puede ver que los bloques de código funcional con buenas estructuras de datos y algoritmos son la piedra angular para garantizar la calidad de todo el programa. (¡Nuevamente se enfatiza la importancia de las estructuras de datos y los algoritmos!) Hay otro factor muy importante en la calidad del software: la arquitectura del software. Permítanme usar otra analogía: quiero construir una casa. La arquitectura del software es como la estructura de una casa. El estilo (¿estilo europeo? ¿Estilo chino?) que se utiliza determina la estructura de la casa. La planificación y el diseño de la arquitectura del software también determinan la estructura del software en sí (entorno y disposición del software). de módulos funcionales, ubicación, relaciones mutuas, etc.). Luego, una vez diseñada la estructura de la casa, se debe resolver el problema de los materiales de construcción. Evidentemente, los ladrillos macizos y las vigas son la garantía fundamental para una casa fuerte. Del mismo modo, las funciones funcionales o bloques de funciones con buenas estructuras de datos y algoritmos son también la garantía fundamental de la calidad de todo el software. Con ladrillos y vigas de alta calidad, siempre que la estructura sea razonable, la vida útil de la casa está completamente garantizada. De la misma manera, si tenemos a mano una gran cantidad de funciones funcionales o bloques de funciones confiables, y utilizando racionalmente métodos orientados a objetos durante la programación y siguiendo los requisitos de la arquitectura científica, podemos desarrollar programas excelentes (precisos, robustos) en condiciones económicas. ., alta eficiencia de tiempo y espacio, fácil de modificar y complementar, hermoso, fácil de usar). Hoy en día, hay muchos programadores en la sociedad que no tienen habilidades básicas sólidas, persiguiendo ciegamente la tendencia, el C# de hoy, el JAVA del mañana. Y las herramientas de desarrollo están surgiendo sin cesar. Muchas empresas de software realizan proyectos en la plataforma .net en la primera mitad del año y desarrollan en J2EE en la segunda mitad del año. Como resultado, muchas personas que escriben código no tienen tiempo para hacerlo. aprender. Para hacer frente a este fenómeno, la única manera es establecer firmemente las habilidades básicas y permanecer sin cambios ante situaciones en constante cambio. No importa qué lenguaje o plataforma se utilice, los programadores con habilidades sólidas pueden adaptarse rápidamente al nuevo entorno y generar beneficios en muy poco tiempo. Esto es lo que quieren ver las empresas de software. Por lo tanto, me gustaría decirles a las personas que acaban de ingresar al campo de la programación que no se dejen confundir por los deslumbrantes libros de programación que se encuentran en las librerías. Muchos de ellos son libros de referencia de idiomas y libros de negocios, que no tienen connotaciones ni valor de investigación. Si realmente desea profundizar, es mejor sentar primero una base teórica sólida. En términos más generales, el desarrollo de software chino no requiere programadores que conozcan algunos idiomas y puedan usar algunas herramientas, pero que no puedan escribir código de alta calidad.