Cum se pun întrebări în mod inteligent

De la Wiki.lug.ro
Versiunea din 10 decembrie 2005 10:04, autor: Bmbogdan (Discuție | contribuții) (Folosiţi linii de subiect relevante)

Salt la: navigare, căutare

autori, link la documentul original, data traducerii...

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 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 toleranţi cu greşelile începătorilor. Totuşi, tratându-i şi pe aceştia ca pe hackeri cum e descris 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ă intelectul. 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, „Buna intrebare!“ e un compliment.

In ciuda acestor lucruri, hackerii au reputaţia că tratează întrebările simple cu ostilitate şi aroganţă. Uneori arată ca şi cum suntem automat nepoliticoşi cu începătorii si neştiutorii. Nu e deloc adevărat.

Suntem de fapt ostili cu 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-adeva'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, gândire, 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ă cu inteligentă, încredere şi cunoştinţe, care se întâmplă să aibe nevoie de ajutor cu o problemă punctuală.

Înainte de a întreba

Înainte de a trimite o întrebare tehnică pe email, într-un newsgroup sau forum, faceţi următoarele:

  • Încercaţi să găsiţi un răspuns căutând pe Web.
  • Încercaţi să găsiţi un răspuns în manual.
  • Încercaţi să găsiţi un răspuns într-un FAQ.
  • Încercaţi să găsiţi un răspuns prin analiză şi experiment.
  • Încercaţi să găsiţi un răspuns la un prieten mai experimentat.
  • Dacă sunteţi programator, încercaţi să găsiţi răspunsul citind codul sursă.

Când formulaţi întrebarea, arătaţi că aţi făcut întâi cele de mai sus; astfel demonstraţi că nu sunteţi un puturos care ne pierde timpul. Şi mai bine, arătaţi ce aţi descoperit făcând cele de mai sus. Ne place să răspundem celor care vor învăţa ceva din răspunsurile noastre.

Când căutaţi pe Google, introduceţi textul mesajului de eroare pe care-l primiţi (căutaţi şi în Google Groups, nu doar pe web). E foarte posibil să ajungeţi direct la documentaţia referitoare la problemă, sau la un thread pe un mailing list care conţine răspunsul. Chiar dacă nu găsiţi nimic relevant, ajută să puteţi pune „Am cautat pe google dupa cuvintele următoare dar nu am găsit nimic folositor“ la inceputul mesajului prin care cereţi ajutor.

Pregătiţi-vă bine întrebarea, gândiţi-o până la capăt. Întrebările care sună incomplet vor primi un răspuns pe măsură, sau deloc. Cu cât este mai clar că aţi încercat să vă rezolvaţi singur problema, cu atât e mai probabil să primiţi ajutor.

Aveţi grijă să nu puneţi o întrebare greşită. Dacă întrebarea porneşte de la ipoteze greşite, e foarte probabil ca cineva să vă raspundă literal, în speranţa că veţi învăţa ceva primind exact ce-aţi cerut în loc de ce aveaţi nevoie.

Niciodată sa nu consideraţi că aveti dreptul la un răspuns. Nu-l aveţi; în definitiv, nu plătiţi pentru un serviciu. Veţi câştiga un răspuns, punând o întrebare cu substanţă, interesantă, care ne dă de gândit, o întrebare care contribuie implicit la experienţa comunităţii mai degrabă decât o cerere pasivă de informaţii de la ceilalţi.

Arătaţi că sunteţi dispus să contribuiţi la elaborarea unei soluţii. „Poate sa ma îndrume cineva?“, „Ce lipseşte din exemplul meu?“ şi „Pe ce site ar mai trebui să mă uit?“ au şanse mult mai mari să primească un răspuns, decât „Vă rog să-mi spuneţi exact cum să fac.“ pentru că arată că aveţi doar nevoie de o mică îndrumare în direcţia corectă.

Când întrebaţi

Atenţie unde întrebaţi

Folosiţi-vă discernământul în alegerea locului unde puneţi întrebarea. E foarte probabil să fiţi ignorat sau catalogat ca loser, dacă:

  • postaţi întrebarea pe un forum unde este offtopic
  • postaţi o întrebarea elementară pe un forum unde se aşteaptă probleme tehnice complexe, sau invers
  • postaţi pe mai multe grupuri simultan
  • trimiteţi un mesaj direct către cineva care nu vă e cunoscut personal sau nu e direct responsabil pentru rezolvarea problemei

Hackerii ignoră întrebările puse în locul greşit pentru a-şi proteja canalele de comunicaţie de zgomot inutil. Nu doriţi să se intâmple asta.

Primul pas, deci, este găsirea unui forum propice. Iarăşi, Google sau alte motoare de căutare vă sunt prieteni. Folosiţi-le pentru a găsi pagina de web a proiectului dedicat hardware-ului sau software-ului care vă face probleme. De obicei o să conţină link-uri către o lista de FAQ (Frequently Asked Questions), lista de email a proiectului şi arhiva acesteia. Listele de email sunt ultimul loc unde veţi cere ajutor, dacă prin eforturi proprii (inclusiv citirea acelor FAQ) nu găsiţi o soluţie. Pagina de web a proiectului mai poate descrie o procedură de raportare a bug-urilor. Dacă există, citiţi-o cu atenţie.

