Lo que aprendí en 10 años en Stack Overflow

Lo que aprendí en 10 años en Stack Overflow
Me acerco a mi décimo aniversario en Stack Overflow. A lo largo de los años, mi forma de utilizar el sitio y mi percepción del mismo ha cambiado mucho y quiero compartir mi experiencia con ustedes. Y escribo sobre esto desde el punto de vista del usuario promedio que no está muy involucrado en la vida de la comunidad del sitio o su cultura. Estos días solo he estado respondiendo preguntas relacionadas con VS Code, el producto en el que estoy trabajando. Sin embargo, solía participar activamente en discusiones sobre una amplia gama de temas. En 10 años yo Hizo alrededor de 50 preguntas y dio 575 respuestas., revisó una gran cantidad de comentarios de otras personas.

jon skeete describió la cultura de Stack Overflow mucho mejor y con más autoridad de lo que jamás podré hacer. Su publicación influyó en algunos de los capítulos de este artículo, pero en general estas son mis propias reflexiones sinceras sobre mis experiencias en Stack Overflow, lo bueno y lo malo del sitio y cómo se puede utilizar hoy. Esta discusión será bastante superficial, sin profundizar en el funcionamiento del sitio o su historia.

Esto es lo que he aprendido durante 10 años usando Stack Overflow.

Necesitas poder hacer preguntas

A primera vista, nada podría ser más sencillo: introduzca algunas palabras en el campo de texto, haga clic en "Enviar" e Internet le ayudará mágicamente a resolver todos sus problemas. Pero me tomó casi 10 años descubrir qué palabras escribir en ese maldito campo para obtener resultados. De hecho, sigo aprendiendo sobre ello todos los días.

Hacer buenas preguntas es una habilidad verdaderamente subestimada (al igual que escribir un buen informe sobre un tema, de hecho). Primero, ¿cómo determinamos si una pregunta es “buena”? Ofertas de desbordamiento de pila insinuar, que enumera las siguientes cualidades de una buena pregunta:

  • ¿Coincide con el tema del sitio?
  • Implica una respuesta objetiva.
  • Aún no se ha preguntado.
  • Ha sido investigado.
  • Describe claramente el problema, generalmente con un ejemplo mínimo y fácilmente reproducible.

Bien, pero ¿cómo se ve en la práctica un “planteamiento claro del problema”? ¿Qué información es relevante y cuál no? A veces parece que para hacer una buena pregunta, primero necesitas saber la respuesta.

Desafortunadamente, el pequeño campo de texto no ayuda aquí. Entonces, ¿es de extrañar que tantos usuarios publiquen preguntas de baja calidad? A veces, la única respuesta que obtienen es un enlace a documentación confusa. Y todavía tendrán suerte. Muchas preguntas de baja calidad simplemente son rechazadas silenciosamente y desaparecen en un hilo interminable de preguntas.

Hacer buenas preguntas es una habilidad. Afortunadamente, se puede desarrollar. Aprendí principalmente leyendo un montón de preguntas y respuestas, observando qué funcionó y qué no. ¿Qué información es útil y cuál molesta? Aunque todavía tendrá miedo de utilizar los conocimientos adquiridos en la práctica y hacer preguntas. Simplemente haz tu mejor esfuerzo y aprende de los resultados. Debo admitir que yo mismo estoy un poco avergonzado por algunas de mis primeras preguntas ignorantes, aunque quizás esto demuestre que he mejorado mucho mis habilidades para hacer preguntas desde que llegué a este sitio.

Las preguntas malas y no tan buenas no son lo mismo

No voy a endulzar la píldora: algunas preguntas son simplemente malas.

Una pregunta que consta de una captura de pantalla y la frase “¿¡POR QUÉ NO FUNCIONA!?!” - malo. ¿Por qué? Es obvio que el autor casi no hizo ningún esfuerzo. Esto no es tanto una pregunta sino una exigencia: “¡haz este trabajo por mí!” ¿Por qué haría esto? Mi tiempo es demasiado valioso como para desperdiciarlo ayudando a alguien que, para empezar, no quiere aprender y no apreciará mi ayuda. Aprenda qué es Stack Overflow.

