O que aprendín en 10 anos en Stack Overflow

O que aprendín en 10 anos en Stack Overflow
Estou aproximando o meu décimo aniversario en Stack Overflow. Co paso dos anos, a miña forma de usar o sitio e a percepción do mesmo cambiou moito, e quero compartir a miña experiencia contigo. E estou escribindo sobre isto desde o punto de vista do usuario medio que non está moi implicado na vida da comunidade do sitio ou na súa cultura. Estes días só estiven respondendo preguntas relacionadas con VS Code, o produto no que estou a traballar. Non obstante, adoitaba participar activamente en debates sobre unha ampla gama de temas. En 10 anos eu fixo unhas 50 preguntas e deu 575 respostas, mirou unha infinidade de comentarios doutras persoas.

Jon Skeete describiu a cultura de Stack Overflow moito mellor e máis autorizado do que nunca poderei facer. A súa publicación influíu nalgúns dos capítulos deste artigo, pero en xeral estas son as miñas propias reflexións sinceras sobre as miñas experiencias sobre Stack Overflow, o que é bo e malo do sitio e como se pode usar hoxe en día. Esta discusión será bastante superficial, sen mergullarse profundamente no funcionamento do xacemento nin na súa historia.

Entón, aquí está o que aprendín durante 10 anos usando Stack Overflow.

Debe ser capaz de facer preguntas

A primeira vista, nada podería ser máis sinxelo: introduza algunhas palabras no campo de texto, prema en "Enviar" e Internet axudará a resolver todos os seus problemas. Pero tardei case 10 anos en descubrir que palabras escribir nese maldito campo para obter resultados. De feito, aínda estou aprendendo sobre iso todos os días.

Facer boas preguntas é unha habilidade verdadeiramente subestimada (como o é escribir un bo informe de problemas, para o caso). En primeiro lugar, como determinamos se unha pregunta é "boa"? Ofertas de Stack Overflow suxestión, que enumera as seguintes calidades dunha boa pregunta:

  • Coincide co tema do sitio?
  • Implica unha resposta obxectiva.
  • Aínda non foi preguntado.
  • Foi investigado.
  • Describe claramente o problema, normalmente cun exemplo mínimo e facilmente reproducible.

Está ben, pero como se ve na práctica unha "declaración clara do problema"? Que información é relevante e que non? Ás veces parece que para facer unha boa pregunta, primeiro necesitas saber a resposta.

Desafortunadamente, o pequeno campo de texto non axuda aquí. Entón, é de estrañar que tantos usuarios estean publicando preguntas de baixa calidade? Ás veces, a única resposta que obteñen é unha ligazón a algunha documentación confusa. E aínda terán sorte. Moitas preguntas de baixa calidade son simplemente votadas negativamente en silencio e desaparecen no interminable fío de preguntas.

Facer boas preguntas é unha habilidade. Afortunadamente, pódese desenvolver. Sobre todo aprendín lendo un montón de preguntas e respostas, observando o que funcionou e o que non. Que información é útil e que é molesta? Aínda que aínda terás medo de utilizar os coñecementos adquiridos na práctica e facer preguntas. Fai o mellor posible e aprende dos resultados. Debo admitir que eu mesmo estou un pouco avergoñado por algunhas das miñas primeiras preguntas ignorantes, aínda que quizais isto demostre que mellorei moito as miñas habilidades para cuestionar desde que me atopei neste sitio.

As preguntas malas e non tan boas non son o mesmo

Non vou azucarar a pílula: algunhas preguntas son malas.

Unha pregunta que consiste nunha captura de pantalla e a frase "¿POR QUE NON FUNCIONA ESTO?!" - malo. Por que? É obvio que o autor case non fixo ningún esforzo. Esta non é tanto unha pregunta como unha esixencia: "fai este traballo por min!" Por que faría isto? O meu tempo é demasiado valioso para perder axudando a alguén que non quere aprender para comezar e non apreciará a miña axuda. Aprende o que é Stack Overflow.

Considere agora unha pregunta titulada "Como eliminar os bordos azuis da miña páxina", que consta de varios parágrafos de texto que fala sobre a propiedade outline CSS, pero sen mencionar explícitamente as palabras "CSS" ou "esquema". Aínda que unha pregunta como esta pode ir en contra de moitas directrices de Stack Overflow, non estou de acordo, non é unha mala pregunta. O autor polo menos tentou dar algunha información, aínda sen saber que dar. O intento conta, así como a vontade de percibir e aprender.

