Cum se pun întrebări în mod inteligent

De la Wiki.lug.ro
Versiunea din 12 februarie 2009 10:11, autor: Petre (Discuție | contribuții) (tinyurl)

Salt la: navigare, căutare

Traducerea reviziei 3.4 a documentului How To Ask Questions The Smart Way, de Eric S. Raymond şi Rick Moen

Atenţie editori: nu operaţi modificări de sens sau de exprimare în acest articol fără a vă asigura că traducerea rămîne conformă cu originalul în engleză. Pentru cititori: daca va place sa dati linkul altora, incercati http://wiki.lug.ro/mediawiki/index.php/Cum_se_pun_intrebari_inteligente , nu contine diacritice care sa fie URL-encoded. Sau http://tinyurl.com/intrebari ;)

Introducere

În lumea hackerilor, tipul de răspuns pe care îl veţi primi la întrebări tehnice depinde atât de formularea acestora cât şi de dificultatea elaborării unui răspuns. Acest ghid îşi propune să vă ajute să formulaţi întrebările în aşa fel încât să primiţi un răspuns satisfăcător.

Acum când folosirea open-source s-a răspândit pe scară largă, puteţi obţine deseori răspunsuri şi de la alţi utilizatori mai experimentaţi, nu doar de la hackeri. Ăsta e un lucru bun; utilizatorii tind să fie mai îngăduitori cu greşelile începătorilor. Totuşi, tratându-i şi pe aceştia ca pe hackeri cum e recomandat aici, e modul cel mai uşor de a obţine răspunsuri de la ei.

Primul lucru pe care trebuie să-l înţelegeţi este că hackerilor le plac problemele dificile şi întrebările care le solicită inteligenţa. Dacă nu era aşa, nu ne aflam aici. Dacă ne daţi o întrebare interesantă o să vă fim recunoscători; întrebările bune sunt un stimul şi un cadou. Întrebările bune ne ajută să ne clarificăm cunoştinţele şi adesea ridică probleme pe care nu le-am fi observat, sau la care nu ne-am fi gândit. Printre hackeri, „Bună intrebare!“ e un compliment sincer.

În ciuda acestor lucruri, hackerii au reputaţia că tratează întrebările simple cu ostilitate şi aroganţă. Uneori părem a fi automat nepoliticoşi cu începătorii si neştiutorii. Nu e deloc adevărat.

Suntem de fapt ostili faţă de acele persoane care parcă nu vor să gândească şi nu-şi fac temele înainte să pună întrebări. Astfel de persoane nu sunt decât pierdere de vreme, iau fără să dea nimic înapoi, ne fac să pierdem timpul pe care l-am putea folosi pentru a răspunde la o intrebare mai interesantă sau unei persoane care merită într-adevăr. Îi numim pe aceştia „losers“ (din motive istorice, uneori este scris „lusers“).

Ne dăm seama că sunt mulţi oameni care vor doar sa folosească programele noastre şi nu sunt interesaţi de detaliile tehnice. Pentru majoritatea oamenilor un computer este o unealtă, un mijloc pentru atingerea unui scop; au lucruri mai bune de făcut în viaţă. Realizăm asta şi nu ne aşteptăm ca toată lumea să fie interesată de chestiunile tehnice care ne fascinează pe noi. Totuşi, stilul nostru de a răspunde la întrebări este adaptat celor care au acest interes si sunt dispuşi să participe activ la rezolvarea problemelor. Lucrul ăsta nu o să se schimbe, şi nici nu ar trebui; dacă s-ar întâmpla, am fi mai puţin eficienţi în treburile la care ne pricepem.

Suntem (în cea mai mare parte) voluntari. Ne luăm din timpul nostru pentru a răspunde la întrebări şi uneori suntem depăşiţi de cantitatea lor, aşa că le filtrăm fără milă. În particular, ignorăm întrebările de la persoane care se prezintă ca losers pentru a ne putea folosi timpul mai eficient, cu ceilalţi.