Ahora considere una pregunta titulada "Cómo eliminar los bordes azules de mi página", que consta de varios párrafos de texto que hablan sobre la propiedad de esquema CSS, pero sin mencionar explícitamente las palabras "CSS" o "esquema". Si bien una pregunta como esta puede ir en contra de muchas pautas de Stack Overflow, no estoy de acuerdo, no es una mala pregunta. El autor al menos intentó dar alguna información, incluso sin saber qué dar. El intento cuenta, al igual que la voluntad de percibir y aprender.

Sin embargo, muchos contribuyentes de Stack Overflow probablemente tratarán ambas preguntas de la misma manera: votar en contra y cerrar. Esto es frustrante y desanima a muchos usuarios inexpertos antes de que puedan aprender a hacer mejores preguntas e incluso comprender cómo funciona el sitio.

Las preguntas realmente malas no merecen la pena. Pero hay que tener en cuenta que quienes hacen preguntas no muy buenas lo hacen sin querer. Quieren hacer buenas preguntas, pero no saben cómo. Si castigas a los recién llegados a ciegas y sin explicaciones, ¿cómo aprenderán?

Una buena pregunta no garantiza una respuesta

Stack Overflow suele proporcionar respuestas más rápidas a preguntas sencillas que muchas personas pueden responder. ¿Tiene alguna pregunta sobre la búsqueda binaria en JavaScript o sobre HTML? ¡Maravilloso! Reciba cinco respuestas en menos de una hora. Pero cuanto más compleja o específica sea la pregunta, menos probable será que obtenga una respuesta, independientemente de la calidad de la redacción.

La probabilidad de obtener una respuesta también disminuye rápidamente con el tiempo. Cuando una pregunta abarca varias páginas del feed, se pierde. Una semana después, sólo puedes rezar para que alguien con los conocimientos adecuados encuentre tu pregunta (o haga clic generosamente en ella).

Puede que no te gusten las respuestas correctas.

Cada mes recibo varios votos negativos por las llamadas respuestas impopulares. Este es el tipo de respuestas que básicamente dicen: "la razón es porque está diseñado de esa manera", o "no es posible porque...", o "es un error que debe corregirse primero". En todos los casos anteriores, los autores no reciben una solución o incluso una solución alternativa. Y sospecho que cuando a la gente no le gusta lo que dice una respuesta, la rechazan. Incluso las entiendo, pero eso no significa que las respuestas sean incorrectas.

Por supuesto, lo contrario también es cierto: las buenas respuestas no necesariamente te dicen lo que quieres escuchar. Algunas de las mejores respuestas primero responden a la pregunta original, pero luego describen otros enfoques para resolver el problema. A veces respondo la pregunta de un usuario y luego escribo un texto largo sobre por qué no es recomendable hacerlo.

Siempre que las expresiones de actitud se simplifican a votos a favor y en contra o a un botón de Me gusta, se pierden distinciones importantes. Este problema ocurre con frecuencia en Internet. ¿Cuántas redes sociales te permiten distinguir entre “lo apoyo” y “creo que está bien dicho, aunque no me guste o no esté de acuerdo”?

En general, a pesar de los votos negativos mensuales, creo que la comunidad de Stack Overflow vota de manera justa. Seguiremos por este camino.

Casi nunca pregunto en Stack Overflow

Cuanto más usaba este sitio, con menos frecuencia hacía preguntas. Esto se debe en parte a mi crecimiento profesional. Muchos de los problemas que enfrento en el trabajo son demasiado complejos para expresarlos en preguntas simples, o demasiado específicos para que alguien pueda ayudarme. Me he dado cuenta de las limitaciones del sitio, así que evito hacer preguntas para las que casi con seguridad no obtendré una buena respuesta.

