Sunt mai multe definitii pentru termenul de 'hacker', cele mai frecvente referindu-se la capacitatea de adaptare, incantarea de a rezolva probleme si extazul in momentul depasirii unei limite. Ca sa deveniti hacker doar doua aspecte sunt relevante:
1. Exista o comunitate, un cult de experti in programare si atotstiutori ai retelelor care dateaza de cateva decenii, odata cu primele experimente ARPANET. Membrii acestui cult au introdus termenul de hacker. Hackerii au 'construit' internetul. Hackerii au adus UNIX-ul la stadiul la care este astazi. Hackerii intretin Usenet-ul. Hackerii au facut functional web-ul. Daca apartineti acestei comunitati, daca si dvs ati contribuit la toate acestea, daca si ceilalti va cunosc si va numesc hacker, sunteti hacker.
2. Exista de asemenea o alta [mare] adunatura de oameni [pentru ca asta este cea mai frumoasa terminologie pe care o pot adopta] care isi spun raspicat hackeri, dar nu sunt. Acestia sunt oameni [in general adolescenti cu prea mult timp liber si prea putina viata sociala] care sunt incantati de 'spargerea' computerelor. Adevaratii hackeri le spun 'crackeri' si nu vor sa aiba nimic in comun cu ei. Adevaratii hackeri cred ca crackerii sunt lenesi, iresponsabili si nu prea destepti, si protesteaza pentru ca a distruge un computer nu te face hacker la fel cum nu esti inginer auto daca sti sa pornesti o masina fara cheie.
Din nefericire marea majoritate a jurnalistilor si scriitorilor au fost pacaliti in a folosi termenul 'hacker' cand vorbesc de fapt despre 'cracker'; acest lucru ii irita pe adevaratii hackeri.
Diferenta de baza este: hackerii creeaza, crackerii distrug.
Daca vreti sa deveniti hacker, continuati sa cititi. Daca vreti sa fiti cracker pregatiti-va sa faceti ani buni de inchisoare ca sa descoperiti ca nu sunteti atat de destept pe cat credeati.
Atitudine de hacker
Hackerii rezolva probleme, creeaza si cred in libertate si ajutor reciproc. Ca sa fiti acceptat ca hacker, trebuie sa rezolvati probleme, sa creati, sa-i ajutati pe ceilalti. Ca sa faceti toate acestea trebuie sa aveti atitudine si sa credeti cu adevarat in ea. Dar daca adoptati aceasta atitudine doar ca sa fiti acceptat printre hackeri, veti pierde esentialul. Este foarte important sa deveniti o astfel de persoana [care crede in libertate si ajutor reciproc] si sa credeti cu adevarat in atitudinea dvs. Aceasta atitudine va v-a ajuta sa invatati mai multe si va v-a motiva in continuare.
Ca orice alta arta creativa, cea mai eficienta cale de a deveni atotstiutor este de a urma maestrii consacrati - nu doar intelectual ci si emotional.
1. Lumea e plina de probleme fascinante care asteapta rezolvare
A fi hacker este foarte distractiv, dar este genul de distractie care cere foarte mult efort. Efortul cere motivatie. Atletii de performanta isi gasesc motivatia in placerea de a-si duce corpurile dincolo de propriile limite fizice. Similar, ca sa fiti hacker trebuie sa aveti pasiunea de a rezolva probleme, de a va perfectiona aptitudinile si de a va exersa inteligenta. Daca nu sunteti genul de persoana caruia i se potriveste acest profil in mod natural, trebuie sa deveniti. Numai asa veti reusi ca hacker. Altfel energia dvs. pentru hacking va fi inhibata de alte preocupari ca alcoolul, sexul, banii sau realizarea sociala.
Va trebuie deasemenea sa va dezvoltati un fel de credinta in propria capacitate de invatare - convingerea ca, desi s-ar putea sa nu stiti tot ce e necesar ca sa rezolvati o problema, veti incepe prin a rezolva doar o mica parte din ea, dupa care alta - si asa mai departe, pana ati rezolvat intregul.
2. Nici o problema nu ar trebui rezolvata de doua ori
Mintile creative sunt valoroase, resursa limitata. Nu ar trebui irosite pentru reinventarea rotii cand sunt atatea probleme noi care asteapta rezolvare. Sa va comportati ca un hacker inseamna sa intelegeti ca timpul altui hacker este foarte valoros - atat de valoros incat este datoria dvs. morala sa va impartasiti cunostiintele, sa rezolvati probleme si sa oferiti rezolvarile astfel incat alti hackeri pot rezolva probleme noi in loc sa promoveze rezolvari la problemele vechi.
Nu trebuie sa credeti ca sunteti obligat sa daruiti toate produsele creativitatii dvs., totusi hackerii care o fac sunt cei mai respectati printre hackeri. Este bine sa va folositi talentele de hacker ca sa va intretineti familia sau chiar sa deveniti bogat, atat timp cat nu uitati de loialitatea fata de arta dvs si a celorlalti hackeri.
3. Plictiseala si monotonia sunt daunatoare
Hackerii, si oamenii creativi in general, nu ar trebui sa fie plictisiti sau sa fie supusi la o munca monotona pentru ca nu fac singurul lucru pe care il pot face - sa rezolve probleme noi. Aceasta risipa este dureroasa pentru toata lumea. Asadar plictiseala si monotonia nu sunt doar neplacute ci daunatoare. Ca sa fiti hacker trebuie sa credeti acest lucru atat de mult incat sa faceti ca partile plictisitoare sa dispara, atat pentru dvs. cat si pentru ceilalti.
4. Libertate
Natura hackerilor este una anti-autoritara. Cineva care iti poate da ordine te poate opri din rezolvarea problemei de care esti fascinat si, datorita modului de gandire a mintilor autoritare [deloc luminate], va gasi un motiv stupid ca sa o faca. Deci atitudinile autoritare trebuie combatute in orice situatie.
Nu promovez lupta impotriva tuturor autoritatilor. Copiii trebui ghidati si infractorii intemnitati. Un hacker poate accepta un tip de autoritate pentru a obtine ceva.
Autoritatile inclina spre cenzura si secret; nu au incredere in ajutorul voluntarial si impartasirea informatiilor - sunt de acord doar cu 'cooperarea' pe care o pot controla. Deci comportamentul de hacker presupune ostilitate fata de cenzura, secretomanie si folosirea deceptiei pentru a ingradi adulti responsabili. Trebuie sa actionati condusi de acest crez.
5. Atitudinea nu inlocuieste competenta
Ca sa deveniti hacker trebuie sa aveti atitudinea descrisa mai sus. Dar numai atitudinea nu va v-a face campion de box, vedeta de cinema si nici hacker. Pentru a deveni hacker este nevoie de inteligenta, exercitiu, dedicatie si multa, foarte multa, munca. Astfel, va trebui sa ignorati uneori atitudinea si sa respectati competenta de orice fel. Hackerii nu-si irosesc timpul cu prefacuti, dar venereaza competenta - in special competenta in hacking. Daca sunteti devotat competentei, va veti bucura sa o dezvoltati in dvs - munca grea si devotamentul vor deveni un fel de joc intens, si nu monotonie. Aceasta atitudine este importanta pentru a deveni hacker.
Aptitudini de baza pentru hacking
Atitudinea este foarte importanta, dar aptitudinile sunt vitale. Atitudinea nu inlocuieste competenta si exista un numar de aptitudini care trebuie sa le aveti inainte care un hacker sa poate incepe sa viseze ca v-ar putea considera 'hacker'.
1. Invatati sa programati
Aceasta este, desigur, aptitudine fundamentala pentru un hacker. Daca nu stiti nici un limbaj de programare e bine sa incepeti cu Python. Este clar creat, bine documentat, si relativ usor pentru incepatori. In ciuda faptului ca este un limbaj pentru incepatori, nu este doar o jucarie; este foarte flexibil si foarte puternic, ideal pentru proiecte mari. Puteti incepe prin a citi documentatia oficiala si acest eseu.
Un alt limbaj bun este Java. Este mai dificil decat Python dar face programe mai "rapide" decat Python. Din pacate acest limbaj este proprietatea companiei Sun. Aceasta nu ar fi o problema, exista si variante gratuite, dar librariile care-l acompaniaza sunt mult mai lente decat cele distribuite de Sun. Deci, daca alegeti Java, incepeti cu varianta gratuita ca sa nu depindeti de Sun [vorbeam de libertate mai devreme :-)].
Trebuie sa fiti constient ca nu veti ajunge la nivelul de hacker, nici macar la cel de programator, daca stiti doar unul sau doua limbaje de programare - trebuie sa invatati sa ganditi programarea in general, indepent de orice limbaj. Ca sa fiti un hacker adevarat trebuie sa ajungeti la nivelul la care veti putea invata un limbaj de programare nou in cateva zile, consultand manualele si cunostiintele pe care le aveti deja. Asta inseamna ca trebuie sa invatati cateva limbaje de programare esential diferite.
Daca ajungeti la nivelul de programare serioasa, va trebui sa invatati C, limbajul de baza al UNIX-ului; C++ este foarte aseamanator cu C, daca stiti unul sa-l invatati pe celalalt nu va fi greu, dar nu este un limbaj cu care sa invatati sa programati ca incepator. C este foarte eficient si foarte ingaduitor cu resursele computerului dvs. Din pacate pentru incepatori C isi datoreaza aceasta eficienta programarii la nivel inferior [low-level programming] a resurselor. Deci, Python.
Alt limbaj important pentru hackeri este Perl. Perl merita invatat din motive practice: este foarte des folosit pentru pagini web active si administrarea sistemelor, astfel incat chiar daca nu ati programat niciodata in Perl veti putea citi un cod sursa scris in Perl. Multi programatori folosesc Perl pentru a ocoli C-ul.
Este bine totusi sa invatati toate aceste limbaje. Pe langa faptul ca sunt cele mai folosite limbaje de hackeri, fiecare reprezinta o abordare diferita a programarii. Nu pot face o lista completa cu instructiuni "Cum sa programezi", dar va pot spune ca doar cursurile si cartile nu va sunt suficiente, marea majoritate a hackerilor sunt autodidacti. Puteti invata bazele unui limbaj de programare din carti sau cursuri, dar ca aceste baze sa se transforme in aptitudini este necesar exercitiu si dedicatie. A invata sa programezi este aseamantor cu a invata sa scrii corect intr-o limba straina. Cea mai buna metoda este sa citesti ce au scris maestrii consacrati, sa scrii si tu, citesti mai mult, scrii mai mult... pana vezi in scrisul tau puterea care o vezi in cea a scriitorului tau preferat.
Codurile sursa ale programelor obisnuiau sa fie greu de gasit. Acest lucru s-a schimbat odata cu aparitia software-ului deschis [open-source], a uneltelor de programare si a sistemelor de operare gratuite [construite de asemenea de hackeri].
2. Unix
Presupun ca aveti un computer sau aveti acces la unul. Cel mai important pas pe care un incepator trebuie sa-l faca pentru a deveni hacker este sa achizitioneze un sistem de operare asemanator UNIX-ului [Linux, BSD], sa-l instalaze si sa-l foloseasca. Sistemele de operare comerciale sunt distribuite fara codul sursa - nu-l puteti vedea sau modifica. Invatatul hacking-ului pe un computer pe care ruleaza Microsoft Windows sau MacOS este aseamanator dansului intr-o camasa de forta. Desi pe MacOS o parte din codurile sursa sunt disponibile, veti ajunge sa depindeti de partea pe care nu o aveti. UNIX-ul este sistemul de operare al internetului. Desi puteti folosi internetul fara a sti Unix, nu puteti deveni hacker daca nu intelegeti UNIX-ul. Deci, faceti trecerea la un sistem de operare asemanator UNIX-ului [UNIX nu este gratuit]: Linux sau BSD. Invatati-l, folositi-l. Cititi codul sursa, modificati codul sursa. Veti avea acces la unelete de programare la care Microsoft sau Apple nici nu se gandesc sa le includa.
Va veti distra si veti dobandi mai multe cunostiinte decat credeti, pana cand il veti privi prin prisma hackerului.
Pentru a obtine Linux mergeti la distrowatch unde veti putea alege din multitudinea de distributii. Daca sunteti incepator nu va recomand sa va instalati Linux sau BSD ca sistem de operare unic. Atat Linux cat si BSD pot rula in paralel cu Microsoft Windows).
3. Invatati sa folositi Web-ul
Marea majoritate a muncii hackerilor se face fara vazul lumii. Nu este secretomanie, este doar munca mult mai avansata ca lumea dezinteresata sa o vada. Web-ul, exceptia care intareste regula, este jucaria imensa a hackerilor care pana si politicienii au acceptat ca schimba lumea. Pentru acest motiv [si multe altele] trebuie sa invatati sa folositi web-ul. Asta nu inseamna sa invatati sa folositi un browser [oricine poate face asta], ci sa invatati sa programati in HTML [Hyper Text Markup Language], PHP, limbajul web-ului. XHTML ar fi o solutie mai buna, pentru ca este mai "ordonat". Incepeti cu creearea unei pagini personale.
O pagina personala de web nu este nici macar aproape de a fi hacker. Web-ul este plin de pagini personale. Marea majoritate sunt fara rost, fara continut, fara simt estetic. Pentru inceput incercati varianta simplu si cochet. Simplul nu poate fi acuzat doar de simplicitate. Ca sa atraga, pagina dvs. trebuie sa aiba continut - trebuie sa fie interesanta si/sau folositoare pentru alti hackeri. Si asta ne aduce la urmatorul subiect...
4. Daca nu stiti limba engleza, invatati-o
Limba engleza nu este limba mea materna dar fac tot posibilul ca atunci cand vorbesc/scriu in limba engleza sa o fac corect. Desi multa lume nu foloseste limba engleza in fiecare zi, cand vorbim despre computere suntem obligati sa o folosim pentru ca sunt termeni care nu se pot traduce si chiar daca am cauta o alternativa cat mai apropiata tot nu ar fi suficient. Linus Torvalds [hackerul care a scris Linux-ul], finlandez de origine, isi comenteaza programele in limba engleza [nu i-a trecut niciodata prin minte sa foloseasca alta limba]. Fluenta lui in limba engleza a fost un factor important in dezvoltarea Linux-ului. Este un exemplu care merita urmat.
Statutul in comunitatea de hackeri
Ca marea majoritate a culturilor fara baza financiara, comunitatea hackerilor se bazeaza pe reputatie. Cand ati intrat in "hora" hackerilor sistemul de referinta este ce cred ceilalti hackeri despre dvs si despre programele dvs [din acest motiv nu sunteti hacker decat cand alti hackeri va adreseaza acest apelativ un mod repetat]. Acest fapt este obscurizat de imaginea aparenta de munca solitara; hacking-ul nu este munca individuala ci munca cu si pentru comunitate.
Specific comunitatii hackerilor este ceea ce antropologii numesc "cultul daruitului". Castigi reputatie si avansezi nu prin dominarea celorlalti, frumusete sau proprietate ci prin daruire, in special prin daruirea timpului tau liber, a creativitatii tale si a rezultatelor tale celorlalti.
In principiu sunt cinci lucruri care va vor aduce respectul hackerilor:
1. Scrieti software deschis [Open-source software]
In primul rand, scrieti programe care sunt folositoare celorlalti hackeri, si oferiti programul si codul sursa intregii comunitati. [I se spunea free software dar prea multi oameni erau confuzi pentru ca nu stiau exact ce inseamna "gratuit" asa ca s-a adoptat denumirea de software deschis [open-source software]. Hackerii consacrati sunt cei care au scris programe complexe care satisfac necesitatile majoritatii, si au oferit aceste programe gratuit, oricine poate beneficia de programele unui hacker.
2. Ajutati la testarea si dezvoltarea software-ului deschis
Sunt la fel de folositori si cei care cauta greselile din programe[beta-tester]. In aceasta lume imperfecta, ne vom petrece inevitabil marea majoritate a timpului de programare cu gasirea micilor "defectiuni" din programe. De aceea un programator intelept va v-a spune ca testerii [care stiu sa descrie simptomele, sa localizeze probleme, sa diagnosticheze corect un program] valoreaza cat greutatea lor in rubine.
3. Publicati informatii utile
Un alt lucru bun este ca adunati documentatie si sa filtrati informatiile interesante si folositoare pentru a realiza documentatii cat mai detaliate si usor de inteles. [un eseu despre hackeri, de exemplu :-)]
4. Ajutati la buna functionare a 'infrastructurii'
Cultul hackerilor este compus din voluntari. Exista lucruri foarte plictisitoare si monotone dar care trebuie facute: administrarea site-urilor cu software, mentinerea documentatiilor la un nivel cat mai actual, moderarea diferitelor activitati. Cei care fac toate aceste sunt foarte respectati, pentru ca toata lumea stie ca aceste activitati cer mult timp si nu sunt deloc amunzante sau distractive.
5. Ajutati cultul hackerilor
In cele din urma, puteti ajuta comunitatea hackerilor prin promovarea ei [nu a confuziei de termeni care o raspandesc jurnalistii]. Acest lucru nu-l veti putea face numai cand sunteti de ceva timp prin imprejurimi si sunteti cunoscut pentru unul dintre celalalte patru.
Hacker vs. Tocilar
Contrar miturilor existente, nu trebuie sa fiti tocilar pentru a fi hacker. Oricum, acest lucru ajuta, de fapt marea majoritate a hackerilor sunt tocilari. Fiind proscris social va ajuta sa va concentrati la lucrurile cu adevarat importante, cum ar fi hacking-ul.
Daca reusiti sa va concentrati, sa ganditi si sa aveti si viata sociala e perfect. Daca sunteti atrasi de hacking tocmai pentru ca nu aveti viata sociala e de asemenea in regula - cel putin nu veti avea probleme in a ramane concentrat. Poate o sa va organizati viata sociala mai tarziu.
In final, cateva lucruri pe care sa NU le faceti:
1.Nu folositi nickname-uri/hadle-uri/ID-uri.
Sa-ti ascunzi identitatea in spatele unui nickname este un comportament juvenil si prostesc caracteristic crackerilor si altor forme de viata inferioare. Hackerii nu fac asta; sunt foarte mandri de ceea ce fac si vor ca munca lor sa fie asociata cu identitatea lor reala. Deci, daca folositi nickname, abandonati-l. Printre hackeri veti fi considerat pueril.
2. Nu incepeti polemici absurde pe Usenet/forumuri/IRC; nu-si au rostul.
3. Nu post-ati ceva sau nu scrieti vreun e-mail plin de greseli gramaticale.
4. Nu folositi apelative pompoase [cracker, cyberpunk, etc] cand vorbiti despre dvs. si nu va irositi timpul cu cei ce le folosesc.
Singura reputatie pe care o veti castiga facand una din actiunile de mai sus este cea de neispravit. Hackerii au memorie foarte buna - va dura ani buni pana veti fi acceptat.
Acest document este o adaptare in limba romana a unui eseu scris de Eric Steven Raymond [esr@thyrsus.com]