Cum să devii un hacker

De la wiki.lug.ro
Salt la: navigare, căutare

Traducerea reviziei 1.38 a documentului How To Become A Hacker, de Eric S. Raymond. Versiunea inițială realizată de Andrei Savu pe data de 21 ianuarie 2006.

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ă.

(thumbnail)
Glider

Cuprins

De ce acest document?

Ca editor al dicţionarului de jargon şi al altor câteva documente similare foarte cunoscute primesc des mesaje de la începători în reţele care întreabă "Cum pot să învăţ să fiu un hacker?". În 1996 am observat că nu există nici un fel de FAQ sau document pe web care să raspundă la această întrebare aşa că m-am apucat să-l scriu. Mulţi hackeri îl consideră acum ca referință, presupun că asta înseamnă că este. Nu pretind că sunt singura autoritate în acest domeniu; dacă nu iţi place ce citești eşti liber să scrii propria versiune.

Dacă citeşti un rezumat al acestui document versiunea completă o găseşti la Cum sa devii un hacker

Notă: la sfârşitul acestui document găseşti o listă cu întrebări frecvente. Citeşte-o de două ori înainte de a-mi pune orice întrebare despre acest document.

N.T.: Traduceri în alte limbi sunt disponibile pe pagina autorului. Atenţie, acest document se schimbă frecvent şi traducerile pot fi neactualizate.

Imaginea cu cele cinci puncte în nouă pătrate poartă numele de glider. E un model simplu cu nişte proprietăţi foarte interesante într-o simulare matematică numită Life care fascinează pe hackeri de mulţi ani. Cred că este o bună emblemă, care arată cum sunt hackerii: abstracţi, aparent misterioşi, şi totuşi o poartă către o lume cu o logică aparte. Citeşte mai multe despre emblemă aici.

Ce este un Hacker?

Dicţionarul de jargon conţine mai multe definiţii ale cuvântului hacker, cele mai multe fiind legate de obsesia pentru tehnică şi de dorinţa de a rezolva probleme şi a depăşi limite. Dacă vrei să ştii cum să devii un hacker doar două definiţii sunt relevante.

Există o comunitate, o cultură, formată din programatori experti şi magicieni în ceea ce priveşte reţelele care îşi are originea în primele experimente ARPAnet. Membrii acestei culturi au creat termenul de hacker. Hackerii au construit Internetul. Hackerii au adus sistemul Unix la forma actuală. Hackerii fac să funcţioneze Usenet. Hackerii menţin World Wide Web funcţional. Dacă faci parte din această cultură, dacă ai contribuit şi ceilalţi ştiu cine eşti şi te numesc hacker, atunci eşti un hacker.

Conceptul de hacker nu este limitat doar la software. Există oameni care adoptă atitudinea unui hacker şi în alte domenii, cum ar fi electronica şi muzica. Termenul poate fi asociat celui mai înalt nivel din orice ştiinţă sau artă. Hackerii programatori recunosc aceste spirite înzestrate şi în alte persoane. Unele persoane spun că atitudinea unui hacker este independentă de domeniu. În continuarea acestui document o să mă concentrez pe deprinderile şi atitudinea unui hacker programator, şi pe tradiţiile celor care au impus denumirea de hacker.

Mai există un grup de oameni care se autodeclară hackeri, dar care nu sunt. Aceşti oameni (în special adolescenţi) nu fac altceva decât să atace calculatoare pe internet şi să folosească ilegal sistemul telefonic. Hackerii adevăraţi numesc aceste persoane crackeri şi nu vor să aibă nici o legătură cu ei. Majoritatea hackerilor adevaraţi cred că crackerii sunt leneşi, iresponsabili şi nu foarte inteligenţi. Simplul fapt de a fi capabil să intri în anumite calculatoare nu te face să fii hacker la fel cum a fi capabil să porneşti o maşină fară chei nu te face un inginer auto. Din nefericire, mulţi jurnalişti şi scriitori au fost păcăliţi să folosească cuvântul hacker pentru a descrie crackeri; acest lucru îi irită pe hackerii adevăraţi.

Diferenţa esenţială dintre un hacker şi un cracker este următoarea: hackerii construiesc lucruri pe când crackerii nu fac altceva decât să distrugă.

Dacă vrei să devii un hacker continuă să citeşti. Dacă tot ce vrei e să fii un cracker atunci citeşte grupul de ştiri alt.2600 şi pregăteşte-te să faci cinci sau zece ani de închisoare după ce descoperi că nu eşti aşa inteligent cum crezi. Atât am să spun despre crackeri.

Atitudinea unui Hacker

  1. Lumea este plină de probleme fascinante care aşteaptă să fie rezolvate.
  2. Nici o problemă nu ar trebui să fie rezolvată de doua ori.
  3. Evită plictiseala şi munca neinteresantă.
  4. Libertatea este bună.
  5. Atitudinea nu substituie competenţele.

Hackerii rezolva probleme şi construiesc, ei cred în libertate şi ajutorul reciproc dezinteresat. Pentru a fi acceptat ca hacker, trebuie să te comporţi ca şi cum ai avea această atitudine și pentru a te comporta astfel trebuie să crezi cu adevărat în aceste valori.

Dacă te gândeşti să imiţi atitudinea de hacker doar pentru a fi acceptat în comunitate atunci ai inţeles greşit. E foarte important să devii tipul de persoană care crede că aceste lucruri sunt importante pentru că te ajută să înveţi şi să rămâi motivat. Ca toate celelalte arte care presupun creativitate, cel mai eficient mod de a deveni un maestru este imitarea acţiunilor unui maestru, nu doar intelectual ci şi emoţional.

Sau, aşa cum afirmă acest poem Zen modern:

Pentru a urma calea:
priveşte maestrul,
urmează maestrul,
mergi împreună cu maestrul,
priveşte prin ochii maestrului,
fii tu maestrul.
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.

Deci, pentru a deveni un hacker, repetă următoarele lucruri până când reuşeşti să crezi în ele:

Lumea este plină de probleme fascinante care aşteaptă să fie rezolvate

A fi un hacker e foarte amuzant, un gen de amuzament care are nevoie de foarte mult efort. Efortul necesită motivaţie. Atleţii de succes îşi menţim motivaţia din dorinţa de a-şi împinge trupul către obiective din ce în ce mai ridicate. Asemănător, pentru a fi un hacker trebuie să te simţi motivat să rezolvi probleme, să îţi îmbunătăţeşti aptitudinile, şi să îţi exerciţi inteligenţa.

Dacă nu eşti genul de persoană care simte aceste lucruri natural, va trebui să devii o astfel de persoană pentru a deveni un hacker. Altfel, o să descoperi că energia pentru hacking e folosită în altfel de distracţii precum sex, bani şi aprobare socială.