Pero rara vez hice preguntas aquí, incluso cuando estaba aprendiendo un nuevo lenguaje o marco. No porque sea un genio, sino todo lo contrario. Es solo que, después de años de estar en Stack Overflow, cuando tengo una pregunta, llego a la profunda convicción de que es poco probable que sea el primero en hacerla. Empiezo a buscar y casi siempre encuentro que alguien ya preguntó lo mismo hace un par de años.

Observar las preguntas de otras personas es una excelente manera de aprender cosas nuevas sobre su producto.

Ahora estoy trabajando en Código VS, así que me acostumbré a mirar las preguntas etiquetadas como vscode. Esta es una excelente manera de ver cómo se usa mi código en el mundo real. ¿Qué problemas encuentran los usuarios? ¿Cómo se puede mejorar la documentación o API? ¿Por qué algo que pensé que era absolutamente claro causa tantos malentendidos?

Las preguntas son una señal importante que muestra cómo se utiliza su producto. Pero el punto no es responder y seguir adelante, sino intentar primero entender por qué la persona tiene una pregunta. ¿Quizás hay un problema en el producto que usted desconoce o algunas suposiciones que hizo sin saberlo? Las preguntas también me ayudaron a descubrir muchos errores y me inspiraron a seguir trabajando.

Si mantiene un producto para desarrolladores, no piense en Stack Overflow como un vertedero (o peor aún, un cementerio de preguntas). Vuelva a consultar periódicamente para ver qué preguntas y respuestas han aparecido. Esto no significa que deba responder todas las preguntas usted mismo, pero las señales de Stack Overflow son demasiado importantes para ignorarlas.

Las líneas entre una pregunta, un informe de error y una solicitud de función son borrosas.

Muchas preguntas sobre VS Code en Stack Overflow fueron en realidad informes de errores. Y muchas otras son en realidad solicitudes de nuevas funciones.

Por ejemplo, una pregunta con el título "¿Por qué VS Code falla cuando lo hago...?" - este es un informe de error. VS Code no debería fallar en una variedad de situaciones. Responder preguntas que son informes de errores es contraproducente porque los autores pueden estar satisfechos con una solución alternativa y nunca presentar un informe de errores real. En situaciones como esta, normalmente pido a los usuarios que presenten un informe de error en Github.

En otros casos, las diferencias pueden ser menos obvias. Por ejemplo, la pregunta "¿Por qué JavaScript IntelliSense no funciona en VS Code?" Dependiendo de cómo no funcione JavaScript IntelliSense, el problema puede clasificarse en una de tres categorías:

  • Si se trata de un problema de configuración del usuario, entonces en realidad es una pregunta para Stack Overflow.
  • Si en el caso descrito IntelliSense debería funcionar, pero no lo hace, entonces se trata de un informe de error.
  • Si en el caso descrito IntelliSense no funciona, entonces se trata de una solicitud de una nueva función.

Al final del día, a la mayoría de los usuarios no les importan estos matices; solo quieren que JavaScript IntelliSense funcione.

Y aunque estas diferencias son importantes para mí, como responsable del proyecto, en general no deberían importarme. Porque las preguntas, los informes de errores y las solicitudes de funciones son formas de expresar una idea: el usuario espera algo de mi código y no lo obtiene. Si el producto fuera perfecto, los usuarios nunca harían preguntas sobre él, porque todo estaría claro para ellos y haría exactamente lo que quieren (o al menos les diría claramente por qué no puede).

Los desarrolladores también son personas

La gente es emocional. La gente es irracional. La gente es unos idiotas. No siempre, por supuesto, ¡pero a veces! Y lo creas o no, los desarrolladores también son personas.

Hay una fantasía que a los desarrolladores nos gusta decirnos: “Trabajamos con computadoras, así que tenemos que ser racionales. Entendemos los símbolos crípticos, por eso debemos ser inteligentes. El software se ha apoderado del mundo, ¡así que tenemos que ser geniales! ¡Fresco! ¡¡¡Adelante!!!"