Dacă această atitudine vi se pare enervantă, elitistă sau arogantă, verificaţi-vă ipotezele. Nu vă cerem să faceţi plecăciuni în faţa noastră. Dimpotrivă, cei mai mulţi dintre noi ar prefera să vă trateze ca egali; sunteţi binevenit în comunitatea noastră, dacă depuneţi efortul necesar ca acest lucru să fie posibil. Pur şi simplu, nu este deloc economic să încercăm să ajutăm oameni care nu vor să se ajute singuri. E OK să fii neştiutor, NU E OK să faci pe prostul.

În concluzie, deşi nu este necesar să fiţi un expert pentru a ne capta atenţia, este necesar să demonstraţi o atitudine care în timp duce la competenţă: atenţie, reflecţie, spirit de observaţie şi dorinţa de a participa activ la rezolvarea problemelor. Dacă nu vă convine această discriminare, vă sugerăm să apelaţi la servicii comerciale de asistenţă tehnică, în loc să ne cereţi să vă facem noi treaba gratuit.

Dacă decideţi să ne cereţi nouă ajutorul, nu vreţi să fiţi un loser. Nu vreţi nici măcar să păreţi că sunteţi unul. Cel mai bun mod de a obţine rapid un răspuns folositor este să întrebaţi ca o persoană inteligentă, care are încredere în sine şi unele cunoştinţe, care se întâmplă să aibă nevoie de ajutor cu o problemă punctuală.




Cum să nu vă purtaţi ca un loser

Şansele sunt ca mai devreme sau mai târziu să intraţi în conflict cu comunitatea hackerilor, chiar de mai multe ori, în moduri descrise aici sau similare. Vi se va spune exact ce-aţi greşit, probabil într-o manieră mai colorată. În public.

Când se întâmplă aşa ceva, cel mai rău lucru pe care-l puteţi face e să vă plângeţi despre ceea ce vi s-a întâmplat, să pretindeţi scuze, zbieraţi, declaraţi greva foamei, ameninţaţi cu procese, pârâţi la angajatori, etc. Iată ce-aveţi de făcut:

Depăşiţi momentul. E normal. E chiar sănătos şi benefic.

Standardele comunităţii nu se ţin singure: sunt ţinute de cei care le aplică, vizibil, în public. Nu vă plângeţi că nu v-au fost adresate criticile în particular: nu aşa merge. Nu e deloc folositor să insistaţi că aţi fost insultat când cineva spune că nu aveţi dreptate sau că e de altă părere. Sunt atitudini de loser.

Pe anumite forumuri de hackeri, dintr-o prost înţeleasă politeţe, s-a interzis comentarea greşelilor din post-uri, cu regula "Nu spuneţi nimic, decât dacă vreţi să ajutaţi.". Rezultatul a fost că persoanele cu contribuţii valoroase au plecat, lăsând forumul inutilizabil ca forum tehnic.

Alegeţi: ori exagerat de prietenos (în sensul de mai sus) ori eficace.

Reţineţi: când un hacker vă spune c-aţi greşit şi vă cere să nu se repete (indiferent cât de abrupt), o face în beneficiul (1) dvs şi (2) al comunităţii. Ar fi mult mai uşor pentru el să vă ignore şi să filtreze mesajele dvs. Dacă nu puteţi fi recunoscător, aveţi măcar un minim de demnitate, nu vă plângeţi şi nu aşteptaţi să fiţi tratat ca o păpuşă fragilă doar pentru că sunteţi nou-venit, cu fire hipersensibilă şi iluzii de mărire.

Uneori veţi fi atacat personal de cineva, fără un motiv aparent, chiar dacă nu aţi greşit (sau aţi greşit doar în imaginaţia unora). În acest caz, dacă vă plângeţi e sigur că o să o încurcaţi.