(Trebuie să îţi dezvolţi şi o încredere în propria capacitate de a învăţa lucruri noi, încrederea că dacă nu ştii tot ce e necesar pentru a rezolva o problema, dacă reuşeşti să întelegi o parte din ea şi să înveţi în continuare din acest punct vei ştii suficient pentru a rezolva urmatoarea parte şi tot aşa, până când termini.)

Nici o problemă nu ar trebui rezolvată de două ori

Creierele creative sunt o resursă limitată. Nu ar trebui să fie irosite reinventând roata mai ales ştiind că sunt atâtea probleme interesante care aşteaptă să fie rezolvate.

Pentru a te comporta ca un hacker, trebuie să înţelegi că timpul celorlalţi este la fel de important ca şi al tău, astfel încât este o datorie morală să împarţi informaţiile, să rezolvi probleme a căror soluţie să o faci disponibilă oricui pentru ca ceilalţi hackeri să rezolve noi probleme şi să nu fie nevoiţi să rezolve probleme deja rezolvate.

Atenţie, Nici o problemă nu ar trebui rezolvată de două ori nu implică faptul că toate soluţiile existente trebuie să fie considerate permanente, sau că există o singură soluţie pentru o anumită problemă. Adesea învăţăm mult despre o problemă pe care nu am ştiut să o rezolvăm studiind o primă rezolvare. Este bine, şi de multe ori chiar necesar să decidem că putem să rezolvăm problema mai bine. Nu sunt benefice barierele artificiale impuse tehnic, legal sau instituţional (programe cu sursă închisă) care împiedică refolosirea unei soluţii bune şi forţează oamenii să reinventeze roata.

(Nu trebuie să crezi că eşti obligat să dai toată munca ta creativă, deşi hackerii care fac acest lucru sunt mai respectaţi. E compatibil cu valorile hackerilor să vinzi rezultatul muncii tale, astfel încât să ai ce mânca, plăti chiria şi cumpăra calculatoare. Este acceptat să îţi folosești deprinderile de hacker chiar pentru a te îmbogăți, atâta timp cât nu uiţi de ceilalţi hackeri şi de valorile de care discutăm aici.)

Evită plictiseala şi munca neinteresantă

Hackerii (persoanele creative în general) nu ar trebui să fie niciodată plictisiţi sau să facă o muncă repetitivă şi neinteresantă pentru că atunci când acest lucru se întâmplă nu mai pot să rezolve probleme noi şi interesante. Pierderea este resimțită de toţi. Așadar plictiseala şi orice formă de muncă neinteresantă nu sunt doar neplăcute, ci chiar malefice.

Pentru a te comporta ca un hacker trebuie să crezi în acest lucru suficient de mult încât să încerci să automatizezi orice fel de muncă plictisitoare, nu doar pentru tine ci şi pentru ceilalţi (în special alţi hackeri).

(Nu există nici o excepţie la acest lucru. Hackerii vor face câteodată lucruri care par repetitive şi plictisitoare unui observator ca un exerciţiu de limpezire a gândurilor, sau pentru a forma o nouă deprindere sau pentru o anumită experienţă care nu poate fi încercată altfel. Dar aceasta este o alegere, nimeni care e capabil să gândească nu ar trebui să fie forţat să facă o muncă plictisitoare.)

Libertatea este bună

Hackerii sunt, în mod natural, independenţi, nesupuşi autorităţilor. Oricine poate să îţi dea ordine poate să te oprească să rezolvi o problemă de care eşti fascinat şi sigur va găsi un motiv stupid pentru aceasta. Aşa că atitudinea autoritară trebuie să fie respinsă în orice situaţie.

(Dar asta nu înseamnă că trebuie să luptăm împotriva tuturor autorităţilor. Copiii trebuie să fie ghidaţi şi criminalii închişi. Un hacker poate să accepte o anumită autoritate pentru a obţine ceva care este mai valoros decât timpul pe care îl pierde urmând ordinele, dar aceasta este o situaţie rar întâlnită şi acceptată conştient.)

Autorităţile se dezvoltă bazându-se pe secrete şi cenzură. Acestea împiedică schimbul liber şi voluntar de informaţie, autorităţile preferă cooperarea pe care o pot controla. Deci pentru a te comporta ca un hacker trebuie să îţi dezvolţi o repulsie instinctivă faţă de cenzură, secrete şi uzul forţei. Trebuie să ai puterea să acţionezi conform acestei credinţe.

Atitudinea nu se substituie competenţelor

Pentru a fi un hacker trebuie să îţi impui anumite atitudini. Simpla lor copiere însă nu te va face un hacker aşa cum nu te va face un campion de atletism sau o vedetă rock. Pentru a deveni un hacker ai nevoie de inteligenţă, practică, dedicație şi multă muncă.

Trebuie să înveţi să nu ai încredere în aparențe dar să respecţi competenţa de orice fel. Hackerii nu admit printre ei figuranți, ei prețuiesc competența - de orice fel, dar în special în hacking. Priceperea la lucruri dificile, pe care puţini le pot înţelege, care necesită concentrare şi atenţie, este cu atât mai mult apreciată.

Dacă respecţi competenţa, o să îţi placă să ți-o dezvolţi şi munca dificilă va deveni un joc intens. Abordarea asta este vitală pentru a deveni un hacker.

Cunoştinţe esenţiale

  1. Învaţă să programezi.
  2. Instalează şi foloseşte un sistem din familia Unix.
  3. Învaţă să foloseşti Internetul şi HTML.
  4. Dacă nu ştii engleză la un nivel acceptabil, învaţă.

Atitudinea de hacker este importantă dar cunoştinţele sunt şi mai importante. Atitudinea nu substituie cunoştinţele, şi există un set de deprinderi pe care trebuie să le ai înainte ca cineva să se gândească să te numească hacker.

Acest set se schimbă lent pe masură ce trece timpul şi tehnologia creează nevoi noi, făcându-le pe cele vechi desuete. De exemplu, programarea în cod mașină sau recenta introducere a HTML. Acum însă include următoarele:

Învaţă să programezi

Acest lucru este esenţial. Daca nu ştii să programezi în nici un limbaj îţi recomand să începi cu Python. E foarte bine gândit, bine documentat, şi destul de blând cu începătorii. Lăsând la o parte faptul că e un limbaj bun pentru începători, Python nu este o jucărie, este un limbaj foarte puternic şi flexibil şi care se pretează a fi folosit la proiecte mari. Am scris o evaluare mai detaliată aici. Nişte tutoriale foarte bune sunt disponibile pe pagina web Python.

Obișnuiam să recomand Java ca prim limbaj de programare dar această critică m-a făcut să mă răzgândesc (căutați The Pitfalls of Java as a First Programming Language în text). Un hacker nu poate, cum plastic s-au exprimat autorii, aborda rezolvarea unei probleme ca un instalator într-un depozit de materiale; trebuie să știi ce fac efectiv componentele. Acum cred că cel mai bine e să înveți C și Lisp la început, abia apoi Java.

