Nonsense

En estos, últimos, días han surgido una serie de conversaciones, lecturas y situaciones que siento que, en cierto modo, terminan haciendo referencia a algunas ideas comunes: dar, pedir, recibir y tomar.

Es un tema muy amplio. Algunas de las cosas que me han hecho pensar en esto son tan aparentemente lejanas como conversaciones personales sobre relaciones humanas, gente haciendo preguntas en reddit, temas de esos de política actual, y gente que se queja en Twitter de “esa gente que se apunta a sus charlas y luego no va”. Como digo, el tema es muy amplio. No voy a hablar de todas estas cosas porque son muchas y, en general, muy aburridas. Voy a elegir una sola, que siendo aburrida también, al menos sólo es una ;)

Cómo Pedir y Dar Ayuda Sobre Programación

Sé que hay mucho escrito sobre esto 1). En concreto hay una muy clásica guía de E.S.Raymond. Muy clásica y muy extensa… demasiado extensa. También hay múltiples y variados artículos de similar contenido. Tantos que casi me hacen plantearme escribir esto. Pero, ah, yo voy a intentar centrarme en un enfoque diferente. Probablemente sea más práctico leer esas otras cosas que leer esto.

Cómo Pedir Ayuda Sobre Programación

Lo primero que debes mantener en la mente cuando vayas a pedir ayuda es esta, aparentemente simple, idea:

Eres el que está pidiendo ayuda.

De esta idea debería derivar toda tu aproximación a cómo debes pedir ayuda. Tú quieres que te ayuden. Los demás, esperemos, quieren ayudarte también, sí, pero sobre todo tú quieres que te ayuden. Mucho más tú que los demás.

¿Y qué se deriva de esto? Bueno, en primer lugar que tú deberías hacer todo lo posible para que te ayuden, para que sea posible ayudarte, para que sea fácil hacerlo. Si ahora te recomiendo cosas como que des toda la información relevante posible, que expliques las cosas lo mejor que puedas, que enseñes tu código, que pongas los mensajes de error… seguramente, si tienes esa idea fundamental en la cabeza todas estas cosas te parezcan naturales. Tú quieres que te ayuden, por tanto harás todo lo que puedas para que se lo más fácil posible ayudarte. Suena lógico, ¿no?

Aspectos prácticos

Hay algunos aspectos prácticos que, especialmente si no tienes mucha experiencia, quizá no se te ocurran. Te los cuento muy brevemente:

  • Enseña tu código. No pongas una imagen, una captura de pantalla de tu código; pon el código, el texto, tal cual es. Pon el que estás usando y que te da problemas; no pongas uno que se parece. No describas tu código, simplemente enséñalo. Aprende también cómo se hace para insertar código en el foro en el que estés preguntando y haz que se vea bien. Hay sitios que usan diferentes variantes de Markdown o algún editor que tiene un botón de “insertar código”. También puedes usar un pastebin o similar. Si ya pudieras enseñar el código en vivo funcionando (por ejemplo en tu sitio web o en uno de esos sitios que te permiten ejecutar y compartir código tipo repl.it, plunker, codepen, etc. hay cientos) pues mejor que mejor. Pero como mínimo, enseña tu código bien formateado.
  • Explica el problema. Esto tiene 2 partes principales:
    • Explica qué es lo que estás intentando conseguir. Cómo quieres que funcione. Qué es lo que se supone que debe hacer
    • Explica qué es lo que ocurre en su lugar. Evita a toda costa usar frases como “no funciona”. Eso no da ninguna información. Explica qué es lo que pasa.
  • Si hay errores, copia tal cual el mensaje de error. Si identificas que ocurre en una línea determinada, cuéntalo también y señala la línea de algún modo (la línea 17 de tu código original a lo mejor no es la 17 del trozo de código que has copiado)
  • Da toda la información que tengas que sea relevante. Ya sé que es difícil saber qué es relevante y qué no lo es. Pero por lo menos inténtalo. Y en general, mejor dar un poco más información de la necesaria que dar un poco menos.

Además de esos aspectos prácticos, hay alguna cosa más que deberías tener en cuenta.

Eres el que está pidiendo ayuda.