Non obstante, moitos colaboradores de Stack Overflow probablemente tratarán ambas as preguntas do mesmo xeito: votarán negativamente e pecharán. Isto é frustrante e desactiva a moitos usuarios inexpertos antes de que poidan aprender a facer mellores preguntas e incluso comprender como funciona o sitio.

As preguntas moi malas non valen o teu tempo. Pero hai que ter en conta que os que fan preguntas non moi boas fano sen querer. Queren facer boas preguntas, simplemente non saben como. Se castigas aos recén chegados a cegas e sen explicacións, como aprenderán?

Unha boa pregunta non garante unha resposta

Stack Overflow adoita ofrecer respostas máis rápidas a preguntas sinxelas que moitas persoas poden responder. Tes algunha pregunta sobre a busca binaria en JavaScript ou sobre HTML? Marabilloso! Recibe cinco respostas en menos dunha hora. Pero canto máis complexa ou específica sexa a pregunta, menos probable é que obteña unha resposta, independentemente da calidade da redacción.

A probabilidade de obter unha resposta tamén diminúe rapidamente co paso do tempo. Cando unha pregunta entra varias páxinas no feed, pérdese. Unha semana despois, só podes rezar para que alguén co coñecemento axeitado se atope coa túa pregunta (ou faga clic xenerosamente nela).

Quizais non che gusten as respostas correctas

Cada mes recibo varios votos negativos para as chamadas respostas impopulares. Estes son os tipos de respostas que esencialmente din: "a razón é porque está deseñado así", ou "non é posible porque...", ou "é un erro que hai que corrixir primeiro". En todos os casos anteriores, os autores non reciben unha solución nin sequera unha solución alternativa. E sospeito que cando á xente non lle gusta o que di unha resposta, a vota en contra. Incluso os entendo, pero isto non significa que as respostas sexan incorrectas.

Por suposto, tamén ocorre o contrario: as boas respostas non necesariamente che indican o que queres escoitar. Algunhas das mellores respostas responden primeiro á pregunta orixinal, pero despois describen outros enfoques para resolver o problema. Ás veces respondo a pregunta dun usuario e despois escribo un texto longo sobre por que non se recomenda facelo.

Sempre que as expresións de actitude se simplifican a votos ascendentes e descendentes ou un botón de me gusta, pérdense distincións importantes. Este problema ocorre con frecuencia en Internet. Cantas redes sociais che permiten distinguir entre "Apoio isto" e "Creo que está ben dito, aínda que non me guste ou estea de acordo con iso"?

En xeral, a pesar dos votos negativos mensuais, creo que a comunidade de Stack Overflow vota con xustiza. Seguiremos este camiño.

Case nunca pregunto en Stack Overflow

Canto máis tempo usei este sitio, con menos frecuencia facía preguntas sobre el. Isto débese en parte ao meu crecemento profesional. Moitos dos problemas aos que me enfronto no traballo son demasiado complexos para expresalos en preguntas sinxelas ou demasiado específicos para que alguén me axude. Decateime das limitacións do sitio, polo que evito facer preguntas ás que case seguro que non conseguirei unha boa resposta.

Pero poucas veces facía preguntas aquí, mesmo cando estaba aprendendo un novo idioma ou marco. Non porque sexa un xenio, todo o contrario. É só que, despois de anos de estar en Stack Overflow, cando teño unha pregunta, chego á profunda convicción de que é pouco probable que sexa o primeiro en preguntala. Comezo a buscar, e case sempre atopo que alguén xa me preguntou o mesmo hai un par de anos.

Observar as preguntas doutras persoas é unha boa forma de aprender cousas novas sobre o teu produto.

Agora estou traballando Código VS, así que fixen o hábito de mirar as preguntas etiquetadas como vscode. Esta é unha boa forma de ver como se usa o meu código no mundo real. Que problemas atopan os usuarios? Como se pode mellorar a documentación ou a API? Por que algo que eu pensaba que era absolutamente claro causa tantos malentendidos?

As preguntas son un sinal importante que mostra como se está a utilizar o teu produto. Pero a cuestión non é responder e seguir adiante, senón tratar de comprender primeiro por que a persoa ten unha pregunta. Quizais hai un problema no produto que non coñeces ou algunhas suposicións que fixeches sen sabelo? As preguntas tamén me axudaron a descubrir moitos erros e inspiráronme a seguir traballando.

