¿Qué tal aprender a programar?
Si quieres estudiar de forma sistemática. Dime lo que pienso. Tienes que tener un objetivo. Todo lo que quieras aprender, te conviertes en la introducción. No digas que eres competente en nada. No existe el primer lugar en la literatura. Si dices que eres competente, siempre habrá algunos tipos grandes que se levantarán y te despreciarán.
Entonces, ¿qué es una introducción? Tengo entendido que cuando ves un programa existente y piensas en él mentalmente, puedes comprender aproximadamente cómo se implementa. Por supuesto, no es necesario que lo entiendas por completo. Es imposible, pero no sería descabellado escribir un programa similar según este programa. En este punto, ya casi has llegado. Para decirlo sin rodeos, la imitación es la primera etapa del aprendizaje. No se requiere innovación. Sólo hay que mirar lo que hay ahí fuera e imitarlos. Sólo sabiendo imitar se puede llegar más lejos. Pero esta imitación no permite copiar el código, sino que es una caja negra. No es exactamente lo mismo, siempre y cuando tengas una idea aproximada y puedas implementarla.
Así que, para empezar, es necesario realizar una serie de estudios sistemáticos. Como quienes aprenden con el ejemplo, sólo se puede aprender lo superficial. Siempre hay algo que no has visto antes, así que lo que necesitas aprender es la esencia, no el principio. Por supuesto, está bien proceder de lo más superficial a lo más profundo a través de ejemplos, pero no se puede abandonar lo básico.
Programación y teoría son dos líneas diferentes, pero van de la mano. Muchos principiantes no saben cómo aprender, por lo que son necesarias lecciones formales, al menos prácticas.
Entonces, de lo que estoy hablando es de este proceso de aprendizaje. Primero, debes elegir un lenguaje de programación. Si eres el tipo de persona que está dispuesta a soportar las dificultades y trabajar duro, te sugiero que empieces con c. ¿Por qué dices eso? Debido a que C es de nivel relativamente bajo, si desea usar C para desarrollar algunos programas interesantes, especialmente aquellos con GUI, sin mencionar las ilusiones, al menos será muy agotador. Sin embargo, la ventaja del lenguaje C es su sintaxis simple. Después de aprender bien C, las estructuras de datos y los algoritmos se pueden implementar en todo el mundo y se pueden utilizar para aprender el sistema operativo en el futuro. Puede considerarse como un conjunto de lenguajes relativamente común en el proceso de aprendizaje. Si está ansioso por tener éxito y desea crear pequeños programas significativos en poco tiempo, aprenda Java. Hay muchas bibliotecas en Java, por lo que es más fácil escribir programas usando GUI. Además, tarde o temprano tendrás que tener ideas OO.
Al mismo tiempo, aprendí teorías, como matemáticas discretas, estructura de computadoras, estructura de datos y algoritmos, una por una.
Puedes aprender lenguaje ensamblador y máquina en este momento. Esto no quiere decir lo que quiere hacer con el ensamblaje, sino permitirle comprender el principio de funcionamiento de la CPU y luego intentar diseñar una CPU usted mismo utilizando componentes originales como or, and, xor, etc. No te estoy pidiendo que construyas una CPU física, solo dibuja un diagrama de circuito. Cuando comprenda el principio de funcionamiento de la CPU, de repente se sentirá iluminado. Resulta que las computadoras son muy sofisticadas.
Después de eso, podrás comenzar a aprender los principios del sistema operativo. En este punto, puede instalar Linux y familiarizarse con esas llamadas al sistema. Estudie la estructura del archivo, etc. ¿Tienes envidia de esas personas mayores que hacen pedidos todos los días? De hecho, no son nada difíciles. Cuando se familiarice con ellos, sentirá que Windows no es adecuado para la programación. Mucha gente dice que Windows es un buen programa y VS es un artefacto IDE o algo así. Pero sin VS, ¿alguien usaría Windows para escribir programas? Por eso dicen que VS es mejor que Windows, y Windows es solo un accesorio. Linux es mucho más informal. Para lenguajes como C, cuando no hay una biblioteca disponible, no importa si hay un IDE o no. Pero para un lenguaje pervertido como Java, nunca usaría software como VIM para escribirlo. Estoy agotado.
Al aprender el sistema, es necesario aprender el procesamiento paralelo y el control de subprocesos, como el paralelismo y la concurrencia. La CPU de una computadora solo tiene unos pocos núcleos, o incluso un solo núcleo. Pero la computadora ejecuta muchos programas al mismo tiempo debido a la función de procesamiento paralelo del sistema operativo. Es muy útil aprenderlos.
Hay mucho que llevar al siguiente nivel. La red puede aprender protocolos como TCP, UDP o HTTP y luego intentar escribir un servidor simple en C para escuchar un puerto y enviar información. También se puede escribir en Java, que es más simple que C, pero C está más cerca del sistema porque Java usa una máquina virtual. Después de todo, están separados por una capa.
Si estás interesado en los gráficos 3D, aprende OpenGL. C es suficiente para programas pequeños y sencillos. Si es demasiado complicado, aprende C++. De todos modos, realmente no me gusta C++.
Aunque es poderoso, es demasiado agotador desarrollarlo, especialmente después de aprender Java. ¿Crees que C ++ puede ser tan problemático? Pero si quieres hacer desarrollo de bajo nivel, tienes que aprender C++. Entonces depende de tu propio posicionamiento. Si realmente no quieres profundizar más, C es suficiente. Después de aprender OpenGL, podrá apreciar las ventajas de Linux. Simplemente busque algunos comandos en Internet y escríbalos. Cuando estaba tomando clases de gráficos, completé la primera tarea y los estudiantes que usaban Windows todavía estaban estudiando el entorno de configuración. Cuando pensaron que las ventajas de VS se reflejarían después de la primera configuración, trágicamente descubrieron que se usarían una o dos bibliotecas nuevas en cada tarea de este semestre. Así que solo podían mirarme con tristeza mientras tomaban café y escribían código.
Hay demasiadas ramas de la informática y todavía hay muchas cosas que puedes aprender, como las bases de datos. De hecho, el lenguaje de la base de datos es muy simple. Aprender MySQL puede darle una idea general. Al mismo tiempo, puede aprender desarrollo web, html + css + js front-end, y hay demasiadas opciones de back-end, como el PHP tradicional. Si quieres aprender bien Java, aprende JSP. Sin mencionar a Microsoft, Python también es bueno.
Hablando de eso, también es necesario que aprendas un lenguaje de programación. Python es una opción común. Después de aprender Python, puede comparar C, Java y Python. Encontrará que cuanto más bajo es el nivel del lenguaje, menos funciones tiene, pero es conveniente para implementar infraestructura, como resultados de datos. Cuanto más avanzadas son las funciones del lenguaje, más listo está todo, pero las cosas básicas están ocultas. Es por eso que 10 líneas de Python y Java requieren 30 líneas o más. Pero el lenguaje subyacente es más rápido. Cuando te acostumbras a la eficiencia del desarrollo de Python, puedes entrar en contacto con otros lenguajes, pero esto no significa que no tengas que aprenderlo desde cero; de lo contrario, ¿cómo puedes entender los principios?
Si hablas lenguajes de programación, debes aprender a desarrollar compiladores. El compilador es algo maravilloso, pero no se puede explicar claramente en una o dos oraciones. También es muy práctico comprar este libro y estudiarlo usted mismo.
Aquí es casi suficiente aprender cosas básicas, pero el aprendizaje no tiene fin. Dado que la informática es una ciencia, nunca tiene fin, pero una vez que conozca y comprenda los conceptos básicos, todos los nuevos conocimientos no serán demasiado difíciles de aprender.