De obicei, aceştia sunt habarniştii care se consideră experţi, sau pseudo-psihologi care vă testează limitele. Ceilalţi cititori ori îi ignoră, ori găsesc alte modalităţi de a-i trata. Comportamentul acesta le creează doar lor probleme şi nu ar trebui să vă privească.

Nu vă lăsaţi antrenat în flame-war-uri. Cel mai bine le ignoraţi, după ce verificaţi că sunt într-adevăr flame-uri şi nu indicaţii despre ce-aţi greşit, şi nici sugestii subtil formulate referitoare la problema dvs (se poate întâmpla).

Întrebări pe care să nu le puneţi

Iată câteva exemple clasice de întrebări stupide şi la ce se gândesc hackerii când nu le răspund.

I: Unde găsesc programul X ?

R: Unde l-aş găsi şi eu, deşteptule, pe pagina de rezultate a unei căutări pe Web. Nu ştii să foloseşti Google?

I: Cum folosesc X ca să fac Y ?

R: Dacă vrei să faci Y, ar trebui să întrebi cum se face fără să presupui o metodă care, poate, nu e potrivită. Întrebările de forma asta adesea indică o persoană care nu doar că nu ştie nimic despre X, dar nici nu ştie foarte bine ce vrea să facă şi e pierdută în detalii. De cele mai multe ori e mai bine să fie ignorată până poate formula problema mai bine.

I: Cum îmi pot configura prompt-ul shell-ului?

R: Dacă ştii destule încât să întrebi asta, ştii şi că răspunsul e în manual.

I: Pot să folosesc Bass-o-matic ca să convertesc un document AcmeCorp în TeX ?

R: Încearcă şi vezi. Dacă ai fi făcut-o, a) ştiai răspunsul şi b) nu-mi pierdeai timpul

I: {Programul, configuraţia, comanda SQL} nu merge

R: Asta nu e o întrebare, şi n-am de gând să extrag informaţii cu forceps-ul de la tine, am alte lucruri mai bune de făcut. Când văd aşa ceva, reacţia mea e una dintre:

  • mai ai ceva de adăugat?
  • ce nasol, sper să se rezolve
  • şi ce treaba am eu cu asta?

I: Am probleme cu staţia mea Windows. Mă puteţi ajuta?

R: Da, aruncă rahatul ăla de la Microsoft şi instalează-ţi Linux sau BSD.

Notă: puteţi pune întrebări referitoare la maşini Windows dacă sunt despre un program care funcţionează şi pe Windows, sau interacţionează cu maşini Windows (adică Samba). Nu fiţi surprins dacă vi se răspunde că problema e în Windows, nu în program, pentru că Windows e atât de prost încât situaţia e frecventă.

I: Am un program care nu merge. Cred că biblioteca X e defectă.

R: Deşi e perfect posibil să fiţi primul care observă o problemă cu apelurile sistem sau bibliotecile folosite intens de sute şi mii de oameni, e mult mai probabil că nu ştii despre ce vorbeşti. Acuzaţiile serioase necesită dovezi serioase; când faceţi o astfel de afirmaţie, trebuie să documentaţi eroarea pe larg.

I: Am probleme când instalez Linux sau X. Mă puteţi ajuta?

R: Nu, trebuie să fiu lângă tine ca să fac asta. Întreabă utilizatorii locali de Linux.

Notă: întrebările despre instalarea Linux sunt binevenite pe un forum sau listă despre o distribuţie anume, dacă problema este specifică acelei distribuţii; de asemenea, pe forumurile locale de utilizatori, caz în care descrieţi precis ce nu funcţionează. Căutaţi cu grijă însă, folosind şi cuvântul cheie "linux", informaţii despre hardware-ul suspect.

I: Cum pot să sparg parola de root/câştig drepturi de operator/citesc emailul cuiva?

R: Eşti un ticălos că încerci să faci asta şi un prost că ceri unui hacker să te ajute.

Întrebări bune, întrebări greşite

