Red de conocimiento informático - Espacio del host - ¿Qué tan molesto me resulta cambiar el código de otras personas? Mi cerebro está a punto de estallar.

¿Qué tan molesto me resulta cambiar el código de otras personas? Mi cerebro está a punto de estallar.

Releí Cómo convertirse en hacker de Eric S. Raymond hace unos días y vi que recomendaba Python para principiantes en programación. De repente me sentí muy deprimido y tuve algunas ideas. Recomiendo que las personas que son nuevas en programación aprendan C o Pascal. Si quieres ir más allá, puedes usar lenguaje ensamblador, porque de esta manera puedes entender la capa subyacente con mayor claridad.

La siguiente es una explicación de las posibles razones para quienes apoyan la elección de Java, Python, C (refiriéndose a C que usa características que no son C) y otros lenguajes OO avanzados.

1. Pascal y C son demasiado antiguos y están desactualizados. Rara vez se usan en la vida diaria. Hoy en día, Java, etc.

Pascal estándar es relativamente antiguo, pero tiene el sucesor de Delphi. Decir que C es antiguo probablemente sea ignorante. Ahora parece que C es el proyecto más popular. fuenteforja. Pascal no se recomienda debido a Delphi. Elegí Pascal y C porque creo que son muy comunes hoy en día y su sintaxis es muy representativa, concisa y clara.

No pienses siempre que algo está desactualizado. Hay versiones COBOL y OO, así como FORTRAN y LISP. Son lenguajes muy antiguos y todavía se usan mucho en la actualidad.

2. Comience con OO y desarrolle el hábito de pensar en forma OO.

En primer lugar, cabe señalar que OO es un método, no un lenguaje. Parece que es fácil para los principiantes jugar con Java, Python, Delphi, etc. que OO = Java, Python, C...

En segundo lugar, la esencia de los lenguajes procedimentales (o métodos estructurados) no morirá y es imposible deshacerse de las declaraciones y llamadas a funciones en OO. Aún es necesario promover métodos estructurados. El método OO no es tan fácil de aprender (dominar la sintaxis del lenguaje OO no significa que comprendas OO), y el método estructurado se puede entender escribiendo un programa de mil líneas, es decir, escribiendo cosas prácticas. como intentar implementar algunas estructuras de datos y algoritmos usted mismo, escribir algunos juegos pequeños, etc. Escribir mil líneas de Hola mundo equivale a no escribirlo.

Creo que los métodos se aprenden a través de la práctica y no se pueden aprender leyendo libros. Si memorizas los patrones a fondo como los patrones de diseño, puedes caer en el atolladero del diseño excesivo. Codifique y luego léalo nuevamente, modifíquelo, depurelo y agregue funciones lentamente. Descubrirá qué tan malo es su código. Luego lea el libro y escuche las opiniones de otras personas, y sabrá cuál es la mejor práctica. La mejor experiencia se obtiene cuando estás agotado.

Los códigos de lenguaje procedimental son generalmente relativamente concisos. Nuestro objetivo final en programación es resolver problemas, calcular y obtener información. No se deje confundir por OO, patrones, EJB, servicios web, etc. No estoy en contra de estas tecnologías).

Le recomiendo encarecidamente que lea más código. Vaya y lea el código fuente UNIX v6 de Leon, léalo detenidamente y podrá comprender lo que significa exquisitez. y luego intente escribir código en ese estilo.

3. Después de usar el lenguaje procedimental durante mucho tiempo, es difícil cambiar al modo de pensamiento OO

Nunca antes había pensado en esta razón, pero a medida que pasó el tiempo, Me di cuenta de que era solo una colección de datos y métodos. Parece conveniente, pero de hecho hay muchas cosas irracionales. Esto requiere orientación teórica de OO y todavía lleva tiempo comprenderlo. Creo que muchas personas que usan lenguajes OO simplemente agregan código al marco y lo llaman aquí y allá, tratando a los humanos como empaquetadores de datos y operaciones.

