El que vaig aprendre en 10 anys a Stack Overflow

El que vaig aprendre en 10 anys a Stack Overflow
M'acosta al meu desè aniversari a Stack Overflow. Amb els anys, la meva manera d'utilitzar el lloc i la meva percepció han canviat molt, i vull compartir la meva experiència amb vosaltres. I escric sobre això des del punt de vista de l'usuari mitjà que no està gaire implicat en la vida de la comunitat del lloc o la seva cultura. Aquests dies només he estat responent preguntes relacionades amb VS Code, el producte en el qual estic treballant. Tanmateix, solia participar activament en debats sobre una àmplia gamma de temes. En 10 anys jo va fer unes 50 preguntes i va donar 575 respostes, va mirar a través d'una infinitat de comentaris d'altres persones.

Jon Skeete va descriure la cultura de Stack Overflow molt millor i amb més autoritat del que mai podré fer. La seva publicació va influir en alguns dels capítols d'aquest article, però, en general, aquestes són les meves reflexions sinceres sobre les meves experiències a Stack Overflow, què és bo i dolent del lloc i com es pot utilitzar avui. Aquesta discussió serà bastant superficial, sense aprofundir en el funcionament del lloc o la seva història.

Així que aquí teniu el que he après durant 10 anys fent servir Stack Overflow.

Heu de poder fer preguntes

A primera vista, res més senzill: introduïu unes quantes paraules al camp de text, feu clic a "Envia" i Internet us ajudarà a resoldre tots els vostres problemes! Però em va costar gairebé 10 anys esbrinar quines paraules escriure en aquest maleït camp per obtenir resultats. De fet, encara n'estic aprenent cada dia.

Fer bones preguntes és una habilitat realment subestimada (com també ho és escriure un bon informe de problemes). En primer lloc, com podem determinar si una pregunta és "bona"? Ofertes de Stack Overflow pista, que enumera les qualitats següents d'una bona pregunta:

  • Coincideix amb el tema del lloc?
  • Implica una resposta objectiva.
  • Encara no s'ha preguntat.
  • S'ha investigat.
  • Descriu clarament el problema, normalment amb un exemple mínim i fàcilment reproduïble.

D'acord, però, a la pràctica, com és una "declaració clara del problema"? Quina informació és rellevant i quina no? De vegades sembla que, per fer una bona pregunta, primer cal saber la resposta.

Malauradament, el petit camp de text no ajuda aquí. Per tant, és d'estranyar que tants usuaris publiquen preguntes de baixa qualitat? De vegades, l'única resposta que reben és un enllaç a una documentació confusa. I encara tindran sort. Moltes preguntes de baixa qualitat són simplement votades en contra i desapareixen en el fil infinit de preguntes.

Fer bones preguntes és una habilitat. Afortunadament, es pot desenvolupar. Principalment vaig aprendre llegint un munt de preguntes i respostes, observant què funcionava i què no. Quina informació és útil i què és molest? Encara que encara tindràs por d'utilitzar els coneixements adquirits a la pràctica i fer preguntes. Només feu el possible i aprèn dels resultats. He d'admetre que a mi mateix em fa una mica de vergonya algunes de les meves primeres preguntes ignorants, tot i que potser això demostra que he millorat molt les meves habilitats de preguntar des que em vaig trobar en aquest lloc.

Les preguntes dolentes i no tan bones no són el mateix

No ensucraré la píndola: algunes preguntes són dolentes.

Una pregunta que consta d'una captura de pantalla i la frase "PERQUÈ NO FUNCIONA AIXÒ!?!" - dolent. Per què? És obvi que l'autor gairebé no s'ha esforçat. Això no és tant una pregunta com una demanda: "fes aquesta feina per mi!" Per què faria això? El meu temps és massa valuós per perdre ajudant algú que no vol aprendre per començar i no apreciarà la meva ajuda. Descobriu què és Stack Overflow.

Considereu ara una pregunta titulada "Com eliminar les vores blaves de la meva pàgina", que consta de diversos paràgrafs de text que parla de la propietat outline CSS, però sense esmentar explícitament les paraules "CSS" o "contorn". Tot i que una pregunta com aquesta pot anar en contra de moltes directrius de Stack Overflow, no hi estic d'acord, no és una mala pregunta. L'autor almenys va intentar donar alguna informació, fins i tot sense saber què donar. L'intent compta, així com la voluntat de percebre i aprendre.

Tanmateix, molts col·laboradors de Stack Overflow probablement tractaran ambdues preguntes de la mateixa manera: votar en contra i tancar. Això és frustrant i desactiva molts usuaris sense experiència abans que puguin aprendre a fer millors preguntes i fins i tot entendre com funciona el lloc.