Pentru a putea programa cu adevărat, trebuie să înveți C, limbajul de bază al sistemului Unix. C++ are foarte multe elemente comune cu C, dacă ştii unul va fi uşor să îl înveţi pe celălalt. Nici C, nici C++ nu sunt genul de limbaje pe care să le înveţi la început. O să observi că o să fii mult mai productiv in alte limbaje decât în C. De fapt, pe cât poți, evită C și vei fi cu atât mai productiv.

C-ul este foarte eficient şi econom cu resursele calculatorului. Din nefericire C-ul are această eficienţă deoarece administrarea resurselor (cum ar fi memoria) este lăsat în seama programatorului. Tot acest cod de nivel scăzut este complet si predispus la probleme (bug-uri), solicitând mult timp pentru depanare. Ținând cont de cât de rapide sunt calculatoarele de astăzi este mai bine să foloseşti un limbaj care să economisească timpul programatorului şi nu pe cel al calculatorului (ex: Python).

Alte limbaje de importanţă deosebită pentru un hacker sunt Perl şi LISP. Perl merită învăţat în special din motive practice; este folosit foarte frecvent pentru pagini de web dinamice şi pentru administrarea sistemului, astfel încât chiar dacă nu o să scrii programe în Perl tot trebuie să le poți citi. Mulţi oameni utilizează Perl aşa cum sugerez eu să fie folosit Python, pentru a evita programarea în C atunci cand nu e nevoie de eficienţă. Va trebui să fii capabil să înţelegi aceste programe.

LISP merită învăţat pentru sentimentul de mulţumire pe care îl ai atunci cand reuşeşti să-l înţelegi. Această experienţă te va face un programator mai bun pentru tot restul vieţii, chiar dacă nu o să foloseşti frecvent LISP pentru a scrie programe. (Poţi să capeţi ușor nişte experienţă în LISP scriind şi modificând moduri de editare pentru Emacs, sau Script-Fu plugins pentru GIMP).

Cel mai bine e să le înveţi pe toate cinci: Python, C/C++, Java, Perl si LISP. În afara faptului că sunt cele mai importante limbaje pentru hacking sunt şi ipostaze ale diferitelor paradigme de programare, şi fiecare te va educa în diferite moduri.

Nu pot să dau instrucţiuni complete despre cum să înveţi să programezi, e o muncă dificilă. Dar pot să îţi spun că nu te vor ajuta foarte mult carţile şi cursurile (mulţi, poate cei mai mulţi hackeri sunt autodidacţi). Pot să înveţi despre un limbaj din cărţi, dar modul de gândire care transformă acele cunoştiinţe într-o deprindere pot fi învăţate numai prin exerciţiu şi programare. Ceea ce trebuie să faci e a) să citeşti programe şi b) să scrii programe.

Peter Norvig, unul dintre cei mai buni hackeri de la Google şi coautor al unor excelente cărţi despre inteligenţă artificială, a scris un eseu excelent numit Teach Yourself Programming in Ten Years. Reţeta lui pentru succes în programare merită toată atenţia.

A învăţa să programezi e ca şi cum ai învăţa o nouă limbă. Cea mai bună modalitate e să citeşti câteva texte scrise de experţi în domeniu, să scrii nişte chestii singur, să citeşti mai mult, să mai scrii, să citeşti, să scrii... şi să repeţi până când dezvolţi în scris genul de putere şi economie pe care o vezi în modelele tale.

Găsirea unor programe bune pentru analizat era o chestie dificilă, pentru că erau puţine disponibile sub formă de cod sursă pe care puteau experimenta hackerii. Acest lucru s-a schimbat dramatic; programe cu sursă deschisă (open-source), unelte pentru programare şi sisteme de operare (toate construite de hackeri) sunt acum disponibile pentru oricine. Ceea ce ne apropie de următorul subiect...

Instalează şi foloseşte un sistem de operare din familia Unix

O să presupun că ai un calculator personal sau ai acces la unul. (Gândeşte-te un moment ce înseamnă asta. Cultura hackerilor a apărut în timpul în care calculatoarele erau aşa de scumpe încât nimeni nu îşi permitea să cumpere un calculator personal). Unul dintre cei mai importanţi paşi pe care un începător îl poate face pentru a începe să dobândească deprinderi de hacker este să facă rost de o copie de Linux, BSD sau OpenSolaris, să-l instaleze pe calculatorul personal şi să înveţe să-l folosească.

Da, mai sunt şi alte sisteme de operare în lume în afară de Unix, dar sunt distribuite sub formă binară - nu poţi citi codul sursă și nu-l poţi modifica. A încerca să înveţi hacking pe un calculator cu Microsoft Windows sau orice alt sistem de operare cu surse închise e ca şi cum ai încerca să dansezi îmbrăcat în gips.

Sub Mac OS X este posibil, dar numai o parte din sistemul de operare are şi surse, e posibil să te loveşti de multe ziduri şi trebuie să fii atent să nu dezvolţi prostul obicei de a depinde de codul proprietar Apple. Dacă te concentrezi pe Unix-ul de la baza vei putea învăţa totuși foarte multe lucruri.

Unix este sistemul de operare al Internetului. Deşi poţi să înveţi să foloseşti internetul fără să ştii Unix, nu poţi să fii un hacker fără să înţelegi Unix. Din acest motiv, cultura hackerilor este strâns legată de Unix. (Acest lucru nu a fost întotdeauna adevărat, şi câţiva hackeri nu sunt prea bucuroşi, dar simbioza între Unix şi Internet este suficient de puternică încât, de exemplu, o companie ca Microsoft nu poate să intervină.)

Aşa că instalează un sistem din familia Unix - mie îmi place Linux dar mai există şi alte căi (şi da, poţi să ai şi Linux şi Windows pe acelaşi calculator). Invaţă să-l folosești. Experimentează cu el. Navighează pe Internet cu el. Citeşte codul. Modifică codul. O să ai la dispoziţie unelte pentru programare (inclusiv C, LISP, Python şi Perl) mai bune decât va avea vreodată orice sistem Microsoft, o să fie distractiv și o să înveţi mult mai repede decât îţi dai seama.

Pentru mai multe informaţii în legătură cu Unix vezi The Loginataka. Aruncă o privire şi pe The Art Of Unix Programming.

Pentru a obţine o copie Linux, vizitează Linux Online!; poţi să descarci de acolo sau (o idee mai bună) gaseşte un grup local de utilizatori Linux care să te ajute cu instalarea.

În primii zece ani de la redactarea acestui HOWTO, spuneam că din perspectiva unui nou utilizator, toate distribuțiile de Linux sunt identice. În 2006-2007 însa, cea mai bună alegere este Ubuntu. În timp ce alte distribuții au calitățile lor, Ubuntu este de departe cea mai accesibilă începătorilor.