Se estás a manter un produto para desenvolvedores, non penses en Stack Overflow como un vertedoiro (ou peor, un cemiterio de preguntas). Volve regularmente para ver que preguntas e respostas apareceron. Isto non significa que teñas que responder a todas as preguntas por ti mesmo, pero os sinais de Stack Overflow son demasiado importantes para ignoralos.

As liñas entre unha pregunta, un informe de erro e unha solicitude de función están borrosas.

Algunhas preguntas sobre VS Code en Stack Overflow foron en realidade informes de erros. E moitos outros son en realidade solicitudes de novas funcións.

Por exemplo, unha pregunta co título "Por que falla VS Code cando fago...?" - Este é un informe de erro. VS Code non debería fallar nunha variedade de situacións. Responder preguntas que son informes de erros é contraproducente porque os autores poden estar satisfeitos cunha solución alternativa e nunca presentar un informe de erros real. En situacións como esta, adoito pedir aos usuarios que presenten un informe de erros en Github.

Noutros casos, as diferenzas poden ser menos evidentes. Por exemplo, a pregunta "Por que JavaScript IntelliSense non funciona en VS Code?" Dependendo de como JavaScript IntelliSense non funcione, o problema pode caer nunha das tres categorías:

  • Se se trata dun problema de configuración do usuario, entón é realmente unha pregunta para Stack Overflow.
  • Se no caso descrito IntelliSense debería funcionar, pero non funciona, entón este é un informe de erro.
  • Se no caso descrito IntelliSense non funciona, entón esta é unha solicitude dunha nova función.

Ao final, á maioría dos usuarios non lles importan estes matices, só queren que JavaScript IntelliSense funcione.

E aínda que estas diferenzas son importantes para min, como responsable do proxecto, en xeral non me deberían importar. Porque as preguntas, os informes de erros e as solicitudes de funcións son formas de expresar unha idea: o usuario espera algo do meu código e non o recibe. Se o produto fose perfecto, os usuarios nunca farían preguntas sobre el, porque lles quedaría todo claro e faría exactamente o que queren (ou polo menos lles diría claramente por que non pode).

Os desenvolvedores tamén son persoas

A xente é emocional. A xente é irracional. A xente é un gilipollas. Non sempre, claro, pero ás veces! E créao ou non, os desenvolvedores tamén son persoas.

Hai unha fantasía que nos gusta dicirnos aos desenvolvedores: “Traballamos con ordenadores, así que temos que ser racionais. Entendemos símbolos crípticos, polo que debemos ser intelixentes. O software apoderouse do mundo, así que temos que ser xeniais! Genial! Adiante!!!"

Isto está mal. E se fose así, que Deus axude ao resto da xente. Incluso en Stack Overflow, esa ferramenta para profesionais deseñada como unha base de coñecemento obxectiva, mesmo no meu propio e moi específico recuncho de VS Code, sigo atopando todo tipo de barbaridades: falacias lóxicas, insultos, mentalidade de rabaño, etc.

Non te enganes: probablemente non sexas tan perfecto como pensas. Pero isto non significa que non debamos tratar de librarnos das nosas carencias.

Cara, eu son quen creou isto

Tamén son humano, e de cando en vez o que pasa en Stack Overflow molestame. Por exemplo, cando un usuario escribe con confianza tonterías ou simplemente dá unha resposta errónea a unha pregunta relacionada con VS Code, un produto que eu creei e que coñezo moi ben. Estrañamente, parece que canto máis errónea sexa a resposta, máis probable é que alguén o chame feito indiscutible.

Cando isto ocorre, actúo como na imaxe e escribo a resposta correcta.

O que aprendín en 10 anos en Stack Overflow

E varias veces isto deu lugar a longos fíos: ai de min por atreverme a cuestionar o seu coñecemento do que eu creei! Deixade de tentar ter a razón todo o tempo, malditos intelixentes! Porque teño razón!!!

É fácil volverse cínico nesta desesperanza

Cando te enfrontas a un fluxo interminable de preguntas de baixa calidade, é fácil volverse cínico. Nunca escoitou falar de Google? Sequera sabe construír frases coherentes? Que es ti, un can?

Ás veces miro ducias de preguntas novas nun día. Observar constantemente todas estas preguntas de pouca calidade corre o risco de caer no desprezo ou no cinismo. Este cinismo pode estenderse ao sitio, xa que quen se atopou cun moderador entusiasmado ou que pasou un par de horas investigando e redactando unha pregunta dará fe, só para recibir respostas negativas a cambio e desaparecer no esquecemento sen ningunha explicación.