Esto está mal. Y si fuera así, que Dios ayude al resto del pueblo. Incluso en Stack Overflow, esa herramienta para profesionales diseñada como una base de conocimiento objetiva, incluso en mi rincón muy específico de VS Code, sigo encontrando todo tipo de atropellos: falacias lógicas, insultos, mentalidad de rebaño, etc.

No te engañes: probablemente no seas tan perfecto como crees. Pero esto no significa que no debamos intentar deshacernos de nuestras deficiencias.

Amigo, soy yo quien creó esto.

Yo también soy un ser humano y de vez en cuando me molesta lo que sucede en Stack Overflow. Por ejemplo, cuando un usuario escribe con confianza tonterías o simplemente da una respuesta errónea a una pregunta relacionada con VS Code, un producto que creé y que conozco muy bien. Curiosamente, parece que cuanto más errónea es la respuesta, más probable es que alguien la considere un hecho indiscutible.

Cuando esto sucede, actúo como en la imagen y escribo la respuesta correcta.

Lo que aprendí en 10 años en Stack Overflow

Y varias veces esto resultó en hilos largos: ¡ay de mí por atreverme a cuestionar su conocimiento de lo que creé! ¡Dejen de intentar tener razón todo el tiempo, malditos inteligentes! ¡¡¡Porque tengo razón!!!

Es fácil volverse cínico en esta desesperanza.

Cuando nos enfrentamos a un flujo interminable de preguntas de baja calidad, es fácil volverse cínico. ¿Nunca ha oído hablar de Google? ¿Sabe siquiera cómo construir oraciones coherentes? ¿Qué eres, un perro?

A veces veo docenas de preguntas nuevas en un día. Observar constantemente todas estas preguntas de baja calidad corre el riesgo de caer en el desprecio o el cinismo. Este cinismo puede extenderse al sitio, como lo atestiguará cualquiera que se haya encontrado con un moderador demasiado entusiasta o haya pasado un par de horas investigando y redactando una pregunta, solo para recibir respuestas negativas a cambio y desaparecer en el olvido sin ninguna explicación.

Por supuesto, hay usuarios que no ponen un ápice de esfuerzo y publican malas preguntas. Pero creo que la mayor parte de las preguntas de baja calidad provienen de personas con buenas intenciones (aunque sean estúpidas). Siempre trato de recordar lo que significa ser un novato. Cuando recién empiezas, no entiendes cómo funciona realmente todo aquí. En algunos casos, ni siquiera sabes qué palabras expresar correctamente tu problema. Créame, es difícil estar en esta posición. Y es desagradable cuando te rocían con agua solo por hacer una pregunta.

Aunque Stack Overflow ha hecho mucho para ayudar a los novatos, todavía queda mucho más por hacer. Intenté encontrar un equilibrio entre cumplir con los estándares del sitio y ser indulgente con los usuarios inexpertos. Esto puede implicar explicar por qué voté para cerrar la pregunta o publicar un comentario animando al usuario a proporcionar más información. Todavía tengo espacio para crecer.

Por otro lado, no dudo en votar negativamente a los usuarios con una reputación de 50 que publican preguntas como "¿Cuál es el mejor diseño de VS Code para el desarrollo de JavaScript?", o que suben capturas de pantalla de código en lugar de texto.

A veces solo quiero agradecerte

Existe una débil cultura de gratitud en Stack Overflow. Recuerdo que una vez el sitio eliminó automáticamente las palabras "hola" y "gracias" de las preguntas. Quizás esto todavía esté hecho, no lo he comprobado.

Hoy en día, cualquiera que haya trabajado en atención al cliente sabe bien que demasiada cortesía puede interponerse en el camino e incluso parecer forzada. Pero a veces alguien en este sitio hace algo muy importante para ti y la única forma de agradecerle es dándole un plus. Apesta.