În final, o să demonstrez cum se pun întrebările inteligent, prin exemple; perechi de întrebări despre aceeaşi problemă, una stupidă şi una inteligentă.

Stupid
Unde găsesc ceva despre Foonly Flurbamatic?

Întrebarea cere un STFW.

Inteligent
Am încercat să găsesc ceva pe Google despre Foonly Flurbamatic 2600, dar nu am găsit nimic interesant. Unde aş putea găsi documentaţie despre programarea lui?

A trecut de STFW, se pare că are o problemă reală.

Stupid
foo nu se compilează. De ce e buşit?

Presupune că altcineva a greşit. Arogant.

Inteligent
foo nu se compilează pe Nulix 6.2. În FAQ nu e menţionat nimic special despre Nulix. Iată un log al compilării. Fac eu ceva greşit?

A descris contextul, a citit FAQ, arată care e eroarea şi nu presupune că problema e din vina altcuiva. Poate merită atenţie.

Stupid
Am probleme cu placa de baza. Poate să mă ajute cineva?

"Aha. Ai nevoie şi să-ţi schimbăm scutecele?", urmat de apăsarea tastei Del.

Inteligent
Am încercat X, Y şi Z pe o placă de bază S2464. Nu a mers, aşa că am încercat A, B şi C. Când am făcut C s-a întâmplat, dubios, D. E clar că ciocoflenderul se brustureşte, dar nu cum ar trebui. Care sunt cauzele uzuale de brusturire pe plăcile Athlon MP? Puteţi să-mi mai sugeraţi alte teste pe care le pot face?

Ăsta, pe de altă parte, merită un răspuns. A demonstrat că-şi foloseşte creierul, în loc să aştepte să-l lovească o soluţie.

La ultima întrebare, observaţi şi distincţia între "Daţi-mi o soluţie" şi "Vă rog să mă ajutaţi să-mi dau seama ce nu merge".

Ultima întrebare e bazată pe un incident real din August 2001, pe lista linux-kernel (lkml). Eu (Eric) eram cel ce punea întrebarea. Mi se tot bloca o maşină cu placa de bază Tyan S2462. Membrii listei mi-au furnizat informaţiile cheie de care aveam nevoie.

Punând întrebarea aşa cum am făcut-o, le-am dat cititorilor ceva de care să se agaţe; le-a fost uşor să se implice. Am arătat respect pentru colegii mei şi i-am invitat să mă trateze ca egal. Am arătat respect pentru timpul lor, arătându-le ce-am eliminat deja ca posibile cauze.

Ulterior, când am mulţumit tuturor şi am remarcat cât de eficient am cooperat, un membru lkml a făcut observaţia că asta nu s-a întâmplat pentru că eram un nume pe acea listă, ci pentru că am formulat întrebarea corect; sunt sigur că avea drepate.

Hackerii sunt o meritocraţie fără milă; sunt sigur că avea dreptate şi dacă aş fi fost un "burete", aş fi fost ignorat sau flambat indiferent cine eram. Sugestia lui de a scrie despre acest incident pentru a îi educa pe alţii a dus la apariţia acestui ghid.

Dacă nu vi se răspunde

Dacă nu primiţi nici un răspuns, nu o luaţi personal, în sensul că nu vrem să vă ajutăm. Uneori chiar nu ştie nimeni răspunsul. A nu primi un răspuns nu înseamnă că aţi fost ignorat, deşi e greu să vedeţi asta din exterior.

În general, să retrimiteţi aceeaşi întrebare e o idee proastă. E inutil şi deci deranjant.

Încercaţi să găsiţi ajutor în altă parte, în locuri mai potrivite nevoilor începătorilor.

Există multe grupuri locale sau online de utilizatori care sunt entuziaşti, fără a fi scris vreodată software. Aceste grupuri se formează pentru ca membrii să se poată ajuta între ei sau pentru a-i ajuta pe începători.