Por suposto, hai usuarios que non fan nin un pouco de esforzo e publican malas preguntas. Pero creo que a maior parte das preguntas de pouca calidade veñen de persoas con boas intencións (aínda que estúpidas). Sempre intento recordar o que significa ser novato. Cando comezas, non entendes como funciona todo realmente aquí. Nalgúns casos, nin sequera sabe que palabras expresar correctamente o seu problema. Créeme, é difícil estar nesta posición. E é desagradable cando estás empapado de slop só por facer unha pregunta.

Aínda que Stack Overflow fixo moito para axudar aos novatos, aínda queda moito por facer. Intentei atopar un equilibrio entre cumprir cos estándares do sitio e ser indulgente cos usuarios sen experiencia. Isto pode implicar explicar por que votei para pechar a pregunta ou publicar un comentario animando ao usuario a proporcionar máis información. Aínda teño marxe para medrar.

Por outra banda, non dubido en votar negativamente aos usuarios cunha reputación de 50 que publican preguntas como "Cal é o mellor deseño de VS Code para o desenvolvemento de JavaScript?", ou que cargan capturas de pantalla de código en vez de texto.

Ás veces só quero agradecerche

Hai unha débil cultura de gratitude en Stack Overflow. Recordo que unha vez o sitio recortou automaticamente as palabras "ola" e "grazas" das preguntas. Quizais aínda estea feito, non o comprobei.

Hoxe, calquera que traballou no servizo de atención ao cliente sabe ben que demasiada educación pode intervir e mesmo parecer forzado. Pero ás veces alguén deste sitio fai algo moi importante para ti, e a única forma de agradecerllo é dándolle un plus. É unha merda.

A eficiencia non esixe que nos convertamos en robots sen alma. Unha canle lateral pode proporcionar unha comunicación máis auténtica entre as persoas, se os propios usuarios o queren, por suposto.

Ás veces quero saber que pasou despois de recibir a resposta

Stack Overflow funciona cun principio transaccional: algunhas persoas fan preguntas, outras responden. Que ocorre despois de recibir unha resposta? Quen sabe? Ás veces pregúntome sobre isto. Foi útil a miña resposta? A que modesto proxecto axudou? Que aprendeu o interrogador?

Por suposto, é imposible satisfacer esta curiosidade. Esixir aos usuarios que expliquen como usarán a información que reciben sería moi problemático, aínda que puideses facelo. Pero é interesante pensalo.

A gamificación é efectiva...

...ao converter os procesos en xogos.

Aínda me preocupa un pouco cando vexo a pequena icona +10 ou +25 na barra de estado. Quizais estes pequenos toques de gamificación sexan a razón pola que levo 10 anos volvendo ao sitio. Pero co paso dos anos, tamén comecei a preguntarme que tipo de xogo é Stack Overflow e que significa gañar.

Estou seguro de que o sistema foi creado coa mellor intención: recompensar á xente por preguntas e respostas útiles. Pero en canto sumas puntuacións altas, entra en vigor Lei de Goodhart, e algúns usuarios comezan a axustar as súas accións non para acadar o máximo valor, senón para obter as máximas valoracións. E isto é importante porque...

A reputación non significa o que pensas que significa.

A reputación non equivale á competencia técnica, ás habilidades de comunicación ou á comprensión de como funciona ou debería funcionar Stack Overflow.

Non quero dicir que a reputación sexa inútil. Simplemente non significa o que significan os administradores de Stack Overflow nin o que se supón que significa a palabra "reputación". Decateime de que a reputación é unha medida de influencia. Considere dúas respostas hipotéticas publicadas no sitio:

  • Unha sobre unha operación git común. Escribín unha resposta de tres liñas en dous minutos usando Google.
  • O outro trata sobre a teoría de grafos entrelazados. Quizais só cen persoas en todo o mundo poidan responder. Escribín algúns parágrafos e código de mostra explicando o problema e como resolvelo.

En cinco anos, a primeira resposta foi vista 5 millóns de veces e recibiu 2000 votos positivos. A segunda resposta foi mirada 300 veces e recibiu dous míseros votos positivos.

Ata certo punto isto é moi deshonesto. Por que premiar algo que estaba no lugar axeitado no momento axeitado? (non todo está determinado pola sorte; comprender as regras do xogo tamén xoga un papel importante). Por outra banda, a primeira pregunta axudou a moita máis xente que a segunda. Quizais paga a pena recoñecer que, en certo sentido, o recoñecemento leva á acumulación de “reputación”?