Lo repito para que lo tengas presente. Porque los demás, en general, van a intentar ayudarte. Puede que tarden en responder. Puede que te den soluciones que no te gusten del todo. Puede que te pidan más información. Puede que te pregunten más aclaraciones. Recuerda siempre que si lo hacen es porque quieren ayudarte pero están teniendo alguna dificultad para hacerlo. Sé paciente y pon de tu parte todo lo que puedas para facilitar que te ayuden. Y cuando lo hagan, recuerda ser agradecido. No hace falta mucho, de verdad, pero una contestación sencilla dando las gracias y confirmando que has podido solucionar tu problema con la ayuda recibida, ya es algo que se aprecia. Te diría que incluso si no consiguen ayudarte a solucionar el problema, dar las gracias por haberlo intentado nunca está de más.

Sí, habrá gente que realmente no quiera ayudarte, que te conteste mal, que te diga que no hagas eso o lo que sea. Es muy posible que algunos sean desagradables e incluso maliciosos. Recuerda que tú quieres que alguien te ayude. No contestes a estos. No les contestes mal, ni bien. Simplemente no les contestes.

Cómo Dar Ayuda Sobre Programación

Si estás pensando en ayudar a otras personas, entonces creo que puedo asumir de ti que tienes por lo menos algo de experiencia 2). Por eso, a ti te voy a pedir que recuerdes no una sino dos ideas fundamentales:

No esperes nada más que la satisfacción de haber ayudado.
Piden ayuda porque están aprendiendo, porque todavía no saben.

De nuevo habrá diversos aspectos prácticos, pero también estos se deberían derivar de estas dos premisas. Cada una de las dos debería producir unos efectos concretos sobre tu forma de dar esa ayuda.

Lo primero es tener en cuenta eso, que no estás ayudando porque eso te vaya a producir ningún beneficio particular directo, más allá de que, si te gusta ayudar, estarás… bueno, eso: ayudando. Reputación, recompensa, compensación… Esas cosas puede que lleguen o puede que no, y no se trata tampoco de rechazarlas, pero créeme si te digo que hacer que esa sea tu motivación es una idea mediocre. Pero en cualquier caso es importante mantener esta idea en la cabeza porque también habrá quien te encuentres que no te dé nada a cambio. No ya las gracias, sino que los habrá que ni te contesten una vez que vean la solución a su problema. No justifico esto, claro, pero asume que ocurrirá en algunos casos.

Y por otro lado, piensa que quien pide ayuda es porque no sabe. Ten paciencia. Intenta aclararles las cosas lo mejor posible. Intenta entender sus intenciones y sus explicaciones aunque no sean muy buenas. Siempre que puedas, aprovecha para ayudarles a que hagan mejor sus preguntas en el futuro. De nuevo, con paciencia.

Aspectos prácticos

Como aspectos prácticos a la hora de dar contestar a alguien que pide ayuda técnica, te recomiendo:

  • Antes de nada intenta comprender bien el problema real. A veces alguien pregunta X pero sólo porque no sabe que existe Y. Otras pregunta Y porque cree que es la solución pero su problema real era X. Otras veces no sabe expresar bien su problema. Pregunta, pide aclaraciones, lo que necesites para dar la ayuda más adecuada.
  • Haz suposiciones razonables. Hacer suposiciones es arriesgado, pero a veces necesario. Por eso, cuando las hagas, que sean razonables.
  • Ofrece, ante todo, una explicación. La forma de ofrecer una ayuda real y efectiva no es dar una solución sino enseñar esa solución. Yo, en general, casi siempre evito contestar a quien solo busca una solución y no aprender. No digo que tú debas hacer lo mismo, pero sí te digo que es mucho más provechoso ofrecer una explicación con o incluso sin solución precisa, que ofrecer una solución precisa sin explicación alguna.
  • Ofrece una ayuda adaptada a quien la recibe. Esto es más importante de lo que se piensa. No sirve de nada darle a alguien una ayuda que no va a poder usar, o una respuesta que no puede entender o aplicar.
  • Evita dar soluciones de las que no estés seguro. Si no sabes algo, es mejor que no digas nada. Si no estás del todo seguro pero crees que puedes aportar algo, bien, apórtalo, pero indica tus dudas.

Recuerda siempre, por tu propia tranquilidad, ser paciente, y que nadie te obliga a ayudar. Si no quieres hacerlo, simplemente deja que otros lo hagan.

1)
Por lo menos sobre cómo pedirla; sobre cómo darla parce que no hay tanto
2)
más sobre esto dentro de un momento