La eficiencia no requiere que nos convirtamos en robots sin alma. Un canal lateral puede proporcionar una comunicación más auténtica entre personas, si los propios usuarios así lo desean, por supuesto.

A veces quiero saber qué pasó después de recibir la respuesta.

Stack Overflow funciona según un principio transaccional: algunas personas hacen preguntas, otras responden. ¿Qué sucede después de recibir una respuesta? ¿Quién sabe? A veces me pregunto sobre esto. ¿Fue útil mi respuesta? ¿En qué modesto proyecto ayudó? ¿Qué aprendió el interrogador?

Por supuesto, es imposible satisfacer esta curiosidad. Exigir a los usuarios que rindan cuentas sobre cómo utilizarán la información que reciben sería muy problemático, incluso si pudiera hacerlo. Pero es interesante pensar en ello.

La gamificación es efectiva...

…al convertir procesos en juegos.

Todavía me preocupo un poco cuando veo el pequeño ícono +10 o +25 en la barra de estado. Quizás estos pequeños toques de gamificación sean la razón por la que vuelvo al sitio desde hace 10 años. Pero a lo largo de los años, también comencé a preguntarme qué tipo de juego es Stack Overflow y qué significa ganar en él.

Estoy seguro de que el sistema fue creado con las mejores intenciones: recompensar a las personas por sus preguntas y respuestas útiles. Pero tan pronto como se suman puntuaciones altas, entra en vigor. ley de goodhart, y algunos usuarios comienzan a ajustar sus acciones no para lograr el máximo valor, sino para obtener la máxima calificación. Y esto es importante porque...

La reputación no significa lo que usted cree que significa.

La reputación no equivale a competencia técnica, habilidades de comunicación o comprensión de cómo funciona o debería funcionar Stack Overflow.

No quiero decir que la reputación sea inútil. Simplemente no significa lo que quieren decir los administradores de Stack Overflow o lo que se supone que significa la palabra "reputación". Me di cuenta de que la reputación es una medida de influencia. Considere dos respuestas hipotéticas publicadas en el sitio:

  • Uno sobre una operación común de git. Escribí una respuesta de tres líneas en dos minutos usando Google.
  • El otro trata sobre la teoría de grafos entrelazados. Quizás sólo cien personas en todo el mundo puedan responderla. Escribí algunos párrafos y un código de muestra que explica el problema y cómo resolverlo.

En cinco años, la primera respuesta fue vista 5 millones de veces y recibió 2000 votos positivos. La segunda respuesta fue analizada 300 veces y recibió dos miserables votos a favor.

Hasta cierto punto esto es muy deshonesto. ¿Por qué premiar algo que estuvo en el lugar correcto en el momento correcto? (No todo está determinado por la suerte; comprender las reglas del juego también juega un papel muy importante). Por otro lado, la primera pregunta ayudó a mucha más gente que la segunda. ¿Quizás valga la pena reconocer que, en cierto sentido, el reconocimiento conduce a la acumulación de “reputación”?

Por eso considero que la "reputación" en Stack Overflow es una especie de medida de influencia. La verdadera reputación no se puede medir por meros puntos, proviene de la comunidad. ¿De quién escucho los consejos, quién ayuda a los demás, en quién confío? Quizás sean todas personas diferentes, dependiendo de si escribo en PHP o para iOS.

Dicho esto, no sé qué debería hacer Stack Overflow a este respecto. ¿Estarían los usuarios tan motivados si en lugar de “reputación” obtuvieran “puntos de astucia”? ¿Los usuarios seguirán tan comprometidos si no existe ningún sistema de puntos? Creo que es poco probable. Y el mito de que la "reputación" en Stack Overflow es equivalente a la reputación real beneficia no sólo al sitio en sí, sino también a sus usuarios más activos. Bueno, de verdad, ¿a quién no le gusta aumentar su reputación?