Entón, considero que a "reputación" en Stack Overflow é unha especie de medida de influencia. A verdadeira reputación non se pode medir por meros puntos, vén da comunidade. De quen escoito o consello, quen axuda aos demais, en quen confío? Quizais todas sexan persoas diferentes, dependendo de se escribo en PHP ou para iOS.

Dito isto, non sei que debería facer Stack Overflow a este respecto. Os usuarios estarían tan motivados se en lugar de "reputación" gañasen "puntos de astucia"? Seguirán os usuarios tan comprometidos se non hai ningún sistema de puntos? Creo que é pouco probable. E o mito de que a "reputación" en Stack Overflow é equivalente á reputación real beneficia non só ao sitio en si, senón tamén aos seus usuarios máis activos. Ben, de verdade, a quen non lle gusta aumentar a súa reputación?

Non, como ocorre a maioría das veces na vida, para ter unha idea real do que está a suceder, cómpre analizar non só os números. Se unha publicación ten 10 mil puntos en Stack Overflow, mira como se comunica esta persoa, que preguntas e respostas publica. E en todos os casos excepto excepcionais, ten en conta que é pouco probable que só as puntuacións de Stack Overflow indiquen outra cousa que non sexa a capacidade dunha persoa para usar o sitio. E na miña experiencia, moitas veces nin sequera falan disto.

Non sería produtivo sen Stack Overflow

Cada vez que necesito facer algo complicado en git, vou a Stack Overflow. Cada vez que necesito algo sinxelo en bash, vou a Stack Overflow. Cada vez que recibo un erro de compilación estraño, vou a Stack Overflow.

Non son produtivo sen IntelliSense, un motor de busca e Stack Overflow. A xulgar por algúns libros, isto faime un moi mal programador. Probablemente fallaría moitas probas e non resolvería moitos problemas no taboleiro. Que así sexa. En serio, cada vez que uso .sort en JavaScript, teño que buscar información sobre cando obterei -1, 0 ou 1, e escribo JS todos os días, desenvolvendo o editor máis popular para a linguaxe.

Non, Stack Overflow é unha ferramenta incrible. Só un parvo non usaría todas as ferramentas dispoñibles. Entón, por que non ser un tolo interior coma min? Garda os teus recursos cerebrais para coñecementos importantes, como memorizar todas as tramas da serie Seinfeld ou crear xogos de palabras sofisticados (que tanto faltan neste artigo, pero haberá moitos outros de natureza completamente diferente).

Stack Overflow é un milagre

Stack Overflow permite que calquera persoa, independentemente da súa experiencia ou coñecementos, publique preguntas de programación. Estas preguntas son respondidas por completos descoñecidos, a maioría dos cales pasan o tempo das súas vidas e carreiras axudando a outros de forma gratuíta.

O milagre é o feito mesmo da existencia e o resultado do traballo de Stack Overflow. Seguro que non todo sae tan ben como pretendían os seus creadores, pero inténtano. A pesar de todas as deficiencias, o sitio leva moitos anos axudando a un gran número de persoas, incluída a min.

Stack Overflow non durará para sempre. Algún día virá algo mellor. Esperemos que isto sexa algo que aprenda dos erros de Stack Overflow e saque o mellor del. Ata entón, espero que non deamos este sitio por feito. Esta é á vez un fito e unha comunidade viva, que se reabastece constantemente de xente nova. Se isto che preocupa, recorda que todo isto é moi fráxil, e incluso pequenas accións, como axudar aos recén chegados ben intencionados pero aínda ignorantes, poden ter un efecto positivo. Se critico este sitio, é só porque me importa e sei como melloralo.

PS

Aínda era un escolar cando cheguei a Stack Overflow. Estaba comezando a escribir (ES5!) JavaScript en Eclipse, e parecía que o 90% das preguntas comezaban con "Usando jQuery, só...". E aínda que non sabía o que facía, os descoñecidos pasaban o seu tempo axudándome. Creo que non o apreciase moito nese momento, pero non o esquecín.

A xente sempre quererá que Stack Overflow sexa algo diferente: un sitio de preguntas e respostas; unha ferramenta para resolver problemas domésticos; nivel de vida de programación. E para min, este sitio, a pesar do seu crecemento e carencias, é no seu núcleo unha comunidade aberta onde os descoñecidos axúdanse a aprender e mellorar. E iso é xenial. Alégrome de formar parte de Stack Overflow durante os últimos 10 anos e espero seguir facéndoo. Quero aprender tantas cousas novas na próxima década como na década anterior.

Fonte: www.habr.com

Engadir un comentario