¿Cómo puedo ingresar a la "mente del programador" más rápido y con más frecuencia? [duplicar]

12

Hay un flujo de trabajo en el que estoy trabajando. Hasta ahora, los formularios web han llenado bases de datos con scripts de configuración de escritura ocasional para instrumentos de análisis, y lo he escrito todo en Perl, Javascript, HTML, Javascript, MySQL.

Y ahora mismo, la tarea que tengo delante es generar un script Bash de análisis post-instrumento. O, más bien, un generador de script de análisis post-instrumento escrito por Perl. Y está tomando para siempre.

He tenido esto como una tarea ardua desde hace un tiempo, y el progreso ha sido horriblemente, vergonzosamente lento. De hecho, el viernes pasado, me senté, mirando la pantalla, tratando de encontrar mi camino hacia el siguiente paso del proyecto y el primer signo de ... ¿inspiración? De la capacidad? ¿De conocer y atacar cualquier aspecto de la tarea y poder codificarlo? Bueno, comenzó a las 4:30 pm, y lo monté hasta las 8:20.

Estoy buscando y esperando ideas y técnicas para ingresar a ese espacio mental de manera consistente y en mi horario. ¿Algún puntero?

    
pregunta Dave Jacoby 28.03.2011 - 04:34

11 respuestas

11
respondido por el Ciaran 28.03.2011 - 05:36
5

Obtenga un bloc de notas y un bolígrafo cómodo y escríbalo físicamente. Escribe exactamente lo que estás tratando de hacer. Dibujar, garabatear, garabatear, solo dibujar / escribir. Mspaint no funciona. Cualquier programa en su computadora que supuestamente ayude, no funcionará. El hecho de escribir las palabras de cualquier idioma que estés usando en cualquier editor que estés usando no crea un programa. Está hecho en tu cerebro.

¿Quieres escribir un código? ¡Aléjate de tu computadora!

Recientemente construí una base de datos mysql para un sitio web de fotografía de amigos. Me estaba costando mucho darme cuenta de cómo necesitaba trabajar y cómo colocar la estructura de la mesa. Intenté primero mspaint, luego varias aplicaciones de diseño de bases de datos. Todos ayudaron un poco, pero yo todavía estaba atascado. Tan pronto como obtuve un bolígrafo y un papel de verdad y lo escribí, simplemente hice clic.

Esto puede sonar "nuevo-nuevo", pero honestamente creo que tiene algo que ver con tener que usar tu cerebro para mover físicamente tu brazo para mover la pluma para dibujar lo que estás pensando.

    
respondido por el Zack 28.03.2011 - 09:26
2

Si estás demorando

Si eliminas todas las cosas más interesantes de tu vida, lo más interesante que quedará será tu trabajo.

Si realmente estás atascado

Encuentro sacando un bloc de notas anticuado y preguntando "¿Qué estoy tratando de hacer aquí?" Y después de haber respondido, "¿Cómo llego de A a B?". Si puedo ponerlo en pasos, entonces haré el primer paso. Si no, tal vez pregunte a alguien más? (Pero google primero.)

    
respondido por el user21007 28.03.2011 - 05:37
1

Primero, si estás buscando punteros, estás usando el lenguaje incorrecto, intenta C ... espera un juego de palabras ...

Pero en realidad, a veces la mejor manera de entrar en un cierto estado de ánimo o de superar un punto muerto en la programación es trabajar en algo diferente por un tiempo, o intentar atacar el mismo problema desde un ángulo diferente .

    
respondido por el Jeff Langemeier 28.03.2011 - 05:01
1

"¿Saber y atacar cualquier aspecto de la tarea y poder codificarlo? Bueno, comenzó a las 4:30 pm ..."

Debe definir lo que está construyendo antes de poder construirlo. Esto es lo que te detuvo en tus propias palabras.

    
respondido por el P.Brian.Mackey 28.03.2011 - 05:43
1

El flujo es la respuesta definitiva. Para hacer eso, necesitas objetivos claros. Eso encapsula algunos de los artículos que otros han mencionado. A veces, el camino hacia esos objetivos no es tan claro, por lo que necesita algún tipo de "actualización mental".