Personalmente, siento que sólo después de trabajar con métodos procedimentales durante más de diez años y codificar cientos de miles de líneas, tengo una mentalidad fija y es difícil acostumbrarme a mirar el sistema desde una perspectiva Perspectiva OO. Sin embargo, todavía siento que este cambio es más importante que el cambio. Es mucho más fácil desarrollar malos hábitos por sí solo.

Los métodos OO no se pueden dominar aprendiendo Java, Python, C, etc. Requiere práctica y tiempo. Los lenguajes de procedimiento también son fáciles de cultivar la actitud rigurosa de una persona hacia el trabajo. Por ejemplo, cuando se escribe código en Pascal, C, etc., no hay espacio de nombres, ni sobrecarga de funciones, ni referencias (Pascal lo tiene, jaja, me gusta). it), sin plantilla, sin excepción, hay que dedicar mucho tiempo a pensar en algunos detalles, como tener cuidado con los índices de matriz fuera de límites, los punteros colgantes, los punteros salvajes, etc. Por favor, no le resulte problemático. Esta es una computadora y la capa inferior es así. 4. No uses C o Pascal. Mírame usar Java, Python, Delphi, B, C, etc. para escribir fácilmente una GUI para PP y una aplicación distribuida para NB...

Este artículo. El artículo es para principiantes y también puede ser leído por algunas personas impetuosas (también reflexiono sobre ello, jaja). Los principiantes en programación deben centrarse en las estructuras de datos y los algoritmos, y tratar de leer tanto como sea posible sobre cosas de bajo nivel. , lógica digital, Conocimientos básicos de sistemas operativos, principios de compilación, composición de computadoras, arquitectura, redes de computadoras, etc. ¿Qué tiene de interesante escribir una GUI y arrastrar algunos controles? ¿Entiendes los principios del diseño de la interfaz? ¿Sabes lo que sucede con los mensajes de la ventana? Cuando escribes una interfaz, ¿primeros es la facilidad de uso o la belleza? Para eso, ¿tu programa GUI es fácil de modificar? Por ejemplo, si quiero agregar un botón en un momento y un cuadro de lista al siguiente, ¿te volverás loco con los cambios? ¿Has escrito mucho código en OnClick? ¿Como "eliminar caracteres que no sean números de edit1.text, buscar xxx y luego convertirlo a hexadecimal y luego ir a edit2.text"?

Bueno, dominas los sockets, viene con recv , Vaya a enviar, pero si no comprende el protocolo TCP/IP, es un poco ridículo. Además de usar bibliotecas de funciones creadas por otros, ¿qué nuevos trucos se le ocurren a quienes trabajan en aplicaciones distribuidas? ¿De qué se trata "distribuido"?

¿Estás usando API solo para acumular código? Si un día nadie admite esta biblioteca de funciones, ¿te quedarás estupefacto?

Por ejemplo. Además, si estás escribiendo un juego, nunca lo has visto. También es ridículo utilizar DirectX para gráficos 3D.

No estoy diciendo que primero debas tener un conocimiento profundo de cómo se implementan las cosas de bajo nivel al editar cosas de nivel superior, solo te sugiero que te familiarices con las cosas de bajo nivel. que tenga una idea cuando encuentre problemas, verifique la información y no se apresure a pedir ayuda a alguien. Una vez vi las palabras de alguien en BBS, diciendo que BBS no es un lugar para aprender, sino un lugar para ampliar los horizontes. Estoy profundamente de acuerdo.

A la hora de estudiar, es mejor buscar libros en papel y leerlos con sinceridad. Piensa en cuántos libros electrónicos has acumulado y cuántos has leído.

Si no lo entiendes en el nivel inferior, simplemente flotarás encima de los demás. Si los demás se apartan del camino, te caerás.