Poţi să gasesti informaţii şi resurse despre BSD Unix la www.bsd.org.

O bună metodă de a "încerca apa" este să rulați ceea ce fanii Linux numesc live CD, o distribuție care rulează în întregime de pe CD fără a trebui să scrie nimic pe hard disk. O să fie lent, pentru că CD-urile sunt lente, dar o să puteți arunca o privire fără a face nimic drastic.

Am scris o scurtă introducere la adresa Basics of Unix and the Internet.

Obișnuiam să recomand să nu instalați Linux sau BSD de unul singur dacă sunteți începător. În ziua de azi programele de instalare sunt suficient de mature încât oricine se poate descurca. Totuși, recomand să contactați grupul local de utilizatori Linux si să le solicitați ajutorul. Nu strică, ba chiar vă poate ușura munca.

Învaţă să foloseşti Internetul şi HTML

Cele mai multe lucruri pe care cultura hackerilor le-a produs nu s-au bucurat de atenţie publică, fiind folosite în fabrici şi universităţi fără nici un impact direct asupra oamenilor în general. Web-ul este excepţia notabilă; marea şi strălucitoarea jucărie a hackerilor despre care până și politicienii spun că a schimbat lumea. Din acest motiv (şi multe altele) trebuie să înveţi să lucrezi pe Web.

Asta nu înseamnă doar să ştii să foloseşti un browser (oricine poate să facă asta), trebuie să înveţi să scrii HTML - limbajul Web-ului. Dacă nu ştii să programezi, învăţând HTML o să îţi fie mai uşor să înveţi apoi un limbaj de programare. Aşa că trebuie să îţi faci o pagină pe web. Încearcă să foloseşti standardul XHTML, mai închegat decât clasicul HTML. (Se găsesc uşor tutoriale pe web; aici e unul).

A avea o pagina e doar începutul lungului drum spre a deveni un hacker. Internetul e plin de astfel de pagini. Majoritatea au un conţinut inutil (vezi The HTML Hell Page).

Ca să merite, pagina ta va trebui să aibă conţinut, să fie interesantă/folositoare altor hackeri. Şi asta ne aduce la următorul subiect...

Dacă nu ştii engleză la un nivel acceptabil, învaţă

Ca american şi vorbitor nativ de limbă engleză am ezitat să sugerez acest lucru, l-am perceput ca o formă de imperialism cultural. Dar câţiva vorbitori nativi de altă limbă decât engleza m-au împins să declar că engleza este limba comunităţii hackerilor şi că trebuie să o ştii pentru a te integra.

În jurul anului 1991 am învăţat că mulţi hackeri care știau engleza o foloseau în special în discuţiile tehnice; mi s-a spus că engleza are un vocabular tehnic mult mai bogat decât orice altă limbă şi deci este un instrument mai bun pentru astfel de discuţii. Din motive similare traducerile cărţilor tehnice din engleză sunt deseori nesatisfăcătoare (atunci când există).

Linus Torvalds, finlandez, comentează tot codul pe care îl scrie în engleză (aparent nici nu şi-a pus vreodată problema dacă ar trebui să facă altfel). Engleza lui fluentă a fost un factor important în abilitatea sa de a recruta o comunitate globală de dezvoltatori Linux. Este un exemplu bun de urmat.

Vorbitor nativ de engleză fiind, asta nu înseamnă că o stăpânești suficient de bine pentru a fi un hacker. Dacă scrisul este plin de dezacorduri şi de greşeli, mulţi hackeri (inclusiv eu) vor avea tendinţa să te ignore. Deşi scrisul dezordonat nu înseamnă neapărat şi o gândire dezordonată am observat că există totuşi o corelaţie destul de puternică - de aceștia nu avem nevoie printre noi. Dacă nu ştii să scrii bine, învaţă.

Statutul în comunitatea hackerilor

  1. Scrie programe cu surse deschise (open-source)
  2. Ajută la testarea şi îmbunătăţirea programelor open-source
  3. Publică informaţii utile
  4. Menţine infrastructura funcţională
  5. Ajută comunitatea hackerilor

Ca şi celelalte culturi care nu se bazează pe bani, cultura hackerilor se bazează pe reputaţie. Tu încerci să rezolvi probleme interesante, dar cât de interesante sunt, şi cât de bune sunt soluţiile tale rămâne să decidă ceilalţi.

Atunci când faci parte din jocul hackerilor scorul tău e dat în special de ceea ce gândesc ceilalţi (din acest motiv nu te poţi numi hacker până în momentul când ceilalţi nu te numesc astfel). Acest fapt este mascat de imaginea hackingului văzut ca o activitate solitară; şi de un tabu din cultura hackerilor (care a început să dispară din 1990 dar care este încă puternic) împotriva admiterii faptului că ego-ul și aprobarea celorlalti au un rol în motivaţie.

Cultura hackerilor este ceea ce antropologi numesc o cultură a darului. Obţii reputaţie şi eşti respectat, nu fiind frumos, nu având lucruri pe care alţi oameni le vor, ci oferind - timp, creativitate, şi rezultatul muncii tale.

Sunt cinci lucruri pe care le poţi face pentru a fi respectat de ceilalţi hackeri :

Scrie programe cu surse deschise (open-source)

Primul lucru (fundamental şi tradiţional) pe care îl poţi face e să scrii programe pe care ceilalţi hackeri să le considere distractive şi utile, şi să oferi codul sursă al acestor programe astfel încât toţi să îl poată folosi.

(Obișnuiam să numim aceste programe free (N.T.: free înseamnă atât liber, cât și gratis) dar termenul a creat confuzie, prea mulți neînțelegând la ce se referea free. Cei mai mulți hackeri folosesc azi termenul open-source).

Cei mai respectaţi în cultura hackerilor sunt cei care au scris programe mari şi capabile, care au satisfăcut o nevoie generală şi care au fost făcute disponibile împreună cu sursele complete astfel încât oricine să le poată folosi şi învăţa din ele.

Dar lucrurile nu au fost mereu aşa. Deşi hackerii au privit dezvoltatorii open-source cu multă admiraţie ca un element esenţial al culturii, înainte de 1990 majoritatea hackerilor scriau programe cu sursele închise. Această atitudine era încă activă în 1996 când am scris prima versiune a acestui document; lucrurile s-au schimbat începând cu anul 1997. Astăzi comunitatea hackerilor şi comunitatea dezvoltatorilor open-source sunt două denumiri care descriu acelaşi lucru dar e bine să ştim că lucrurile nu au fost mereu aşa.

Ajută la testarea şi îmbunătăţirea programelor open-source