Lansarea unui mesaj către o persoana sau forum cu care nu sunteţi familiar, e cel puţin riscantă. De exemplu, nu presupuneţi că autorul unei pagini de web informative doreşte să vă fie consultant gratuit. Nu faceţi presupuneri optimiste că întrebarea va fi binevenită; dacă nu sunteţi sigur, întrebaţi în altă parte, sau deloc.

Cand alegeţi un forum, newsgroup sau listă de email, nu vă luaţi doar după numele lor; căutaţi un FAQ sau regulile grupului pentru a verifica dacă întrebarea dvs. este on-topic. Citiţi arhivele înainte de a posta ca să aveţi o idee despre cum se desfăşoară discuţiile. De fapt, e o idee bună să căutaţi in arhivele grupului după câteva cuvinte cheie ale problemei, înainte de a posta. Puteţi găsi chiar răspunsul, sau vă poate ajuta să formulaţi mai bine întrebarea.

Nu trimiteţi către toate canalele disponibile, e similar cu strigatul şi irită. Luaţi-le pe rând.

Înţelegeţi întâi subiectul! O greşeală clasică este să întrebaţi despre interfaţa de programare Unix sau Windows într-un forum dedicat unui limbaj, bibliotecă sau unealtă portabilă pe ambele sisteme. Dacă nu vă este clar de ce asta e o problemă, mai bine vă abţineţi până vă lămuriţi.

În general, întrebările postate pe un forum public bine ales au şanse mai bune să-şi găsească un răspuns decât aceleaşi întrebări pe un forum privat, din mai multe motive: în primul rând, masa mai mare de oameni care pot răspunde. Apoi, mărimea audienţei; hackerii răspund cu plăcere unei întrebări care poate ajută mai multă lume, decât în folosul câtorva.

De înţeles, hackerii talentaţi sau autorii de programe foarte populare primesc deja mai multe mesaje greşit adresate decât norma. Puteţi fi picătura care umple paharul. De mai multe ori, coautori în proiecte cunoscute si-au incetat participarea, datorită numărului prea mare de mesaje inutile venite pe adresa de mail personală.

Forumurile Web si canalele IRC orientate către începători

Grupul de utilizatori local sau distribuţia dvs. de Linux pot îndruma către forumuri Web sau canale IRC unde începătorii pot primi ajutor. Acestea sunt un bun punct de plecare, mai ales dacă vi se pare că vă loviţi de o problemă relativ simplă sau comună. Existenţa unui canal IRC e o invitaţie deschisă să puneţi întrebări si puteţi primi adesea răspunsul imediat.

De fapt, dacă programul care vă creeaza probleme face parte din distribuţie (cum se întâmplă de obicei), e chiar mai bine să întrebăti pe liste/forumuri ale distribuţiei respective înainte să încercaţi pe cele ale proiectului respectiv. Hackerii lor s-ar putea să vă spună doar „folosiţi versiunea noastră“.

Înainte de a posta pe un forum Web, verificaţi dacă are o funcţie de căutare. Dacă da, încercaţi câteva căutări referitoare la problema dvs; poate ajută. Chiar dacă aţi folosit un motor de căutare pe Web înainte (cum ar fi trebuit), căutaţi şi pe forum; e posibil ca nu tot forumul să fi fost indexat.

Din ce în ce mai frecvent, proiectele oferă asistenţă utilizatorilor pe forumuri Web sau canale IRC, păstrând listele de email pentru discuţii legate de dezvoltare. Uitaţi-vă întâi după acestea când aveţi nevoie de ajutor legat de un proiect.

Pasul doi, listele de email ale proiectului

Când un proiect are o lista de email, scrieţi pe aceasta, nu direct către programatorii implicaţi, chiar dacă vi se pare că ştiţi exact cine vă poate da cel mai bun răspuns. Uitaţi-vă în documentaţia proiectului şi în pagina de Web după adresa unei liste de email. Iată câteva motive:

  • Orice întrebare suficient de bună pentru unul din programatori va fi interesantă pentru întregul grup. Pe de altă parte, faptul că întrebarea e prea stupidă pentru listă nu e o scuză pentru a-i agasa pe programatori personal.
  • Întrebând pe listă se distribuie mai bine munca pentru programatori. Un programator individual (în special daca e vorba despre leader-ul proiectului) poate fi prea ocupat pentru a vă răspunde.
  • Majoritatea listelor de email sunt arhivate şi indexate de motoarele de căutare. Altcineva poate găsi întrebarea dvs. şi răspunsurile pe web, în loc să întrebe din nou pe listă.
  • Dacă o anumită întrebare se tot repetă, e o indicaţie că documentaţia sau chiar software-ul respectiv se pot îmbunătăţi pentru a fi mai puţin ambigue. Dacă întrebările respective s-ar pune în particular, nimeni nu ar avea o vedere de ansamblu asupra întrebărilor mai frecvente.