Tan pronto como los principiantes aprenden a programar, comienzan a participar en IDE, GUI, redes, etc. ¿No pueden ser impetuosos? Es mejor calmarse y estudiar los conocimientos básicos. Encuéntralos útiles en tu vida (Jaja, no tengo otra opción si cambias de carrera), no mires a otros haciendo JFC, Socket, todavía estás confundido acerca de por qué este tipo rápido no es correcto y estás entrando en pánico. Sé que muchas personas después de que un lote de API no son compatibles, me siento vacío y confundido: Dios mío, no puedo hacer nada más que eso. Me tomó mucho tiempo estudiar esa API. . . .

5. C es muy difícil, será mejor que empiece con Java y Python

En primer lugar, ¿quieres ser programador? ¿Quieres programar o ganar dinero?

En segundo lugar, comparemos la dificultad:

C: el libro de Kamp;r en realidad no es tan grueso. Hay muy pocos libros clásicos en C, probablemente sea difícil. Se dice que los punteros en C son difíciles. La sintaxis de C es muy simple, es decir, siempre que lea el libro detenidamente y escriba algunos programas para probarlo, no será difícil dominar el uso. Además, no vayas allí. Gramática como el diamante muerto* *, el maestro Qiu Zongyan tiene un excelente artículo sobre esto al final de "Maestro". Todos, recuerden que la escritura de código debe mantenerse. No utilicen trucos gramaticales para causar problemas a usted o a las generaciones futuras. Piénselo, ¿admira o maldice cuando lee el código escrito por otros?

Java: hay demasiados libros, digamos simplemente el libro de Gosling (escrito correctamente), que es bastante denso. Las personas que aprenden Java deben haberse sentido molestas por los problemas de classpath y paquetes al principio, así como por las palabras clave, la sintaxis y las palabras clave de Java. Hay mucho Java con el que Sun jugó. Términos técnicos, ¿estás un poco confundido?

C es realmente difícil. Puedes observar el diseño y la evolución del lenguaje C y sabrás por qué C tiene tal. virtudes, jaja. Lo interesante es que Java ahora ha agregado plantillas y ha sido criticado por la implementación de pseudoplantillas, así como por la transformación de EJB. Es interesante que puedas pensar en las palabras "complejo" y "práctico".

Python es relativamente refrescante, pero su modelo de objetos interno no es simple cuando profundizas. Piensa en cuántas formas de operar una lista, varios operadores poderosos y el lenguaje OO actual te obliga a OO. El resultado suele ser solo sintaxis OO, no muy nueva. Todavía aprecio lenguajes como Perl y C. Puedes hacer lo que quieras. Lo importante es utilizar los métodos y herramientas adecuados para crear cosas valiosas en el menor tiempo posible. Creo que sería mejor aprovechar el tiempo para estudiar la gramática de un idioma para hacer ejercicio, preparar una taza de té y leer novelas.

El lenguaje es solo una herramienta para expresar pensamientos. No te limites a un idioma ni seas fanático de un idioma determinado.

Al elegir un libro para aprender a programar, es mejor echar un vistazo primero al código del libro. ¿Está tomado de aplicaciones reales? ¿Está bellamente escrito? en sí y si el diseño es ordenado) En el código ¿Hay errores gramaticales (desprecio a algunos autores que copian el código en el libro sin intentar compilarlo)

Hay un libro llamado Essential C#, que usa el código de la biblioteca de clases .Net. Es genial y habla sobre delegación (espero no estar escribiendo mal, no he hecho esto en mucho tiempo). El ejemplo dado por Shi muestra claramente cómo hacerlo. Usa esta cosa.

También recomiendo Learning Perl. Personalmente, creo que es el mejor libro sobre programación que he leído. ¿Debería hablar de ello, de qué no debería hablar y en qué orden? Bueno, tal vez sea el espíritu de Perl. Cuando leí este libro por primera vez, me impresionó tanto que me sorprendió. ¡Resulta que los lenguajes de programación se pueden usar así!