¿Está bien si no puedo resolver un problema cuando estoy sentado frente a una computadora? [cerrado]

12

Soy un programador aficionado y un principiante. La mayoría de las veces, no puedo resolver el problema mientras estoy sentado frente a la computadora. Por ejemplo, estaba tratando de averiguar si un número es un poder de otro. No pude encontrar la solución hasta que agarré un bolígrafo y un papel y luego analicé el problema. En aproximadamente 3 minutos lo resolví y escribí el script en Python.

A veces puedo resolver el problema mientras estoy sentado frente a una computadora, pero con cierta dificultad. ¿Eso esta bien?

Mahmood Muhammad Nageeb
fuente
66
Para mí, esto no es un problema tan grave y, de hecho, muchas personas miran la computadora demasiado, y finalmente no se dan cuenta de que tienen este problema en menor medida. Gran parte de la programación profesional implicará cambios muy rutinarios en lugar de las complicadas fórmulas lógicas que generalmente se asignan como tareas, y no es un gran problema si al menos puede lograrlas.
Katana314
2
Creo que es posible que desee reformular su pregunta para que tenga más sentido sobre la programación.
Snoop
8
Esto es completamente subjetivo. Todos aprenden y trabajan de manera diferente. Haz lo que te funcione.
77
Frente a la computadora puede ser el peor lugar para tratar de resolver un problema, porque te sientes demasiado tentado a comenzar a escribir cuando deberías pensar. A menudo, salir de la máquina es mejor porque te obliga a pensar que no actuar . La mayoría de mis problemas más difíciles se han resuelto caminando a la oficina por la mañana.
Gort the Robot
2
También está la cuestión de cuán difícil es el problema. A medida que gane más experiencia, algunos problemas que ahora son difíciles se volverán fáciles. Pero eso solo significa que puedes resolver problemas aún más difíciles. Por mi parte, resuelvo muchos de mis problemas más difíciles al practicar senderismo o esquí de fondo.
jamesqf

Respuestas:

34

Tiendo a resolver mis problemas más difíciles:

  • Frente a una pizarra (a veces sin siquiera dibujar nada, solo pensar en cómo visualizar un problema a veces puede conducir a una solución)
  • Mientras se los explica a sus colegas
  • Mirando por la ventana
  • Mientras camina
  • Abajo de la ducha
  • En el baño

Alejarse del monitor a menudo es muy útil para concentrarse en el problema en sí mismo y no solo para escribir una implementación.

La resolución del problema ocurre en tu cabeza. Escribir el código del programa es simplemente cómo explicas tu solución a la computadora.

Philipp
fuente
1
¡Gracias! Tienes razón, cuanto más lejos estoy de una computadora, más me puedo enfocar en el problema.
Mahmood Muhammad Nageeb
2
Recuerdo haber leído un libro (no recuerdo cuál, desafortunadamente) que sugirió mantener un pato de goma en su escritorio, y cuando esté perplejo, describa el problema en voz alta al pato de goma.
Gort the Robot
77
@StevenBurnap Esto se llama depuración del pato de goma y es probable que lo lea en The Pragmatic Programmer por Addison Wesley.
Philipp
2
"Escribir el código del programa es simplemente cómo explicas tu solución a la computadora". - Alan Perlis dijo: "Los programas deben escribirse para que los humanos los lean y solo de forma incidental para que las máquinas los ejecuten". Prefiero mirar de esta manera: escribiendo el código es simplemente cómo explicas tu solución a tus colegas . El hecho de que una vez que describa la solución sin ambigüedades de tal manera que cualquier ser humano (incluido usted mismo, dentro de 6 meses) pueda entenderla, también sea ejecutable por una máquina, es solo un efecto secundario de que se describa rigurosamente suficiente para que no haya ambigüedades. …
Jörg W Mittag
44
Re: patito de goma. También hay una historia similar con un oso de peluche. Los tutores del MIT solían sentar osos de peluche frente a sus oficinas. Solo se te permitió tocar la puerta después de haberle explicado tu problema al oso. La mitad de los estudiantes nunca llamaron a la puerta, habiendo descubierto su problema mientras se lo explicaban al oso. Formular una pregunta bien escrita, bien investigada, bien formateada, detallada y de alta calidad sobre StackExchange puede tener el mismo efecto , que es (una de las razones) por qué estamos tan ansiosos por hacer eso.
Jörg W Mittag
7

Creo que esta es una buena pregunta. Por cómo interpreto esto, lo que creo que está preguntando es: "¿Está bien que periódicamente tenga que alejarme de la computadora"?

No creo que pase un día en el que no tenga que levantarme y preguntarle a alguien qué piensa, o sacar un trozo de papel de borrador y garabatear una ecuación para resolver el problema. Además, cuando entres más en la programación, es posible que ni siquiera comiences a escribir el código hasta que hayas creado un diagrama / arquitectura de antemano.

Estaba tomando un curso de estructuras de datos cuando estaba en la universidad y tenía problemas para diseñar un algoritmo de clasificación. Cuando le pedí ayuda a mi profesor, él sabía que no había pensado en el problema de antemano. Lo primero que me dijo fue que todavía no estaba listo para comenzar a escribir el código. Entonces sacó un trozo de papel y dibujó un par de cuadrados, y luego puso los números de la matriz. Luego dibujó un par de imágenes más donde movía los cuadrados y me mostró visualmente cómo funcionaría el algoritmo de clasificación.

Algunas cosas que puede hacer para aclarar su mente y resolver el problema:

  • Tomar un descanso
  • Hablar con un colega
  • Pizarra el problema / concepto
  • ¡Duerme en el!

No se sorprenda si se despierta en medio de la noche con la solución.

Fisgonear
fuente
1

Creo que seguramente ayudará a convertirse en un programador / desarrollador profesional eficiente si puede. Sin embargo, pensar en un problema al traducir la solución a la lógica del programa, en mi humilde opinión, necesita capacitación, por lo que no veo ningún problema si serializa estas tareas, solo necesita poder completar con éxito ambas. Pensar en una solución de principio a fin antes de comenzar a codificar seguramente tiene sus méritos, pero debe ser un personaje algo paciente para esto.

Murphy
fuente