Les preguntes realment dolentes no valen el vostre temps. Però cal tenir en compte que els que fan preguntes no molt bones ho fan sense voler. Volen fer bones preguntes, simplement no saben com. Si castigues els nouvinguts a cegues i sense explicacions, com aprendran?

Una bona pregunta no garanteix una resposta

Stack Overflow sol proporcionar respostes més ràpides a preguntes senzilles que moltes persones poden respondre. Tens alguna pregunta sobre la cerca binària en JavaScript o sobre HTML? Meravellós! Rebre cinc respostes en menys d'una hora. Però com més complexa o específica sigui la pregunta, menys probable és que obtingueu una resposta, independentment de la qualitat de la redacció.

La probabilitat d'obtenir una resposta també disminueix ràpidament amb el temps. Quan una pregunta entra diverses pàgines en profunditat al feed, es perd. Una setmana més tard, només podeu pregar perquè algú amb els coneixements adequats ensopegui amb la vostra pregunta (o feu-hi clic generosament).

És possible que no us agradin les respostes correctes

Cada mes rebo diversos vots negatius per les anomenades respostes impopulars. Aquests són els tipus de respostes que bàsicament diuen: "el motiu és perquè està dissenyat d'aquesta manera", o "no és possible perquè...", o "és un error que s'ha de solucionar primer". En tots els casos anteriors, els autors no reben una solució ni tan sols una solució alternativa. I sospito que quan a la gent no li agrada el que diu una resposta, la voten en contra. Fins i tot els entenc, però això no vol dir que les respostes siguin errònies.

Per descomptat, també passa el contrari: les bones respostes no us diuen necessàriament el que voleu escoltar. Algunes de les millors respostes primer responen a la pregunta original, però després descriuen altres enfocaments per resoldre el problema. De vegades responc a la pregunta d'un usuari i després escric un text llarg sobre per què no es recomana fer-ho.

Sempre que les expressions d'actitud es simplifiquen a vots amunt i avall o un botó m'agrada, es perden distincions importants. Aquest problema es produeix amb freqüència a Internet. Quantes xarxes socials et permeten distingir entre “jo recolzo això” i “crec que està ben dit, encara que no m'agradi o no hi estic d'acord”?

En general, malgrat els vots negatius mensuals, crec que la comunitat Stack Overflow vota de manera justa. Seguirem en aquest camí.

Gairebé mai pregunto a Stack Overflow

Com més temps feia servir aquest lloc, menys sovint feia preguntes sobre ell. Això es deu en part al meu creixement professional. Molts dels problemes als quals m'enfronto a la feina són massa complexos per expressar-los en preguntes senzilles, o massa específics perquè algú m'ajudi. M'he adonat de les limitacions del lloc, així que evito fer preguntes que gairebé segur que no obtindré una bona resposta.

Però poques vegades feia preguntes aquí, fins i tot quan estava aprenent un idioma o marc nou. No perquè sigui un geni, sinó tot el contrari. És que, després d'anys d'estar a Stack Overflow, quan tinc una pregunta, arribo a la profunda convicció que és poc probable que sigui el primer a preguntar-la. Començo a buscar, i gairebé sempre trobo que algú ja va preguntar el mateix fa un parell d'anys.

Observar les preguntes d'altres persones és una manera fantàstica d'aprendre coses noves sobre el vostre producte.

Ara estic treballant Codi VS, així que vaig prendre l'hàbit de mirar les preguntes etiquetades amb vscode. Aquesta és una manera fantàstica de veure com s'utilitza el meu codi al món real. Quins problemes es troben els usuaris? Com es pot millorar la documentació o l'API? Per què una cosa que pensava que era absolutament clara provoca tants malentesos?

Les preguntes són un senyal important que mostra com s'utilitza el vostre producte. Però la qüestió no és respondre i seguir endavant, sinó intentar entendre primer per què la persona té una pregunta. Potser hi ha un problema en el producte que us desconeix, o algunes hipòtesis que heu fet sense saber-ho? Les preguntes també em van ajudar a descobrir molts errors i em van inspirar a continuar treballant.

Si esteu mantenint un producte per a desenvolupadors, no penseu en Stack Overflow com un abocador (o pitjor, un cementiri de preguntes). Torneu a consultar regularment per veure quines preguntes i respostes han aparegut. Això no vol dir que hàgiu de respondre totes les preguntes vosaltres mateixos, però els senyals de Stack Overflow són massa importants per ignorar-los.