Şi cei care găsesc erorile din programele open-source sunt foarte respectaţi. În această lume imperfectă, inevitabil ajungem să ne petrecem cel mai mult timp de dezvoltare a programelor căutând erori. Din acest motiv orice dezvoltator open-source care gândeşte îţi va spune că nişte testeri buni (care ştiu cum să descrie simptomele clar, să localizeze problemele, să ignore micile probleme din primele apariţii, şi care pot să aplice nişte funcţii de diagnosticare) sunt foarte valoroşi. Chiar şi unul singur poate să facă diferenţa între o căutare de erori care este stresantă şi una foarte uşoară.

Daca eşti un începător, încearcă să găseşti un program care este în dezvoltare şi de care eşti interesat şi fi un bun tester. Are loc un avans natural de la a ajuta la testarea programelor, la a ajuta la eliminarea erorilor şi a ajuta la scrierea lor. O să înveţi foarte mult astfel şi o să ai o relaţie bună cu oameni care te vor ajuta mai târziu.

Publică informaţii utile

Un alt lucru bun e să colectezi şi să filtrezi informaţii utile şi interesante în pagini web sau documente cu răspunsuri la întrebări frecvente (FAQ - Frequently Asked Questions) pe care să le faci disponibile tuturor.

Editorii celor mai importante liste de întrebări frecvente primesc la fel de mult respect ca şi dezvoltatorii open-source.

Ajută la menţinerea infrastructurii funcţionale

Cultura hackerilor (şi a inginerilor care au dezvoltat internetul) se bazează pe voluntariat. E foarte multă muncă necesară care trebuie făcută pentru a menţine lucrurile funcţionale: administrarea listelor de mail, moderarea grupurilor de ştiri, întreținerea unor arhive mari de software, dezvoltarea de RFC-uri şi alte standarde tehnice.

Oamenii care fac aceste lucruri sunt foarte respectaţi pentru că toată lumea ştie că aceste munci sunt mari devoratoare de timp şi nu sunt atât de distractive ca programarea. Făcând aceste lucruri persoanele respective îşi arată loialitatea.

Ajută comunitatea hackerilor

În fine, poţi să ajuţi la propagarea culturii hackerilor în sine (de exemplu prin scrierea unui eseu despre cum să devii un hacker :-)). Nu vei putea să faci acest lucru decât dacă vei fi cunoscut de cât mai mulţi oameni pentru unul din primele patru lucruri.

Comunitatea hackerilor nu are lideri, dar are eroi, "bătrâni", istorici şi purtători de cuvânt. Când ai fost implicat mai mult timp în comunitate se poate să ajungi ceva de genul ăsta. Atenţie: hackerii nu au încredere în ego-ul zgomotos al "bătrânilor" aşa că poate fi periculos să ai o astfel de faimă. Nu trebuie să încerci din toate puterile să te ridici la un astfel de nivel, trebuie să te poziţionezi de aşa natură încât să îţi cadă în braţe şi atunci să fii modest.

Legătura Hacker/Tocilar(nerd)

N.T. Termenii nerd și geek din engleză nu au o traducere exactă în română. În limba engleză semnificația este mai nuanţată decât definiţia acceptata în limba română. O astfel de persoană nu poate fi numită pur şi simplu tocilar. Pentru mai multe informaţii vedeţi pagina http://en.wikipedia.org/wiki/Nerd. În continuare în text o să folosesc termenul din română, tocilar, dar cu sensul mult mai nuanţat şi apropiat de cel real. O discuţie pe această temă poate fi lungă - şi într-o oarecare măsură asemănătoare cu cea despre cum să devii un hacker.

Contrar miturilor, nu trebuie să fii un tocilar ca să fii un hacker. Ajută, şi într-adevăr mulți hackeri sunt tocilari. Fiind mai puţin sociabil te ajută să rămâi concentrat asupra lucrurilor cu adevărat importante, precum gândirea şi hackingul.

Din acest motiv, mulţi hackeri au adoptat termenul de geek ca o modalitate de a-şi declara independenţa faţă de aşteptările societăţii (precum și o afinitate pentru alte lucruri cum ar fi science fiction-ul și jocurile de strategie). Termenul nerd era folosit în anii '90, atunci cand nerd avea conotații vag peiorative iar cel de geek era puternic peiorativ; la un moment dat dupa 2000, rolurile s-au inversat, cel puțin în cultura populară americană. Există acum chiar un puternic sentiment de respect pentru tocilari, în lumea non-tehnică.

Dacă reuşeşti să te concetrezi pe hacking suficient astfel încât să fii bun şi să ai şi o viaţă socială, totul e în regulă. Astăzi e mult mai uşor să faci asta decât era în 1970 când eram un începător; societatea este mult mai prietenoasă cu astfel de persoane azi. Există un număr în creştere de persoane care realizează că hackerii sunt şi nişte persoane foarte sensibile şi iubitoare.

Dacă eşti atras de hacking pentru că nu ai o viaţă socială şi asta e ok, cel puţin nu o să ai probleme să te concentrezi. Poate o să ai o viaţă mai târziu.

Puncte pentru stil

Pentru a fi un hacker trebuie să îţi formezi un mod de gândire specific. Sunt anumite lucruri pe care le poţi face atunci când nu eşti la un calculator care par să ajute. Nu există un substituient pentru hacking (nimic nu e) dar mulţi hackeri apelează la astfel de activităţi şi se simt conectaţi într-un anumit fel cu hackingul.

  • Învaţă bine limba maternă. Deşi există un stereotip că programatorii nu pot scrie, un număr surprinzător de hackeri (inclusiv unii dintre cei mai împliniţi pe care îi cunosc) sunt foarte buni scriitori.
  • Citeşte cărti ştiinţifico-fantastice. Mergi la întâlnirile pe teme ştiinţifico-fantastice (sunt un loc bun unde poţi întâlni alţi hackeri)
  • Învaţă o formă de arte marţiale. Genul de disciplină mentală necesară pentru arte martiale este similară cu ceea ce fac hackerii. Cele mai populare forme între hackeri sunt Tae Kwon Do, diferite forme de Karate, Wing Chun, Aikido, sau Ju Jitsu. Cele mai populare sunt cele care pun accentul pe disciplina mentală, relaxare conştientă, şi control în defavoarea rezistenţei şi puterii fizice.
  • Studiază o disciplină de meditaţie. Cea mai practicată în acest moment este Zen (important, poate fi practicată fără necesitatea de a crede într-o noua religie sau renunţarea la cea pe care o ai deja). Şi altele pot funcţiona dar trebuie să fii atent să nu începi să crezi chestii aiurea.
  • Dezvoltă-ţi simţul muzical. Învaţă să apreciezi diferite genuri de muzica. Învaţă să cânţi la un instrument muzical, sau doar să cânţi.
  • Apreciază jocurile de cuvinte.