Muchas personas que codifican para ganarse la vida también hacen malabares. No estoy hablando de hacer malabares con una larga lista de tareas, estoy hablando de hacer malabares con objetos. Lo que pasa con el malabarismo es que no requiere habilidades cognitivas significativas, pero SÍ requiere concentración y atención completa. Si puede distraerse por completo de la tarea que le está molestando y ENFOCARSE COMPLETAMENTE en otra cosa, con frecuencia obtendrá un "Eureka". momento y luego puede volver a la codificación.

No tengo la coordinación para hacer malabares. Me coloco en una máquina para correr, frente a una ventana, pongo un poco de ruido blanco en mis auriculares, pongo mi e-reader delante de mí y camino durante unos 30 minutos. El esfuerzo físico (no intenso, pero constante) hace que los "jugos fluyan". Otros han sugerido un paseo por el edificio. El clima, por aquí, se vuelve desagradable; La cinta de correr es utilizable, independientemente de cómo sea el clima. El e-reader, con un libro atractivo, suele ser suficiente para distraerme mentalmente. La luz natural, especialmente durante el día, ayuda a despejar la mente (las luces fluorescentes tienden a hacer lo contrario).

Después de eso, por lo general me refresco lo suficiente como para poder abordar cualquier problema que me esté molestando. Y tengo una mejor oportunidad de encontrar objetivos claros y un camino hacia ellos, lo que mejora las posibilidades de alcanzar un estado de "flujo".

    
respondido por el Meower68 13.06.2013 - 17:09
0

Estas son algunas de las cosas que hago cuando me quedo atascado:

  • Especifique (lo contrario de generalizar). Resuelve una versión más específica del problema.
  • Divida el problema en partes componentes y resuelva una parte.
  • Vuelva a caracterizar el problema. ¿Qué estoy tratando de hacer?
  • Tómate un descanso.
  • Haz que participe alguien más que esté más fresco.
respondido por el dietbuddha 28.03.2011 - 08:03
0

Si está seguro de que el problema no es agotamiento, y que un descanso planificado y honesto no lo solucionará, entonces poner mi mente en otra cosa por un tiempo funciona para mí:

  • Meditación.
  • Reproducción de música.
  • Un deporte.
  • El I Ching . Todo el proceso.
  • Estudiar algo técnico pero (aparentemente) sin relación alguna con la tarea en cuestión. Promueve el pensamiento lateral.
respondido por el Apalala 28.03.2011 - 05:54
0

Descubrí que si tengo problemas para averiguar cómo proceder con algo, todavía no he comprendido el dominio del problema por completo.

Creo que una cosa que me retiene es sentir presión para producir algo. Lo que me gusta hacer es explorar libremente el dominio del problema sin intentar diseñar o implementar. Una vez que he estado explorando un tiempo, puedo ver los componentes y lo que hay que hacer. Luego puedo diseñar los objetos y el flujo, averiguar qué quiero hacer y cómo, y luego puedo implementarlo. Pero si trato de empujar a alguno de estos últimos a la fase de exploración, me congelaré el cerebro.

A menudo encuentro que mi mente siente la libertad de explorar cuando estoy lejos de la computadora y puedo escribir cosas, como han mencionado otros. Si estoy en la computadora, entonces siento que debería estar programando, que no es lo que necesito hacer para comenzar.

Algunas veces un poco de codificación o creación de prototipos será útil / necesario, pero solo llego a ese punto después de explorar un poco.

¿Podría ser que tal vez no eres una persona de la mañana? Tuve un compañero de trabajo que se quejó de lo mismo, no siendo productivo hasta el final del día. Tal vez es así como algunas personas trabajan.

    
respondido por el paul 13.06.2013 - 22:55
-1

Varias personas han dicho que se alejen de la computadora, y un paseo por la cuadra puede hacer maravillas. Pero para problemas realmente difíciles, lo pienso mientras voy a dormir. Preferiblemente, una siesta en la tarde, en la que no vas a estar fuera durante 8 horas, pero por la noche puede funcionar un bolígrafo y un bloc de notas junto a la cabeza.

    
respondido por el orbfish 10.04.2011 - 06:08
-1

Me gusta realizar un Kata TDD ( Algunos Katas ) que me ayudan a resolver un problema simple y realizar alguna práctica deliberada. Utilizo esto como calentamiento o como una distracción si estoy resolviendo un problema particularmente frustrante.

    
respondido por el Seth M. 13.06.2013 - 17:27

Lea otras preguntas en las etiquetas