Dando clases de programación a diferentes niveles, a lo largo de los años me he encontrado con variopintas preguntas relacionadas con problemas o ejercicios de programación. En persona es razonablemente sencillo seguir un diálogo que al final permita ayudar al alumno con su problema. Sin embargo, por correo electrónico esto no es fácil. Aquí escribo una serie de consejos para formular dichas preguntas de tal forma que la persona a la que preguntas pueda ayudarte.

  • Identifícate y pon en contexto tu pregunta. ¿Quién eres? ¿Por qué haces la pregunta? ¿De qué asignatura? 
  • Describe el problema que tienes y estás intentando resolver. No hagas referencia a una lista de problemas sino descríbelo con tus palabras.  Ayuda a tu interlocutor a entender cómo percibes el problema.
  • Para explicar qué es lo que no sabes cómo resolver, propón tu solución, explica cómo has razonado dicha solución y explica por qué no sirve. O bien explica por qué te es imposible llegar a dicha solución.
  • Adjunta el código en un formato que sea útil a quien pretendes que te ayude. No envíes capturas de pantalla, ni copies y pegues el código en un procesador de texto. Puede que quien te ayude necesite compilar y probar lo que tú has hecho.
  • Si tu pregunta es una duda más general ("¿qué pasa cuando se sobreescribe un método?", "¿qué pasa cuando un parámetro tiene el mismo nombre que una variable global?") ilústrala con un ejemplo mínimo de código fuente para facilitar la discusión.
  • No lances preguntas al aire que sin un contexto adecuado no pueden responderse.  Desde luego "una ayudita que estoy algo atascado" o "este programa no funciona, dime por qué" no son preguntas bien formuladas.
  • Dispones de una herramienta para comprobar si tu programa funciona o no funciona: el compilador. Úsalo, haz pruebas, intenta encontrar una solución. Cuando formules tu pregunta, explica qué pruebas has hecho, qué resultado daba tu programa y qué resultado debería dar.
  • Si tu programa no compila, esfuérzate en comprender los mensajes que da el compilador. Si después de intentarlo no consigues entender el problema, indica qué error te da el compilador y en qué línea cuando formules tu pregunta.
  • Si tú no te esfuerzas en comentar y hacer legible tu código, no esperes que otra persona se esfuerce en entenderlo.
  • Si se trata de trabajos o prácticas de una asignatura (lo comúnmente denominado como deberes), no pretendas que nadie las haga por ti. Hay una diferencia entre ayudar a resolver un problema y directamente dar la solución a dicho problema.