De asemenea, sunt multe companii, mai mari sau mai mici, pe care le puteţi contracta pentru asistenţă tehnică (Red Hat şi Linuxcare sunt printre cele mai cunoscute; sunt multe altele). Nu fiţi oripilat de ideea de a plăti pentru asistenţă! În definitiv, dacă maşinii dvs i s-ar arde garnitura de chiulasă, aţi duce-o la un mecanic şi aţi plăti reparaţia. Chiar dacă software-ul nu v-a costat nimic, nu vă puteţi aştepta ca support-ul să fie întotdeauna gratuit.

Pentru software foarte răspândit, cum e Linux-ul, sunt cel puţin 10.000 utilizatori la fiecare dezvoltator. E imposibil ca o singură persoană să asigure support la peste 10.000 utilizatori. Ţineţi cont că deşi plătiţi pentru support, tot plătiţi mult mai puţin decât dacă ar fi trebuit să cumpăraţi si software-ul (în plus, support-ul pentru software-ul comercial este mai scump şi de calitate mai proastă decât support-ul pentru software open-source).

Cum să răspundeţi la întrebări

Fiţi îngăduitor. Stress-ul cauzat de probleme îi poate face pe oameni să pară obraznici sau proşti, chiar când nu sunt.

Comentaţi o greşeală off-line. Nu e necesară umilirea publică din cauza unei simple greşeli. Un începător cu adevărat s-ar putea să nu ştie cum să caute în arhive, sau unde este postat un FAQ.

Dacă nu sunteţi siguri de un lucru, spuneţi aşa! Un răspuns greşit care sună competent e mai rău decât nici un răspuns. Nu daţi indicaţii greşite doar pentru că e distractiv să pari expert. Fiţi onest şi sincer; daţi un bun exemplu atât pentru cel care întreabă cât şi pentru ceilalţi.

Dacă nu puteţi ajuta, nu încurcaţi. Nu faceţi glume despre proceduri care ar putea strica sistemul utilizatorului, pot fi interpretate ca indicaţii.

Puneţi întrebări de control pentru a extrage mai multe detalii. Dacă sunteţi bun la asta, cel care a întrebat poate afla lucruri noi, şi de ce nu, chiar dvs. Încercaţi să transformaţi o întrebare greşită într-una bună.

Deşi un simplu "RTFM" este justificat când răspundeţi unui leneş, direcţii către documentaţie (chiar în forma unor cuvinte cheie de folosit pe Google) sunt şi mai bune.

Dacă răspundeţi, răspundeţi cu ceva util. Nu sugeraţi soluţii greoaie când de fapt cel care întreabă foloseşte metoda sau uneltele greşite. Sugeraţi uneltele potrivite. Reformulaţi întrebarea.

Ajutaţi comunitatea să înveţe din întrebare Când daţi de o întrebare bună, întrebaţi-vă cum poate fi îmbunătăţită documentaţia ca să nu mai fie pusă aceeaşi întrebare în viitor. Trimiteţi apoi un patch celui care întreţine documentaţia.

Dacă a trebuit să vă documentaţi pentru a răspunde, arătaţi cum aţi făcut, nu faceţi să pară că aţi scos răspunsul din burtă. A răspunde unei întrebări e ca şi cum i-aţi da unui om o pâine, a-i arăta cum să caute singur e ca şi cum i-aţi arăta cum se obţine pâinea.

Alte resurse

Dacă aveţi nevoie de informaţii de bază, despre cum funcţionează calculatoarele, Internet-ul, Unix-ul, vedeţi The Unix and Internet Fundamentals HOWTO.

Când publicaţi software sau patch-uri pentru software, urmăriţi instrucţiunile din Software Release Practice HOWTO.

Mulţumiri

Evelyn Mitchell a contribuit cu exemple de întrebări greşite şi a inspirat secţiunea "Cum să răspundeţi la întrebări". Mikhail Ramendik a contribuit cu sugestii valoroase.===========================================================================