Cu cât mai multe lucruri din cele enumerate faci deja, este mai probabil să fii un hacker natural. De ce aceste lucruri nu se poate explica, dar sunt conectate cu o serie de caracteristici ale emisferei drepte şi emisferei stângi care sunt importante; hackerii trebuie să fie capabili să gândească logic dar şi să poată să depăşească tiparele.

Munceşte la fel de intens cum te joci, joacă-te la fel de intens precum munceşti. Pentru hackerii adevăraţi graniţele dintre "joc", "muncă", "ştiinţă" şi "artă" par să dispară şi să se unească într-un singur concept. Deasemenea nu trebuie să fii mulţumit cu un anumit set îngust de cunoştinţe. Deşi majoritatea hackerilor se recomandă ca programatori, este foarte probabil să fie competenţi şi în alte domenii: administrarea de sistem, web design, şi depanarea de calculatoare sunt frecvent întâlnite. Un hacker care este administrator de sistem este probabil să fie foarte bun la programarea în limbaje de script şi web design. Hackerii nu fac lucrurile pe jumătate: dacă învaţă ceva nou au tendinţa să devină foarte buni.

În final, câteva lucrurile care nu trebuie făcute.

  • Nu folosi un nick sau un ID grandios sau prostesc.
  • Nu participa la jigniri (flame wars) pe Usenet (sau oriunde altundeva).
  • Nu te autointitula un vandal electronic (cyberpunk) şi nu-ți pierde vremea cu cineva care se denumeşte astfel.
  • Nu posta mesaje sau trimite mail-uri pline de erori

Nu vei primi decât mustrări pentru orice fel de astfel de abatere. Hackerii au memorie lungă, poate dura ani de zile pentru a fi acceptat.

Problema cu nick-urile merită să fie abordată mai pe larg. Ascunderea identităţii în spatele unui nume fals este o atitudine copilărească specifică crackerilor, warez d00dz, şi altor forme de viaţă inferioare. Hackerii nu fac asta; sunt mândrii de ceea ce fac şi vor ca acţiunilor lor să fie asociate cu numele lor real. Aşa că dacă ai un astfel de nick, renunţă la el. În cultura hackerilor nu va face altceva decât să te marcheze ca un ratat.

Alte resurse

Paul Graham a scris un eseu numit Great Hackers, şi încă unul numit Undergraduation, în care se gaseşte multă înţelepciune.

Peter Seebach menţine un excelent Hacker FAQ pentru manageri/angajatori care nu ştiu cum să trateze un hacker.

Există un document numit How To Be A Programmer care este o excelentă continuare la acesta. Conţine sfaturi valoroase nu numai despre programare, dar şi despre cum să te comporţi într-o echipă de programatori.

Am scris şi A Brief History Of Hackerdom.

Am scris un articol, The Cathedral and the Bazaar, care explică cum funcţionează comunitatea Linux şi comunitatea open-source. Am abordat subiectul şi mai serios în cotinuarea numită Homesteading the Noosphere.

Rick Moen a scris un document excelent despre how to run a Linux user group.

Rick Moen şi cu mine am colaborat la un alt articol numit How To Ask Smart Questions (Cum se pun întrebări în mod inteligent). Acesta te va ajuta să cauţi ajutor într-un fel în care e destul de probabil să-l primeşti.

Dacă ai nevoie de informaţii despre cum merg calculatoarele personale, Unix şi internetul citeşte The Unix and Internet Fundamentals HOWTO.

Atunci când publici programe sau scrii patch-uri pentru programe încearcă să urmezi regulile din Software Release Practice HOWTO.

Dacă ţi-a plăcut poemul Zen sigur o să-ţi placă şi Rootless Root: The Unix Koans of Master Foo.

Întrebări frecvente

  • Cum pot să îmi dau seama daca sunt deja un hacker?
  • O să mă înveţi cum să fiu un hacker?
  • Când pot să încep?
  • Când trebuie să începi? Este prea târziu pentru mine să învăţ?
  • Cât o să dureze până devin un hacker?
  • Sunt Visual Basic sau C# limbaje bune pentru începători?
  • O să mă înveţi cum să sparg un sistem, sau cum să sparg programe?
  • Cum aflu parola unui cont?
  • Cum pot să intru/citesc/monitorizez căsuţa de mail a altcuiva?
  • Cum pot să fur drepturile de operator pe IRC?
  • Am fost atacat. Mă vei ajuta să răspund viitoarelor atacuri?
  • Am probleme cu programele mele pe Windows. Mă ajuţi?
  • Unde pot să găsesc nişte hackeri adevăraţi cu care să vorbesc?
  • Poţi să îmi recomanzi câteva cărti utile?
  • Trebuie să ştiu matematică ca să devin hacker?
  • Ce limbaj ar trebui să învăţ prima dată?
  • Ce fel de calculator am nevoie?
  • Vreau să contribui. Poţi să mă ajuţi să aleg o problemă la care să lucrez?
  • Trebuie să urăsc Microsoft?
  • Programele open-source pun programatorii în imposibilitatea de a caştiga bani?
  • Cum încep? Unde găsesc o versiune de Unix?


Q: Cum ştiu dacă sunt deja un hacker?

A: Pune-ţi următoarele întrebări:

  • "Vorbești" cod fluent ?
  • Te identifici cu scopul şi valorile comunităţii hackerilor ?
  • Ai fost numit hacker de către un membru recunoscut al comunităţii?

Dacă poţi răspunde da la toate cele trei întrebări atunci eşti deja un hacker. Două nu sunt suficiente.

Primul test vizează cunoştinţele. Probabil că ai răspuns da dacă ai minimul descris mai sus. Treci fără probleme dacă ai scris o cantitate apreciabilă de cod pentru un proiect open-source.

A doua întrebare vizează atitudinea. Dacă cele cinci principii ale hackerilor ţi s-au părut evidente, asemănându-se mai mult cu modul cum trăieşti decât cu o poveste, te apropii de un raspuns afirmativ. Aceasta e prima jumătate, cealaltă vrea să afle cât de mult de identifici cu proiectele pe termen lung ale comunităţii.

Aici am enumerat câteva dintre aceste obiective : Contează pentru tine dacă Linux devine mai bun şi mai răspândit ? Te pasionează libertatea programelor ? Eşti ostil monopolurilor ? Acţionezi în credinţa că trebuie să vedem calculatoarele ca simple instrumente care fac lumea mai bogată şi mai umană ?

Dar trebuie să punctăm un lucru aici. Comunitatea hackerilor are nişte principii politice specifice, în special defensive, în special apărarea dreptului la libera exprimare. Comunitatea se luptă şi cu legile de proprietate intelectuală care ar face comunitatea open-source ilegală. Unele dintre aceste proiecte pe termen lung sunt reprezentate de organizaţii precum Fundaţia Frontierei Electronice (Electronic Frontier Fundation). Dar în spatele acestui lucru, cei mai mulţi hackeri văd în încercarea de a sistematiza atitudinea lor un program politic explicit ceva dubios; am învăţat, pe calea cea grea, că aceste încercări au efecte negative divizând comunitatea. Daca cineva vrea să te recruteze pentru a participa la un protest în numele atitudinii hackerilor, atunci clar a înţeles greşit. Raspunsul corect este probabil să "Taci şi arată-le codul".