No, como suele suceder en la vida, para tener una idea real de lo que está sucediendo, es necesario analizar no solo los números. Si una publicación tiene 10 mil puntos en Stack Overflow, observe cómo se comunica esta persona, qué preguntas y respuestas publica. Y en todos los casos, excepto en casos excepcionales, tenga en cuenta que es poco probable que las puntuaciones de Stack Overflow por sí solas indiquen algo más que la capacidad de una persona para utilizar el sitio. Y en mi experiencia, muchas veces ni siquiera hablan de esto.

No sería productivo sin Stack Overflow

Cada vez que necesito hacer algo complicado en git, voy a Stack Overflow. Cada vez que necesito algo simple en bash, voy a Stack Overflow. Cada vez que aparece un error de compilación extraño, voy a Stack Overflow.

No soy productivo sin IntelliSense, un motor de búsqueda y Stack Overflow. A juzgar por algunos libros, esto me convierte en un muy mal programador. Probablemente reprobaría muchas pruebas y no resolvería muchos problemas en el tablero. Que así sea. En serio, cada vez que uso .sort en JavaScript, tengo que buscar información sobre cuándo obtendré -1, 0 o 1, y escribo JS todos los días, desarrollando el editor más popular para el lenguaje.

No, Stack Overflow es una herramienta increíble. Sólo un tonto no utilizaría todas las herramientas a su disposición. Entonces, ¿por qué no ser un tonto interior como yo? Guarde los recursos de su cerebro para conocimientos importantes, como memorizar todas las tramas de la serie Seinfeld o inventar juegos de palabras sofisticados (que faltan en este artículo, pero habrá muchos otros de naturaleza completamente diferente).

Stack Overflow es un milagro

Stack Overflow permite que cualquier persona, independientemente de su experiencia o conocimiento, publique preguntas sobre programación. Estas preguntas son respondidas por completos desconocidos, la mayoría de los cuales dedican parte de sus vidas y carreras a ayudar a otros de forma gratuita.

El milagro es el hecho mismo de la existencia y el resultado del trabajo de Stack Overflow. Seguro que no todo sale tan bien como pretendían sus creadores, pero lo intentan. A pesar de todas las deficiencias, el sitio ha ayudado a una gran cantidad de personas durante muchos años, incluido yo.

Stack Overflow no durará para siempre. Un día llegará algo mejor. Con suerte, esto es algo que aprenderá de los errores de Stack Overflow y aprovechará lo mejor de ellos. Hasta entonces, espero que no demos por sentado este sitio. Esta es a la vez un hito y una comunidad viva, que se repone constantemente con gente nueva. Si esto le preocupa, recuerde que todo esto es muy frágil, e incluso pequeñas acciones, como ayudar a recién llegados bien intencionados pero aún ignorantes, pueden tener un efecto positivo. Si critico este sitio, es sólo porque me importa y sé cómo mejorarlo.

PS

Todavía era un colegial cuando llegué a Stack Overflow. Estaba empezando a escribir JavaScript (¡ES5!) en Eclipse, y parecía que el 90% de las preguntas comenzaban con "Usando jQuery, solo...". Y aunque no sabía lo que estaba haciendo, desconocidos dedicaban su tiempo a ayudarme. No creo que lo apreciara mucho en ese momento, pero no lo he olvidado.

La gente siempre querrá que Stack Overflow sea algo diferente: un sitio de preguntas y respuestas; una herramienta para resolver problemas domésticos; nivel de vida de la programación. Y para mí, este sitio, a pesar de su crecimiento y deficiencias, es en esencia una comunidad abierta donde los extraños se ayudan unos a otros a aprender y mejorar. Y eso es genial. Me alegro de haber sido parte de Stack Overflow durante los últimos 10 años y espero seguir haciéndolo. Quiero aprender tantas cosas nuevas en la próxima década como lo hice en la década anterior.

Fuente: habr.com

Añadir un comentario