Les línies entre una pregunta, un informe d'error i una sol·licitud de funció són borroses.

Algunes preguntes sobre VS Code a Stack Overflow eren en realitat informes d'errors. I molts altres són en realitat sol·licituds de noves funcions.

Per exemple, una pregunta amb el títol "Per què es bloqueja VS Code quan faig...?" - Aquest és un informe d'error. VS Code no s'ha de bloquejar en diverses situacions. Respondre preguntes que són informes d'errors és contraproduent perquè els autors poden estar satisfets amb una solució alternativa i mai presentar un informe d'error real. En situacions com aquesta, normalment demano als usuaris que presenten un informe d'error a Github.

En altres casos, les diferències poden ser menys evidents. Per exemple, la pregunta "Per què JavaScript IntelliSense no funciona a VS Code?" Depenent de com no funcioni JavaScript IntelliSense, el problema pot caure en una d'aquestes tres categories:

  • Si es tracta d'un problema de configuració de l'usuari, realment és una pregunta per a Stack Overflow.
  • Si en el cas descrit, IntelliSense hauria de funcionar, però no, aquest és un informe d'error.
  • Si en el cas descrit, IntelliSense no hauria de funcionar, aquesta és una sol·licitud d'una funció nova.

Al cap i a la fi, la majoria dels usuaris no els preocupen aquests matisos: només volen que JavaScript IntelliSense funcioni.

I encara que aquestes diferències són importants per a mi, com a responsable del projecte, en general no m'han d'importar. Perquè les preguntes, els informes d'errors i les sol·licituds de funcions són maneres d'expressar una idea: l'usuari espera alguna cosa del meu codi i no ho entén. Si el producte fos perfecte, els usuaris mai no farien preguntes sobre ell, perquè tot els quedaria clar i faria exactament el que volen (o almenys els diria clarament per què no pot).

Els desenvolupadors també són persones

La gent és emocional. La gent és irracional. La gent és un gilipollas. No sempre, és clar, però de vegades! I ho creieu o no, els desenvolupadors també són persones.

Hi ha una fantasia que als desenvolupadors ens agrada dir-nos a nosaltres mateixos: “Treballem amb ordinadors, així que hem de ser racionals. Entenem símbols críptics, així que hem de ser intel·ligents. El programari s'ha apoderat del món, així que hem de ser genials! Guai! Endavant!!!"

Això està malament. I si fos així, doncs Déu ajudi a la resta de la gent. Fins i tot a Stack Overflow, aquesta eina per a professionals dissenyada com una base de coneixement objectiva, fins i tot al meu racó molt específic de VS Code, segueixo trobant-me amb tota mena d'atropellaments: fal·làcies lògiques, insults, mentalitat de ramat, etc.

No us enganyeu: probablement no sou tan perfecte com penseu. Però això no vol dir que no hem d'intentar desfer-nos de les nostres mancances.

Amic, sóc jo qui l'ha creat

Jo també sóc humà i, de tant en tant, el que passa a Stack Overflow em molesta. Per exemple, quan un usuari escriu sense sentit o simplement dóna una resposta errònia a una pregunta relacionada amb VS Code, un producte que vaig crear i que conec molt bé. Curiosament, sembla que com més errònia sigui la resposta, més probable és que algú ho digui com un fet indiscutible.

Quan això passa, faig com a la imatge i escric la resposta correcta.

El que vaig aprendre en 10 anys a Stack Overflow

I diverses vegades això va donar lloc a llargs fils: ai de mi que m'atreveixi a qüestionar el seu coneixement del que vaig crear! Deixeu d'intentar tenir la raó tot el temps, maleïts intel·ligents! Perquè tinc raó!!!

És fàcil tornar-se cínic en aquesta desesperança

Quan s'enfronten a un flux interminable de preguntes de baixa qualitat, és fàcil tornar-se cínic. No ha sentit mai a parlar de Google? Sap fins i tot construir frases coherents? Què ets, un gos?

De vegades miro desenes de preguntes noves en un dia. Observar constantment totes aquestes preguntes de baixa qualitat corre el risc de caure en el menyspreu o el cinisme. Aquest cinisme pot estendre's al lloc, ja que qualsevol persona que s'hagi trobat amb un moderador excessivament entusiasmat o hagi passat un parell d'hores investigant i redactant una pregunta ho donarà fe, només per rebre respostes negatives a canvi i desaparèixer en l'oblit sense cap explicació.