Dacă un proiect are atât o listă (sau forum) pentru utilizatori cât si una pentru programatori (hackeri), şi nu lucraţi efectiv cu codul sursă al programului, întrebaţi pe lista pentru utilizatori. Nu presupuneţi că sunteţi binevenit pe lista de dezvoltare, unde e probabil că va fi tratată ca zgomot.

Bineinţeles, dacă sunteţi sigur că întrebarea e ne-trivială şi nu primiţi răspuns pe lista pentru utilizatori timp de mai multe zile, încercaţi şi cealaltă listă. Ar fi indicat să monitorizaţi o perioadă lista, pentru a fi familiar cu obiceiurile grupului (o idee bună pentru orice listă privată).

Dacă nu găsiţi o listă de mail pentru un proiect şi aveţ doar adresa autorului (maintainer), scrieţi-i acestuia. Chiar şi aşa, nu presupuneţi că nu există o listă. Menţionaţi în mesajul dvs. că nu aţi găsit-o. De asemenea, menţionaţi că nu aveţi nimic împotrivă să vă fie retrimis mesajul către alte persoane. (Mulţi consideră că mesajele private, chiar dacă nu conţin nimic secret, trebuie să rămână private).

Folosiţi linii de subiect relevante

Pe listele de email, newsgroups sau forumurile Web, linia de subiect vă dă ocazia să captaţi atenţia experţilor, în circa 50 caractere. Nu o irosiţi cu sintagme de genul „ajutor“ (ca să nu mai vorbim de „AJUTOR!!!!“; mesajele cu un astfel de subiect vor fi ignorate din reflex). Nu încercaţi să ne impresionaţi cu dificultăţile dvs; folosiţi acel spaţiu pentru o descriere concisă a problemei.

O convenţie utilă pentru linia de subiect, folosită de multe organizaţii de asistenţă tehnică, este forma „obiect - deviatie“. „Obiect“ desemneaza acel lucru care are o problema, iar „deviatie“ descrie deviaţia de la comportamentul aşteptat.


Stupid 
AJUTOR! Placa video nu funcţionează cum trebuie!!
Inteligent 
XFree86 4.1 forma cursorului incorectă, chipset Fooware MV1005
Şi mai inteligent 
XFree86 4.1 cursorul mouse-ului, chipset Fooware MV1005 - desenat incorect


Redactarea unui subiect de forma „obiect - deviaţie“ vă va forţa să gândiţi problema în detaliu. Ce anume este afectat? Doar cursorul mouse-ului, sau şi restul graficii? Se întâmplă doar cu XFree86? Doar cu versiunea 4.1? Se întamplă doar cu chipset-ul Fooware? Doar cu modelul MV1005? Un hacker care vede un astfel de subiect poate întelege imediat cu ce aveţi probleme şi care sunt acelea.

Imaginaţi-vă că vă uitaţi la index-ul arhivei de întrebări, care vă arată doar liniile de subiect. Faceţi în aşa fel încât subiectul să reflecte întrebarea suficient de bine încât următoarea persoană care va căuta în arhivă răspunsul la o întrebare similară cu a dvs. să o găsească uşor şi să nu întrebe din nou acelaşi lucru.

Dacă puneţi o întrebare într-un răspuns (reply la un email anterior), schimbaţi linia de subiect pentru a se vedea că puneţi o întrebare. Un subiect ca "Re: test" sau "Re: new bug" e puţin probabil să atragă atenţia. De asemenea, ştergeţi din mesaj textul vechi, păstrând un minim necesar pentru a-l face coerent pentru cititori noi.

Nu folosiţi funcţia "reply" pe un mesaj de pe listă pentru a porni un thread nou, fără legătură, sau vă limitaţi audienţa. Unii clienţi de mail, ca mutt, permit utilizatorului să sorteze mesajele după thread şi să împacheteze (fold) toate mesajele dintr-un thread într-o singură linie de subiect. Cei care fac asta pur şi simplu nu vor vedea mesajul dvs.

Schimbarea liniei de subiect nu este suficientă. Mutt, probabil şi alte programe, se uită la alte informaţii din headerul mesajelor pentru a determina thread-ul din care fac parte, nu la linia de subiect. Scrieţi un mesaj nou.

Pe forumurile Web regulile sunt puţin diferite, deoarece mesajele sunt de obicei legate de un thread şi nu sunt vizibile decât în contextul acelui thread. Schimbarea subiectului pentru a pune o întrebare nu este esenţială (nu toate forumurile permit linii diferite de subiect la fiecare mesaj, şi oricum nu le citeşte nimeni). Dar a pune o întrebare într-un thread existent e o practică dubioasă, pentru că întrebarea nu va fi văzută decât de cei care urmăresc acel thread. Deci, dacă nu sunteţi extrem de sigur că vreţi un răspuns doar de la cei activi în thread, porniţi unul nou.

TO BE CONTINUED