¿Cuál es una forma efectiva de memorizar programas largos de C de alrededor de 150 líneas?

En mi experiencia, la mejor manera de hacer un seguimiento de lo que estaba haciendo un largo programa de C era hacer lo siguiente. No se trata tanto de la memorización como de entender el programa conceptualmente:

  • Escriba funciones que sigan la regla de “hacer una cosa”, que es que cada función solo debe hacer una cosa. Esto requiere algo de disciplina, ya que generalmente es más fácil escribir código en el que se “combinan” un conjunto de conceptos. Lo que es “una cosa” es algo que debe definir en el contexto del propósito general del programa. Esta práctica contribuye a mantener baja la carga mental de comprender la complejidad.
  • No use variables globales. El alcance más grande que debe tener una variable es el alcance del módulo. Si tiene preguntas sobre cómo crear un alcance de módulo variable, busque el uso de la designación de almacenamiento “estático”. Cuanto más pequeño es el alcance de una variable, menos tiene que memorizar acerca de cómo se usa la variable.
  • Use tipos de datos abstractos donde pueda. Esto implica agrupar elementos de datos relacionados en un tipo de estructura y usar ese tipo con todas las funciones que funcionan en esos datos. Esto disminuye la carga mental al tratar de comprender cómo está cambiando el estado en el programa.

Es una idea pintoresca que un programa de 150 líneas podría considerarse largo.

No estoy seguro de por qué alguien se molestaría, a menos que tal vez piense que tendrá que recitar un código como ese en una entrevista. Si eso es lo que te preocupa, tendrás mayores problemas con la entrevista. Pero tal vez tienes una razón. No es realmente tan difícil, es principalmente como memorizar cualquier otra cosa, como un discurso o una obra de teatro. Comprender su estructura general. Trabaja en romperlo en pedazos cortos. Encuentro que leer y hablar al mismo tiempo ayuda. Repetición.

Absolutamente no tiene sentido. Comprenda el algoritmo y vuelva a crearlo a pedido. Parece que estás tratando de engañar en una entrevista de trabajo … Ni siquiera vayas allí, los codificadores experimentados lo verán a través de ti.

¿Por qué harías eso? La computadora ya lo memorizó almacenando el código fuente en un archivo. Para eso están las computadoras.

Si tiene un requisito para comprender el código de una prueba o algo, léalo y realice ingeniería inversa con un poco de pseudocódigo. Este ejercicio lo obligará a comprender los flujos del programa.

Si un maestro le pide que memorice el código de esta manera, transfiéralo a una clase mejor.

Los programas de computadora nunca deben ser memorizados. Lo único que debe tener en cuenta es la sintaxis del lenguaje e intente pensar en la lógica y una vez que haya descubierto la lógica … ¡BINGO! Puedes implementarlo. He visto a muchas personas cometer el mismo error de asaltar los programas en su temprana edad de programación, pero las consecuencias no son buenas a largo plazo, ya que obstaculiza su capacidad de pensar sobre la lógica y el código de forma independiente. En mi opinión, todas las nuevas abejas que quieran hacer una carrera en programación nunca deberían caer presas de memorizar el código y acostumbrarse a pensar en la lógica.
Y para su información: 150 líneas de código no cuentan como un largo programa en C.

Si la idea real detrás de esta pregunta es “¿cómo conocer rápidamente la funcionalidad del programa largo?”, Entonces la respuesta es hacer un resumen funcional, complementado con un diagrama de flujo del proceso. Pero si la pregunta es sobre recordar cada parte del código del programa, ¡me pregunto por qué alguien querría hacer eso!

Modifique ese programa para imprimirse (Quine (computación)), considerando todos los posibles rastreos de llamadas. Haz un bucle tantas veces como quieras.

Esto lo ayudaría a escanear el programa muchas veces y, en última instancia, puede esperar que de alguna manera su memoria visual lo ayude a memorizarlo.

De lo contrario, el ejercicio en sí lo ayudaría a desarrollar una comprensión de los programas en general y, en última instancia, terminaría con la necesidad de memorizarlo.

Mejor manera !!! En lugar de memorizar, intente comprender la lógica. Una vez que obtenga la lógica, nunca olvidará los programas, sin importar la longitud del código, porque esta vez está escribiendo el código.

La mejor manera de memorizar código es entender cómo funciona. Si sabe lo que el programa está tratando de hacer y comprende por qué toma los pasos que sigue para lograr su objetivo, entonces debería poder razonar esos pasos nuevamente más tarde.

Mucho menos propenso a errores aleatorios y mucho más divertido que tratar de memorizar código de memoria. A menos que tenga un ensayo de código de personaje por personaje o algo así. Pero nunca he oído hablar de nada por el estilo.

Aquí hay uno:

No lo hagas

Prácticamente cualquier programa puede reescribirse en menos líneas de código. Así que elimine las líneas hasta que su programa sea lo suficientemente corto para que pueda memorizar.

No es bueno memorizar un programa línea por línea, pero es bueno entender cómo funciona cada función, es decir, LOGIC es importante.

Si comprende todo el marco y el flujo de trabajo, puede memorizar todo el programa.

Si realmente se encuentra en una situación en la que necesita memorizar programas, probablemente esté perdiendo el tiempo leyendo y escribiendo programas.

Al depurarlo durante 6 horas seguidas … sin éxito

Los programas de computadora no deben ser memorizados sino desarrollados .

Si necesita memorizarlo, la programación no es para usted.

La mejor manera sería entenderlo.