Per descomptat, hi ha usuaris que no s'esforcen ni fan preguntes dolentes. Però crec que la majoria de preguntes de baixa qualitat provenen de persones amb bones intencions (encara que siguin estúpides). Sempre intento recordar què significa ser un novell. Quan acabes de començar, no entens com funciona tot realment aquí. En alguns casos, ni tan sols saps quines paraules expressar correctament el teu problema. Creieu-me, és difícil estar en aquesta posició. I és desagradable quan se't embruta amb pendent només per fer una pregunta.

Tot i que Stack Overflow ha fet molt per ajudar els novells, encara queda molt per fer. Vaig intentar trobar un equilibri entre el compliment dels estàndards del lloc i ser indulgent amb els usuaris sense experiència. Això pot implicar explicar per què he votat per tancar la pregunta o publicar un comentari animant l'usuari a proporcionar més informació. Encara tinc espai per créixer.

D'altra banda, no dubto a votar en contra dels usuaris amb una reputació de 50 que publiquen preguntes com "Quin és el millor disseny de VS Code per al desenvolupament de JavaScript?", o que carreguen captures de pantalla de codi en comptes de text.

De vegades només vull donar-te les gràcies

Hi ha una feble cultura de gratitud a Stack Overflow. Recordo que hi havia una vegada que el lloc va tallar automàticament les paraules "hola" i "gràcies" de les preguntes. Potser això encara està fet, no ho he comprovat.

Avui dia, qualsevol persona que hagi treballat en atenció al client sap bé que massa educació pot interposar-se i fins i tot semblar forçada. Però de vegades algú d'aquest lloc fa alguna cosa molt important per a tu, i l'única manera d'agrair-li és donar-li un avantatge. Fa pena.

L'eficiència no requereix que ens convertim en robots sense ànima. Un canal secundari pot proporcionar una comunicació més autèntica entre les persones, si els mateixos usuaris ho volen, és clar.

De vegades vull saber què va passar després de rebre la resposta

Stack Overflow funciona segons un principi transaccional: algunes persones fan preguntes, altres responen. Què passa després de rebre una resposta? Qui sap? De vegades em pregunto sobre això. Va ser útil la meva resposta? Quin modest projecte va ajudar? Què va aprendre l'interrogant?

Per descomptat, és impossible satisfer aquesta curiositat. Exigir als usuaris que tinguin en compte com utilitzaran la informació que reben seria molt problemàtic, encara que ho poguéssiu fer. Però és interessant pensar-hi.

La gamificació és efectiva...

...en convertir processos en jocs.

Encara em preocupa una mica quan veig la petita icona +10 o +25 a la barra d'estat. Potser aquests petits tocs de gamificació són el motiu pel qual he estat tornant al lloc durant 10 anys. Però amb els anys, també he començat a preguntar-me quin tipus de joc és Stack Overflow i què significa guanyar-hi.

Estic segur que el sistema va ser creat amb les millors intencions: premiar la gent per preguntes i respostes útils. Però tan bon punt sumeu puntuacions altes, entra en vigor la llei de Goodhart, i alguns usuaris comencen a ajustar les seves accions no per aconseguir el màxim valor, sinó per obtenir les màximes puntuacions. I això és important perquè...

La reputació no vol dir el que penses que significa.

La reputació no és equivalent a la competència tècnica, les habilitats de comunicació o la comprensió de com funciona o hauria de funcionar Stack Overflow.

No vull dir que la reputació sigui inútil. Simplement no vol dir què volen dir els administradors de Stack Overflow o què se suposa que significa la paraula "reputació". Em vaig adonar que la reputació és una mesura d'influència. Considereu dues respostes hipotètiques publicades al lloc:

  • Un sobre una operació git comuna. Vaig escriure una resposta de tres línies en dos minuts amb Google.
  • L'altre tracta sobre la teoria de grafs entrellaçats. Potser només un centenar de persones a tot el món ho poden respondre. Vaig escriure uns quants paràgrafs i un codi de mostra explicant el problema i com resoldre'l.

En cinc anys, la primera resposta es va veure 5 milions de vegades i va rebre 2000 vots favorables. La segona resposta es va mirar 300 vegades i es va donar dos míssims vots favorables.

Fins a cert punt això és molt deshonest. Per què premiar alguna cosa que estava al lloc correcte en el moment adequat? (no tot està determinat per la sort; entendre les regles del joc també té un paper important). D'altra banda, la primera pregunta va ajudar a molta més gent que la segona. Potser val la pena reconèixer que, en cert sentit, el reconeixement condueix a l'acumulació de "reputació"?