A treia întrebare include o definiţie recursivă. Am observat în secţiunea numită "Ce este un hacker ?" că a fi un hacker ţine foarte mult de apartenenţa la o anumita subcultură şi reţea socială cu o anumită istorie. În trecut, hackerii erau un grup mult mai dispersat decât sunt astăzi. Dar importanţa unei reţele sociale a crescut în ultimii treizeci de ani pe măsură ce internetul a facut posibilă menţinerea uşor a legăturii cu ceilalţi hackeri. Ca exemplu al acestei schimbări, în acest secol avem propriile tricouri.

Sociologii care studiază reţele precum cea a hackerilor sub sigla generală de "colegii invizibile" au observat că o caracteristică a reţelelor de acest gen este că au aşa numiţi păzitori ai porţilor, membri cheie cu autoritate socială care pot să introducă noii membri în comunitate. Pentru că termenul de "colegiu invizibil" care defineşte cultura hackerilor este un termen mult prea general şi informal şi rolul unui astfel de păzitor al porţilor este informal. Dar ceea ce fiecare hacker înţelege este că nu orice hacker este un păzitor al porţilor. Aceste persoane au o anumită vechime şi un anumit număr de realizări înainte să primească acest titlu. Cât de mult este greu de precizat, dar fiecare hacker ştie când vede o astfel de persoană.


Q: O să mă înveţi cum să fiu un hacker?

A: Din momentul în care am publicat prima dată această pagină am primit nenumărate cereri (deseori câteva pe zi) de la persoane care îmi cereau să le învăţ tot ce trebuie să ştie pentru a fi un hacker. Din nefericire, nu am timpul şi energia să fac acest lucru; propriile mele proiecte, şi munca în rolul partizan al comunitatii open-source îmi ocupa 110% din timp.

Chiar dacă aş fi avut acest timp la dispoziţie, a fi un hacker înseamnă a avea o anumită atitudine şi un set mare de cunoştiinţe pe care trebuie să le dobândeşti singur. O să observi că chiar dacă hackerii adevăraţi vor să te ajute nu o să te respecte dacă îi implori să îţi spună tot ce ştiu.

Învaţă câteva lucruri mai întâi. Arată că încerci, că eşti capabil să înveţi singur. Apoi apelează la alţi hackeri cu întrebări precise.

Dacă îi scrii unui hacker nişte întrebări, sunt două lucruri pe care trebuie să le ştii. În primul rând am observat că persoanele care sunt leneşe şi neatente în scris sunt de cele mai mult ori neatente şi leneşe şi în gândire, neavând capacitatea de a deveni hackeri buni, aşa că ai grijă să scrii corect, să foloseşti gramatica şi semnele de punctuaţie, altfel vei fi ignorat. În al doilea rând nu cere ca mesajul să fie trimis la o căsuţă de mail diferită de cea de pe care ai trimis mesajul; am aflat că persoanele care fac acest lucru sunt de obicei hoţi care folosesc conturi furate, şi nu avem nici un interes în a rasplăti sau ajuta hoţi.


Q: Cum pot să încep ?

A: Cea mai bună modalitate să incepi este să mergi la o intâlnire a unui grup de utilizatori Linux (LUG). Poţi să gaseşti astfel de grupuri pe LDP General Linux Information Page; probabil că există unul aproape de tine, asociat cu o universitate sau un colegiu. Membrii acestei comunităţi îţi vor da o copie Linux şi te vor ajuta să îl instalezi şi să începi să înveţi.


Q: Când trebuie să încep? Este prea târziu pentru mine să învăţ?

A: Orice vârstă la care eşti motivat este bună. Mulţi oameni devin interesaţi între 15 şi 20 de ani, dar cunosc excepţii în ambele direcţii.


Q: Cât va dura să învăţ să devin un hacker?

A: Asta depinde de cât de talentat eşti şi cât de mult eşti dispus să munceşti. Majoritatea oamenilor pot să înveţe un volum respectabil de informaţii în 18 luni pană la 2 ani, dacă se concetrează. Nu te gândi că se termină aici; în hacking (ca în multe alte domenii) sunt necesari cam zece ani pentru a ajunge maestru. Dacă eşti un hacker adevărat o să îţi petreci restul vietii învăţând şi perfecţionându-ţi cunoştinţele.


Q: E Visual Basic un limbaj bun pentru începători?

A: Dacă pui această întrebare în mod sigur te gândeşti să înveţi să fii un hacker folosind un sistem Microsoft Windows. Aceasta este o idee proastă în sine. Când am comparat încercarea de a învăţa să fii un hacker pe Windows cu a învăţa să dansezi îmbrăcat în gips, nu glumeam. Nu încerca asta. E urât şi nu va înceta să fie urât.

Sunt probleme specifice cu Visual Basic, în principal din cauza faptului că nu este portabil. Deşi există un prototip pentru o implementare open-source a Visual Basic, standardele ECMA nu acoperă decât o mică parte din interfaţa de programare. În Windows majoritatea bibliotecilor sunt proprietatea unui singur producător (Microsoft); daca nu eşti extrem de atent la ce fel de facilităţi foloseşti, mult mai atent decât poate fi un începător o să ajungi să fii blocat, softul fiind portabil doar pe platformele pe care Microsoft decide să le suporte. Dacă începi pe Unix, sunt disponibile limbaje și biblioteci mult mai bune. De exemplu, Python.

Ca orice alt Basic, Visual Basic este un limbaj prost proiectat care nu te va învaţa decât obiceiuri proaste de programare. Nu mă ruga să le explic în detaliu, această explicaţie ar umple singură o carte. Învaţă un limbaj bine realizat.

Unul dintre aceste obiceiuri proaste este să devii dependent de bibliotecile şi uneltele de dezvoltare ale unui singur producător. În general orice limbaj care nu este suportat măcar sub una dintre platformele Linux sau BSD, şi/sau măcar de trei producători diferiţi de sisteme de operare, este un limbaj slab în care să înveţi.


Q: O să mă ajuţi să sparg un sistem, sau să mă înveţi cum să sparg programe?

A: Nu. Orice persoană care pune o astfel de întrebare după ce a citit acest set de întrebări frecvente este prea proastă pentru a fi educată chiar dacă aş avea timpul necesar. Orice fel de întrebări pe email legate de acest subiect vor fi ignorate sau vor primi un răspuns brutal.


Q: Cum pot să obţin parola contului altei persoane?

A: Acesta este cracking. Dispari, idiotule!


