¿Es un mal hábito ejecutar algoritmos solo en un papel?

Hola,

No pasemos a describir malos o buenos hábitos.
Digamos, para practicar, cuando aprendí la programación que usó nuestra facultad, díganos que primero escriba su lógica en papel, ejecute eso en seco. Si piensas después de la ejecución en seco, entonces solo ve por la máquina.
Hay beneficios en eso (¡Enormes!)

  1. Al ejecutarlo en seco, puede verificar si hay alguna falla o pérdida de memoria que le ahorrará tiempo. (Hago la mayor parte del tiempo mientras escribo También corro en seco para verificar si hay fugas, ya que para mí es crucial). por ej. si ejecuta en la máquina, y esa pérdida de memoria puede causar la caída del programa o incluso el bloqueo del sistema. Para evitar esto, el funcionamiento en seco es una muy buena opción.
  2. Trabajando en una industria de bajo nivel como (VLSI o Embebido) donde las máquinas o chips son costosos, por lo que un error en la lógica o el programa puede causar pérdidas de algunos dólares a millones de ellos. Secar es una buena opción aquí.
  3. con la ejecución en seco, también visualiza las opciones y otros aspectos de programación. Así, sus habilidades de codificación también están mejorando. En la máquina, el compilador le indicará los errores que debe corregir (en Java algunos IDE pueden indicarle qué debe cambiar para eliminar los errores). Entonces, cuando corres en seco, tu mente compilará el código basado en lo que aprendiste. Eso te ayudará a seguir escribiendo programas largos o enormes.
  4. El principal beneficio de eso es, digamos, que tienes codificación C. Entonces, por Dry Run, su mente está revisando todos los conceptos. En cierto modo, los está refrescando, así que cuando vaya a una entrevista, eso ayudará. Como la mayoría de los entrevistadores le pedirá un código para escribir en papel y le preguntará el resultado. (Me he enfrentado a esta situación muchas veces).
    La práctica de carrera en seco también ayuda aquí ;-).

5. En muchas empresas multinacionales, no tendrá el lujo de hardware / máquina las 24 horas del día, los 7 días de la semana, ya que otras personas también estarán trabajando en algunos módulos en la misma máquina. Así que la carrera en seco ayuda aquí.

Por lo tanto, la ejecución en seco es beneficiosa para los programas página por página. No es como si ejecutas en seco unas 10000 líneas de código. pero mientras escribes haz línea por línea. eso ayudará.
También he trabajado con codificadores en compañías de semiconductores donde ese código primero funciona en seco. que solo van a compilar. y la mayoría de las veces se compila correctamente (eso también sin advertencias).

Espero que esto ayude.

Agradeciendote,

Depende de si estás aprendiendo un algoritmo estándar ya presente en los libros o resolviendo un problema. Si está aprendiendo un algoritmo estándar que nunca antes había visto y el código se ve muy diferente de lo que haya aprendido en el pasado, entonces es aún mejor ejecutarlo en la máquina. De esta manera, aprenderá a codificar ese algoritmo y a los posibles errores que puede enfrentar si el código no está escrito correctamente. Otra ventaja es que si lo escribe una vez, ganará algo de confianza y, en caso de que surja un problema relacionado con ese algo, se sentirá cómodo para resolverlo. En el caso de los concursos de codificación, resulta ser una bendición, ya que podría haber guardado el código que probó anteriormente y simplemente copie y pegue, lo que ahorrará tiempo.

En caso de preguntas competitivas, ejecutar en papel antes de ejecutar en computadora es más bien la mejor práctica, especialmente en la etapa inicial de la codificación competitiva. Siempre hago lo mismo antes de ejecutar mi código en la máquina. Tiene sus propias ventajas, como si hay algún error en el código, puede señalarse y resolverse cuando se ejecuta en seco en papel e incluso a veces sucede que pensamos en un código y lo ejecutamos en papel y luego nos damos cuenta de que nuestro método de resolución es realmente incorrecto, lo que podría ahorrar tiempo y envíos incorrectos! Al mismo tiempo, mientras se ejecuta en papel, descubrimos el algoritmo correcto para resolver.

Pregunta: ¿es un mal hábito ejecutar algoritmos solo en papel?

Respuesta críptica: sí y … no.

Respuesta corta: depende de lo que estés buscando aprender de esto.

Si solo tienes curiosidad sobre los algoritmos, está bien. Pero está aprendiendo como parte de su plan de estudios o está buscando un trabajo o título con informática / curso equivalente, entonces también debe acceder a la codificación.

Respuesta larga :

Por ejemplo, consideremos los algoritmos de clasificación.

Ordenamiento de burbuja

Cuando ves los algoritmos de ordenación de burbujas, suena muy básico y su código es realmente simple …

Suena como un pedazo de pastel. podemos codificarlo con el menor esfuerzo y funciona muy bien.

Pero considere un tipo de montón o un tipo de fusión

Sus algoritmos pueden sonar simples, pero cuando realmente llega al IDE en blanco o un bloc de notas e intenta implementarlo o codificarlo, muestra diferentes desafíos.

Mi experiencia personal es una vez que tiene la solución lista y la ha visto. Cuando intentas codificarlo, recreas el código que has visto. Lo cual no es tan bueno.

Para resumir, si desea desarrollar su comprensión y codificación con la teoría de algoritmos, debe ejecutar e implementar algoritmos en la máquina.

Nota: la respuesta es de mi experiencia personal y mi conocimiento. Las opiniones pueden diferir de persona a persona.

Sí lo es. Cuando ejecuta en una máquina, realmente aprende a codificar, reconoce los diversos errores y fallas que son posibles y que no es posible detectar en un código en papel.

Intente resolver preguntas en un juez en línea donde pueda aplicar el conocimiento y el interés de sus ds y algos.

Todo lo mejor..!!

Sí lo es. La única forma de comprender y aprender completamente un algoritmo es hacer un programa de eso en cualquier lenguaje de programación con el que esté mejor y ejecutarlo en una máquina. De esta manera, comprende completamente sus lógicas y también puede mejorar sus habilidades para convertir un algoritmo en un programa y ser bueno en la programación. También puede comprender todos los casos ejecutando una salida. También podría obtener la capacidad de encontrar inconvenientes en un algo y posiblemente mejorarlo.