Per tant, considero que la "reputació" a Stack Overflow és una mena de mesura d'influència. La veritable reputació no es pot mesurar per simples punts, prové de la comunitat. Quins consells escolto, qui ajuda els altres, en qui confio? Potser totes seran persones diferents, depenent de si escric en PHP o per a iOS.

Dit això, no sé què hauria de fer Stack Overflow en aquest sentit. Els usuaris estarien tan motivats si en comptes de "reputació" guanyessin "punts astuts"? Els usuaris es mantindran tan compromesos si no hi ha cap sistema de punts? Crec que és poc probable. I el mite que la "reputació" a Stack Overflow és equivalent a la reputació real no només beneficia el lloc en si, sinó també els seus usuaris més actius. Bé, realment, a qui no li agrada augmentar la seva reputació?

No, com passa sovint a la vida, per tenir una idea real del que està passant, cal analitzar no només els números. Si una publicació té 10 mil punts a Stack Overflow, mireu com es comunica aquesta persona, quines preguntes i respostes publica. I en tots els casos excepte excepcionals, tingueu en compte que les puntuacions de Stack Overflow per si soles és poc probable que indiquin res més que la capacitat d'una persona per utilitzar el lloc. I, segons la meva experiència, sovint ni tan sols parlen d'això.

No seria productiu sense Stack Overflow

Cada vegada que necessito fer alguna cosa complicada a git, vaig a Stack Overflow. Cada vegada que necessito alguna cosa senzilla a bash, vaig a Stack Overflow. Cada vegada que tinc un error de compilació estrany, vaig a Stack Overflow.

No sóc productiu sense IntelliSense, un motor de cerca i Stack Overflow. A jutjar per alguns llibres, això em converteix en un programador molt dolent. Probablement fallaria moltes proves i no resoldria molts problemes a la pissarra. Que així sigui. De debò, cada vegada que faig servir .sort a JavaScript, he de buscar informació sobre quan obtindré -1, 0 o 1, i escric JS cada dia, desenvolupant l'editor més popular per a l'idioma.

No, Stack Overflow és una eina increïble. Només un ximple no faria servir totes les eines disponibles. Llavors, per què no ser un ximple interior com jo? Guarda els teus recursos cerebrals per a coneixements importants, com ara memoritzar totes les trames de la sèrie Seinfeld o inventar jocs de paraules sofisticats (que tant falten en aquest article, però n'hi haurà molts d'altres d'una naturalesa completament diferent).

Stack Overflow és un miracle

Stack Overflow permet que qualsevol persona, independentment de l'experiència o el coneixement, pugui publicar preguntes de programació. Aquestes preguntes les responen desconeguts, la majoria dels quals passen temps de la seva vida i de la seva carrera ajudant els altres de manera gratuïta.

El miracle és el fet mateix de l'existència i el resultat del treball de Stack Overflow. Estic segur que no tot surt tan bé com pretenien els seus creadors, però ho intenten. Malgrat totes les deficiències, el lloc ha estat ajudant un gran nombre de persones durant molts anys, inclòs jo.

Stack Overflow no durarà per sempre. Un dia vindrà alguna cosa millor. Tant de bo això sigui una cosa que aprengui dels errors de Stack Overflow i en tregui el millor. Fins aleshores, espero que no donem aquest lloc per fet. Aquesta és alhora una fita i una comunitat viva, que es reomple constantment amb gent nova. Si això us preocupa, recordeu que tot això és molt fràgil, i fins i tot petites accions, com ajudar els nouvinguts ben intencionats però encara ignorants, poden tenir un efecte positiu. Si critico aquest lloc, és només perquè m'importa i sé com millorar-lo.

PS

Encara era un escolar quan vaig arribar a Stack Overflow. Acabo de començar a escriure (ES5!) JavaScript a Eclipse, i semblava que el 90% de les preguntes començaven amb "Usant jQuery, només...". I encara que no sabia què estava fent, els desconeguts es passaven el temps ajudant-me. Crec que en aquell moment no ho va apreciar, però no ho he oblidat.

La gent sempre voldrà que Stack Overflow sigui una cosa diferent: un lloc de preguntes i respostes; una eina per resoldre els problemes de la llar; nivell de vida de la programació. I per a mi, aquest lloc, malgrat el seu creixement i les seves mancances, és en el seu nucli una comunitat oberta on els desconeguts s'ajuden mútuament a aprendre i millorar. I això és genial. Estic content d'haver format part de Stack Overflow durant els darrers 10 anys i espero continuar fent-ho. Vull aprendre tantes coses noves durant la propera dècada com ho vaig fer en la dècada anterior.

Font: www.habr.com

Afegeix comentari