Q: Cum pot să sparg/citesc/monitorizez casuţa de mail a altcuiva ?

A: Acesta este cracking. Pa.


Q: Cum pot să fur drepturi de operator pe un canal de IRC?

A: Acesta este cracking. Dispari.


Q: Am fost crăckuit. O să mă ajuţi să mă apar de atacuri viitoare ?

A: Nu. De fiecare dată când am fost întrebat acest lucru, întrebarea venea de la o persoană care rula Microsoft Windows. Nu este posibil să securizezi Windows împotriva atacurilor; codul şi arhitectura au pur şi simplu prea multe probleme, ceea ce face securizarea Windows o misiune imposibila. Singura rezolvare este să treci la Linux sau la alt sistem de operare mai bun care să fie capabil de securitate.


Q: Am probleme cu sistemul meu de operare Windows. Mă ajuţi ?

A: Da. Deschide consola DOS şi tastează "format c:". Orice problemă ai întâlnit va înceta să mai existe în câteva minute.


Q: Unde pot găsi nişte hackeri cu care să vorbesc?

A: Cel mai bun mod este să găseşti un grup local de utilizatori Linux sau Unix şi să mergi la întâlnirile lor ( poţi să găseşti câteva adrese de grupuri la LDP )

(Obişnuiam să spun că nu o să găseşti nici un hacker adevărat pe IRC, dar am început să înţeleg că acest lucru se schimbă. Aparent nişte comunităţi serioase de hackeri, ataşate proiectelor precum GIMP şi Perl, au canale IRC acum ).

Q: Poţi să îmi recomanzi câteva cărti utile despre subiecte legate de hacking ?

A:' Menţin o listă Linux Reading List HOWTO care îţi poate fi utilă. Loginataka poate fi interesantă.

Pentru o introducere în Python vezi materialele introductive de pe site-ul Python.


Q: Trebuie să fiu bun la matematică pentru a deveni un hacker?

A: Nu (Dar ajută, n.tr.). Hackingul foloseşte foarte puţină matematică formală şi aritmetică. În particular nu o să-ţi trebuiască trigonometrie, calcul sau analiză (excepţia la acest lucru o face grafica 3D). E bine să ştii ceva logică şi algebră booleană. Cunoştiinţe de bază în teoria seturilor finite, combinatorică şi teoria grafurilor se pot dovedi utile.

E mult mai important să fii capabil să gandeşti logic şi să urmezi un lanţ de raţionamente logice, aşa cum fac matematicienii. Deşi conţinutul matematic nu te va ajuta foarte mult, vei avea nevoie de disciplina şi inteligenţa matematică. Dacă nu eşti prea inteligent nu sunt prea multe speranţe pentru tine ca hacker; dacă îţi lipseşte disciplina ar fi bine să o dezvolţi.

Cred că o bună modalitate de a afla dacă ai ceea ce îţi trebuie e să găseşti o copie a cărţii lui Raymond Smullyan's What Is The Name Of This Book?. Logica pe care o promovează în carte este în spiritul hackerilor. Dacă eşti capabil să rezolvi problemele puse acolo e un semn bun; dacă îţi place să le rezolvi e un semn şi mai bun.


Q: Ce limbaj ar trebui să învăţ prima dată ?

A: XHTML (ultimul dialect de HTML) dacă nu îl cunoşti deja. Sunt foarte multe cărţi pe această temă, dar puţine bune. Cea care îmi place cel mai mult este HTML: The Definitive Guide.

Dar HTML nu este un limbaj de programare. Când eşti gata să începi să programezi, îţi recomand să începi cu Python. O să auzi foarte multă lume care recomandă Perl, şi Perl este încă mult mai popular decât Python, dar este mai dificil de învăţat şi - în opinia mea - ceva mai puţin bine gândit.

C este foarte important, dar este şi mult mai dificil decât Python şi Perl. Nu încerca să-l înveţi ca primul limbaj.

Ca utilizator Windows nu trebuie să te axezi pe Visual Basic. O să te înveţe obiceiuri proaste, şi nu este portabil. Evită-l.


Q: De ce fel de calculator am nevoie?

A: În trecut calculatoarele erau destul de slabe încât impuneau limite artificiale hackerilor. Acest lucru nu mai este valabil începând cu mijlocul anilor '90; orice calculator mai bun decât un Intel 486DX50 va avea suficientă putere pentru dezvoltare, grafică, şi comunicaţii internet, şi cele mai mici discuri pe care le poţi cumpăra astăzi oferă spatiu de stocare suficient.

Cel mai important lucru în alegerea unui calculator este compatibilitatea Linux (sau BSD dacă decizi să urmezi acest drum). Acest lucru este valabil pentru majoritatea calculatoarelor noi. Singura parte problematica o reprezintă modemurile; unele calculatoare au componente specifice Windows care nu vor funcţiona sub Linux.

Raspunsuri la întrebări frecvente legate de compatibilitate gasiti aici.


Q: Vreau să contribui. Poţi să mă ajuţi să aleg o problemă la care să lucrez?

A: Nu, pentru că nu ştiu care sunt talentele şi interesele tale. Trebuie să fii automotivat, din această cauză proiectele alese de alţi oameni aproape niciodată nu reuşesc.

Încearcă astfel. Priveşte pentru câteva zile anunţurile de proiecte de pe Freshmeat. Când vezi unul care te face să zici "Super! Aş vrea să lucrez la acest proiect!", înscrie-te.


Q: Trebuie să urăsc Microsoft?

A: Nu, nu trebuie. Nu pentru că nu ar merita, ci pentru că a existat o cultură a hackerilor cu mult înainte de Microsoft şi va mai exista una şi după ce Microsoft va fi istorie. Energia pe care o consumi urând Microsoft poate fi folosită mai util pentru a-ţi îmbunătăţii capacităţile. Scrie programe bune care să discrediteze Microsoft fără a-ţi polua karma.


Q: Programele open-source pun programatorii în imposibilitatea de a câştiga bani?

A: Nu. industria de programe open-source a creat locuri de muncă noi. Dacă a avea un program scris reprezintă un câştig economic faţă de de a nu-l avea, programatorul va fi plătit indiferent dacă programul va fi open-source după ce este gata. Şi nu contează cât de multe programe gratis sunt scrise, mereu va exista cerere pentru noi aplicaţii. Am scris mai multe despre acest subiect pe paginile Open Source.


Q: Unde găsesc o versiune gratis de Unix?

A: Dacă nu ai instalat un sistem Unix pe calculator încă, în această pagină găseşti legături către locuri unde să găseşti cele mai populare versiuni de Unix. Pentru a fi un hacker îţi trebuie iniţiativă şi abilitatea de a te educa singur. Incepe acum...

Unelte personale
Spații de nume

Variante
Acțiuni
Navigare
Unelte