Copyright © 2001 Eric S. Raymond
L'anterior traducció era de l'Andreu Regue, pero el document ha desaparegut.
La present traducció és de l'Arnau Fuentes amb algunes correccions a càrrec de'n Josep Puigdemont.
Historial de Revisions | ||
---|---|---|
Revisió 1.31 | 22 Mar 2005 | esr |
Afegit un altre enllaç a un assaig d'en Paul Graham, i consells sobre com agafar un primer projecte. Més actualitzacions d'enllaços de traducció. | ||
Revisió 1.30 | 2 Mar 2005 | esr |
Afegits i actualitzats alguns enllaços de traduccions. |
Com a editor del Jargon File i autor entre d'altres, d'uns quants documents ben coneguts de naturalesa similar, sovint rebo missatges de correu electrònic d'entusiastes novells preguntant "com puc ser un hacker dels bons?". Al 1996 em vaig adonar que semblava no haver cap altre FAQ (Preguntes Més Freqüents) ni cap altre document que aclarís aquesta qüestió vital, per tant, vaig començar aquest. Un munt de hackers el consideren com a definitiu, per tant suposo que ho és. No pretenc ser l'autoritat exclusiva en aquest tema; si no us agrada el que llegiu aquí, escriviu el vostre.
Si esteu llegint un tros d'aquest document offline, l'ultima versió sempre és a http://catb.org/~esr/faqs/hacker-howto.html
Nota: al final d'aquest document hi ha una llista de Preguntes Més Freqüents. Si us plau, llegiu-la --dos cops-- abans d'enviar-me preguntes sobre aquest document. Sx'han fet múltiples traduccions d'aquest document, que es troba disponible en: Àrab, Búlgar, Català, Xinès (Simplificat), Danès, Holandès, Finlandès, Alemany, Hebreu, Italià, Persa, Japonès, Polonès, Portuguès (Brasiler), Castellà, Turc, i Suec.Sapigueu que aquest document canvia ocasionalment, pot ser que estigui desfasat en diferents aspectes.
El diagrama dels "cinc-punts-en-nou-caselles" que decora aquest document s'anomena glider. És una seqüència simple amb algunes propietats sorprenents en una simulació matemàtica anomenada Life que ha fascinat a hackers durant anys. Penso que és un gran emblema visual per a el que són els hackers -- abstractes, un xic misteriosos al principi, però una passarel·la.la cap a tot un mon sencer amb una lògica pròpia. Llegiu més sobre el "glider" aquí.
El Jargon File conté un munt de definicions del mot --hacker--, la majoria lligades a l'habilitat tècnica i al plaer per a solucionar problemes i superar límits. Si voleu saber com ser un hacker, només dues son realment rellevants.
Existeix una comunitat, una cultura compartida, de programadors experts i mags de les xarxes que ressegueix l'història cap enrere, durant dècades, fins als primers mini ordinadors de temps compartit i els primers experiments d'ARPAnet. Els membres d'aquella cultura van originar el terme --hacker--. Els hackers van construir Internet. Els hackers van convertir el sistema operatiu Unix en el que és avui en dia. Els Hackers mantenen Usenet. Els hackers fan que la World Wide Web funcioni. Si sou part d'aquesta cultura, si hi heu contribuït i d'altra gent que en forma part us coneix i sap qui sou i us anomena hacker, llavors sou un hacker.
La mentalitat hacker no està confinada dins aquesta cultura de hackers de programari. Hi ha d'altra gent que aplica l'actitud hacker a altres coses, com l'electrònica o la música --de fet, els podeu trobar als nivells més alts de qualsevol ciència o art. Els hackers de programari reconeixen aquests esperits emparentats allà on sigui i els anomenen "hackers" també--i alguns diuen que la naturalesa hacker es independent del medi en que el hacker treballa. Però per la resta d'aquest document ens centrarem en les habilitats i actituds dels hackers de programari, i en les tradicions de la cultura compartida que va originar el terme "hacker".
Hi ha un altre grup que s'autoanomenen hackers, però que no ho són. Aquesta gent (majorment homes adolescents) son els que es diverteixen entrant il·legalment a ordinadors i fent "phreaking" a les línies telefòniques. Els hackers reals anomenen aquesta gent "crackers" i no volen tenir-hi res a veure. La majoria dels hackers de veritat creuen que els crackers son mandrosos, irresponsables, i no massa brillants, i argumenten que ser capaç de trencar la seguretat no et fa un hacker, així com saber fer un pont a un cotxe no et fa enginyer d'automoció. De manera desafortunada, molts periodistes i escriptors han caigut a la trampa emprant la paraula --hacker-- per descriure als crackers; això irrita fora de mida als hackers.
La diferència bàsica és aquesta: els hackers construeixen coses, els crackers les destrueixen.
Si voleu ser un hacker, seguiu llegint. Si voleu ser un cracker, aneu a llegir el grup de noticies alt.2600 i prepareu-vos per a passar de cinc a deu anys a la presó després de descobrir que no ereu tan intel·ligents com us pensàveu. I això es tot el que diré sobre els crackers.
Els hackers solucionen problemes i construeixen coses, i creuen en la llibertat i ajuda voluntària mútua. Per a ser acceptat com a hacker, us hauríeu de comportar com si tinguessis aquesta actitud. I per a comportar-vos com si tinguéssiu aquesta actitud, hauríeu de creure realment en aquesta actitud.
Però si creieu que cultivant actituds hacker és la manera de ser acceptat dins la cultura, us equivoqueu. Transformar-se en el tipus de persona que creu en aquestes coses es important per vos-- per ajudar-vos a aprendre i a mantenir-vos motivat. Així com a les arts creatives, la millor manera de convertir-se en mestre es imitar la mentalitat dels mestres -- no només intel·lectualment, si no també emocionalment.
O, com diu el següent poema Zen modern:
Per tant, si voleu ser un hacker, repetiu les següents coses fins que us les creieu:
Ser un hacker és molt divertit, però és una mena de diversió que implica molt esforç. L'esforç requereix motivació. Els bons atletes aconsegueixen motivar-se a partir del plaer físic de treballar els seus cossos, superant els seus límits. De la mateixa manera, per a ser un hacker heu de sentir un desig ardent per a resoldre problemes, millorar les vostres qualitats i exercitar l' intel·ligència.
Si no sou la mena de persona que sent d'aquesta manera, us hi haureu de transformar per a ser un hacker. D'altra banda veureu que la vostra energia per a hackejar es veurà minvada per distraccions com el sexe, els diners i el reconeixement social.
(També haureu de desenvolupar una mena de fe en la vostra capacitat d'aprenentatge --una creença en que tot i que no sabeu tot el que fa falta per a solucionar un problema, si n'agafeu només un tros i n'apreneu d'ell, aprendreu el suficient per a solucionar el proper tros --i continuar així, fins que acabeu.)
éEls cervells creatius sónn valuosos, són recursos limitats. No s'haurien de malbaratar redescobrint la roda quan hi ha tants problemes nous i fascinants per a ser resolts.
Per a comportar-vos com un hacker, heu de creure que el temps dels altres hackers es valuós -- tant, que és quasi bé una tasca moral que intercanvieu informació, solucioneu problemes i donar les solucions per tal que els altres hackers puguin arreglar nous problemes en lloc d'arreglar sempre els mateixos.
(No esteu obligats a donar tota la vostra producció creativa, tot i que els hackers que ho fan son els més respectats. És conseqüent amb els valors hacker vendre allò suficient per a poder pagar el menjar, el lloguer i les eines (ordinadors). Esta bé emprar les vostres capacitats per a ajudar a la família o fins i tot per a fer-se ric, sempre i quan no oblideu la lleialtat al vostre art i als vostres amics hackers mentre ho feu.)
Els hackers (i la gent creativa en general) mai haurien de ser sotmeses a treballs rutinaris i avorrits, perquè quan passa això significa que no poden fer allò que saben -- solucionar problemes nous. Aquest malbaratament perjudica ax tothom. Per això l'avorriment i la feina rutinària no només són desagradables, si no realment malèfics.
Per a comportar-se com un hacker, heu de creure en això el suficient per automatitzar al màxim totes aquestes feines, no només per a vosaltres si no per a tothom (especialment altres hackers).
(Aparentment i ha una excepció. Els hackers sovintxx fan coses, que poden semblar repetitives o avorrides per a un observador, com a un exercici d'higiene mental, o per tal d'aconseguir experiència o habilitat que no podrien aconseguir de forma diferent. Però és una elecció -- cap ésser pensant hauria de ser forçat a una situació que l'avorreixi.)
Els hackers son antiautoritàris per naturalesa. Qualsevol que pugui donar-vos ordres pot obligar-vos a deixar estar allò que us fascina -- i, donada la manera en que funcionen les ments autoritàries, trobaran qualsevol raó espantosament estúpida per a fer-ho. Per això les actituds autoritàries s'han de combatre allà on sigui, per tal que no us oprimeixin ni a vosaltres, ni als altres hackers.
(Això no vol dir combatre qualsevol autoritat. Els nens necessiten ser guiats i els criminals restriccions. Un hacker pot acceptar alguns tipus d'autoritat per tal d'aconseguir quelcom que desitgi més que el temps que perd seguint ordres. Però aquest és un tracte limitat, conscient; el tipus de submissió personal que els autoritaris volen no entra dins aquesta oferta.)
Els autoritaris prosperen amb la censura i el secretisme. I desconfien en la cooperació voluntària i l'intercanvi d'informació -- només els agrada la "cooperació" que ells controlen. Per tant, per a comportar-vos com un hacker, heu de desenvolupar una hostilitat instintiva a la censura, al secretisme, i en l'ús de la força o el frau per a sotmetre a adults responsables. I també haureu d'estar preparats per a actuar en conseqüència.
Per a ser un hacker, heu de desenvolupar algunes d'aquestes actituds. Però copiar una actitud no us farà pas hackers, així com no us farà atletes campions ni estrelles de rock. Esdevenir un hacker requereix intel·ligència, pràctica, dedicació i treballar dur.
Per això heu d'aprendre a desconfiar de les actituds i a respectar la competència de qualsevol mena. Els hackers no deixen que cap impostor els faci perdre el temps, però creuen en la competència -- especialment en la competència per a hackejar, però ser competent en qualsevol cosa és bo. Ser competent en habilitats que tan sols uns quants dominen, i en habilitats que requereixen agudesa mental, destresa i concentració.
Si respecteu la competència, us agradarà desenvolupar-la en vosaltres mateixos --la feina dura i la dedicació esdevindràn una mena de joc intens en lloc de feina rutinària. Aquesta actitud és essencial per a esdevenir hacker.
L'actitud hacker es vital, però les habilitats ho son encara mes. L'actitud no es cap substitut de la competència, i hi ha una mena de conjunt bàsic d'habilitats que hauríeu de tenir abans que cap hacker somii amb anomenar-vos així.
Aquest conjunt canvia lentament amb el temps mentre la tecnologia crea noves habilitats i en fa d'altres obsoletes. Per exemple, incloïa programar en llenguatge maquina, i fins fa poc no havia inclòs l'HTML. Però actualment inclou clarament les següents:
Aquesta es, evidentment, l'habilitat bàsica per a hackejar. Si no coneixeu cap llenguatge d'ordinadors, recomano que comenceu amb Python. Esta dissenyat d'una manera molt neta, ben documentat, i relativament amigable per als novells. Tot i ser un bon primer llenguatge, no es nomes una joguina; es molt potent i flexible i molt apropiat per a grans projectes. He escrit una avaluació molt mes detallada de Python. Hi ha bons tutorials al lloc web de Python.
Java també es un bon llenguatge per aprendre a programar. Es mes difícil que Python, però produeix codi mes fàcilment. Penso que es un molt bon segon llenguatge. Desafortunada-ment, la referència d'implementació de Sun es encara propietària. No hi ha cap problema amb el llenguatge, ja que hi ha intèrprets de codi obert excel·lents.lents; el problema real en en les llibreries de classe que venen amb el llenguatge. Les llibreries de codi obert van molt endarrerides. Per tant, si escolliu aprendre Java, feu-ho amb alguna de les implementacions de codi obert abans que haver de dependre del codi propietari de Sun.
Però no creieu que aconseguireu el nivell d'un hacker, ni tan sols el d'un programador, si nomes coneixeu un o dos llenguatges -- necessiteu aprendre com pensar en els problemes de programació d'una manera general, independentment del llenguatge. Per a ser un hacker real, necessiteu arribar a un punt en que pugueu aprendre un llenguatge nou en qüestió de dies relacionant el que hi ha al manual amb el que ja sabeu. Això vol dir que hauríeu d'aprendre molts llenguatges diferents.
Si voleu posar-vos a programar seriosament, haureu d'aprendre C, el llenguatge bàsic de Unix. C++ es molt semblant a C; si n'apreneu un, no us resultara difícil aprendre l'altre. Tant mateix, cap d'ells es un bon llenguatge per aprendre a programar. I, actualment, sereu molt mes productiu si eviteu al màxim haver de programar en C.
C es molt eficient, i economitza molt be els recursos de la maquina. Des-afortunadament, C aconsegueix aquesta eficiència requerint que feu un munt de gestió a baix nivell dels recursos (com la memòria) a mà. Tot aquest codi de baix nivell es complex i propens a errades, i us farà perdre el temps en depuració. Amb les maquines tant potents d'avui en dia, això ja no es necessari --és millor emprar un llenguatge que faci servir menys eficientment el temps de la maquina, però molt mes eficientment el teu temps. Es a dir, Python.
Altres llenguatges de particular importància per als hackers son Perl i LISP. Es bo aprendre Perl per raons practiques; esta molt estès en pagines web dinàmiques i administració de sistemes, per tant tot i que mai escriviu en Perl l'hauríeu d'aprendre a llegir. Molta gent empra Perl de la mateixa manera que jo suggereixo emprar Python, per a evitar programar en C en feines que no requereixin la seva eficiència. Tantmateix, hauríeu de ser capaços d'entendre el seu codi.
El bo aprendre LISP per una raó diferent --la profunda il·luminació. que experimentareu a d'entendre'l. Aquesta experiència us farà millors programadors per la resta dels vostres dies, tot i que no feu servir LISP. (Podeu tenir una primera experiència amb LISP escrivint i modificant els modes d'edició de l'editor de text Emacs.)
Avui en dia, el millor es aprendre'ls tots cinc: Python, C/C++, Java, Perl i LISP. A part de ser els llenguatges mes emprats en el hacking, representen diferents formes d'aproximació a la programació, i us educaran de forma valuosa.
Aquí no puc donar-vos instruccions completes de com aprendre a programar --és una habilitat complexa. Però us puc dir que ni cursets ni llibres ho faran (molts, gairebé la majoria dels millors hackers, son autodidactes). Podeu aprendre característiques del llenguatge --bits de coneixement-- a partir de llibres, però l'estat mental que transforma aquest coneixement en habilitat viva nomes s'aprèn amb la pràctica i l'aprenentatge. El que s'ha de fer es (a)llegir codi i (b)escriure codi.
Aprendre a programar es com aprendre a escriure bé la pròpia llengua. La millor manera es llegint coses escrites per mestres de l'art d'escriure, escriure quelcom per vosaltres mateixos, llegir un munt més, escriure una mica més, llegir un munt més, escriure una mica més ... i anar repetint fins que el que escriviu comenci a desenvolupar el tipus de força i economia que veieu en els vostres models.
Trobar un bon codi per a llegir era difícil, ja que hi havia pocs programes grans amb les seves fonts disponibles per a que els hackers novells el llegissin i hi fiquessin mà. Això ha canviat dramàticament; ara mateix hi ha disponible programari de codi obert, eines de programació i sistemes operatius (tots construïts per hackers). Això em porta directament cap al proper tema...
Assumiré que teniu un ordinador personal o be que hi teniu accés (aquest jovent d'avui en dia ho te tant fàcil :-)). El primer i més important pas que qualsevol novell pot fer cap a adquirir habilitats de hacker es aconseguir una copia de Linux o algun dels Unix-BSD, instalar-lo, i fer-lo funcionar.
Si, hi ha d'altres sistemes operatius al mon a part d'Unix. Però es distribueixen en binari --no es pot llegir el codi, i tampoc es pot modificar. Aprendre a hackejar en una maquina amb Microsoft Windows o amb MacOS o qualsevol altre sistema tancat és com aprendre a ballar amb el cos enguixat.
Sota un OS X és possible, però només una part del sistema és en codi obert --probablement topareu amb un munt de murs, i heu de ser curosos en no desenvolupar l'habit de dependre del codi propietari d'Apple. Si us concentreu en el que hi ha darrera de Unix podeu aprendre coses útils.
Unix és el sistema operatiu d'Internet. Tot i que podeu aprendre a emprar Internet sense conèixer Unix, no podeu ser un hacker d'Internet sense entendre'l. Per això, la cultura hacker actual es centra bàsicament en Unix. (Això no ha estat sempre cert, i alguns dels vells hackers encara se n'alegren, però la simbiosi entre Unix i Internet s'ha enfortit tant que no sembla que ni la força de Microsoft pugui aturar-ho.)
Així doncs, aconseguiu un Unix --personalment m'agrada Linux però hi ha d'altres alternatives (i efectivament, pots emprar Linux i Microsoft Windows a la mateixa maquina). Apreneu-lo. Feu que funcioni. Remeneu-lo. Parleu a Internet amb ell. Llegiu el codi. Modifiqueu el codi. Aconseguireu millors eines (incloent-hi C, LISP, Python i Perl) que cap dels sistemes operatius de Microsoft pugui arribar mai a somniar, us divertireu, i tindreu mes coneixements dels que us penseu que esteu aprenent, fins arribar al punt en que mirareu enrere convertit en un mestre hacker.
Per a mes informació sobre aprendre Unix, vegeu el Loginataka. Potser també voldríeu fer una ullada a "The Art Of Unix Programming".
Per a aconseguir un Linux, vegeu el lloc web Linux Online!; us el podeu descarregar des d'aquí o (encara millor) trobar un grup local d'usuaris de Linux que us ajudi amb l' instal·lació. Des del punt de vista d'un usuari novell, totes les distribucions de Linux son molt semblants.
Podeu trobar ajuda i recursos per a BSD Unix a www.bsd.org.
Jo mateix he escrit un manual sobre temes bàsics de Unix i Internet.
(Nota: No us recomano que instal·leu cap Linux o BSD en solitari si sou novells. Per a Linux, busqueu un grup d'usuaris local i demaneu ajut.)
La majoria de coses que la cultura hacker ha construït funciona sense ser vist, ajudant a que les fabriques, oficines i universitats funcionin sense cap impacte en la vida dels no-hackers. La Web es la gran excepció, la gran i lluent joguina hacker que, fins i tot els polítics, admeten que esta canviant el mon. Només per aquesta raó (i un munt d'altres també) necessiteu aprendre com treballar a la Web.
Això no vol dir simplement aprendre com fer anar un navegador (qualsevol ho pot fer), si no aprendre a escriure HTML, el llenguatge de marques de la Web. Si no sabeu programar, escriure HTML us ensenyara alguns hàbits mentals que us n'ajudaran. Per tant, feu-vos una pagina. Proveu de passar-la a XHTML, que es encara mes clar que l'HTML clàssic. (Hi ha tutorials bons a la Web; aquí n'hi ha un.)
Però tenir una pagina personal no es suficient per a fer-vos un hacker. La Web n'és plena de pagines personals. La majoria d'elles sense cap mena d'interès, deixalles sense contingut --deixalles molt vistoses, però deixalles al cap i a la fi (si vols saber mes sobre això, mira la HTML Hell Page).
Per a que pagui la pena, la vostra pagina ha de tenir contingut --ha de ser interessant o útil per als altres hackers. I això ens porta al següent tema...
Com a americà i angloparlant nadiu que soc, mai havia volgut suggerir això, per a que no fos entès com una mena d'imperialisme cultural. Però molta gent amb d'altres llengües maternes m'han encoratjat a dir que l'anglès es l'idioma de treball de la cultura hacker i d'Internet, i que necessitareu saber-ne per a poder funcionar dins la comunitat hacker.
Cap allà el 1991 vaig aprendre que molts hackers que tenien l'anglès com a segona llengua, el feien servir en discussions tècniques, tot i compartir la llengua natal; em van comentar que l'anglès te una terminologia tècnica molt mes rica que cap altra llengua i que, simplement, era una eina millor per a la feina. Per raons semblants, les traduccions de llibres tècnics escrits en Angles sovint no son satisfactòries (sempre i quan es facin).
Linus Torvalds, un Finlandès, comenta el seu codi en Anglès (aparentment mai se li ha acudit fer-ho de cap altra forma). La seva fluïdesa amb l'anglès va ser un factor important en l'habilitat de reclutar una comunitat mundial de desenvolupadors per a Linux. Es un exemple que val la pena seguir.
Com a la majoria de cultures sense una economia monetària, el hackerisme funciona sobre la reputació. Esteu provant de resoldre problemes interessants, però com ho son d'interessants, i com d'útils son les vostres solucions, és quelcom que nomes els vostres iguals o superiors, tècnicament parlant, podran jutjar.
Conseqüentment, quan jugueu el joc hacker, apreneu a puntuar-vos primerament amb allò que els altres hackers pensen de les vostres activitats (es per això que que no sou realment un hacker fins que els altres hackers us anomenen així). Aquest fet es troba enfosquit per l'imatge del hacking com una feina solitària; també per un tabú cultural dels hackers (que actualment decau però que encara és vigent) que no permet admetre que l'ego o l'acceptació externa estan inclosos en la pròpia motivació.
Específicament, el hackerisme es allò que els antropòlegs anomenen cultura de donació. Guanyeu nivell i reputació no per dominar a altra gent, ni per ser bonics, ni per tenir coses que els altres volen, si no per regalar coses. Específicament, donant el vostre temps, la vostra creativitat i els resultats de la vostra habilitat.
Hi ha cinc coses bàsiques que heu de fer per a ser respectats per els hackers:
La primera (la central i mes tradicional) es escriure programes que els altres hackers pensin que son divertits o útils, i donar les fonts del programa per a que tota la cultura hacker les pugui fer servir.
(Acostumàvem a anomenar aquests treballs --free software-- (programari lliure), però això confonia a molta gent que no estava segura del que volia dir --free--[1]. La majoria de nosaltres, com a mínim en un ratio de 5:1 d'acord amb l'anàlisi de contingut web, preferim el terme "open-source software" (programari de codi obert).
Els semidéus mes reverenciats del hackerisme són persones que han escrit programes grans i amb grans capacitats, que solucionen una necessitat comú i que després els han donat, per tal que tothom els pugui fer servir.
Aquells que depuren el programari de codi obert també son molt reconeguts. En aquest mon imperfecte, passarem, inevitablement, la majoria del nostre temps desenvolupant programari a la fase de depuració. Per això qualsevol autor de codi obert pensa que un bon provador-beta (aquell qui sap descriure símptomes clarament, localitzar els problemes, que pot tolerar errades en un alliberament prematur, i que aplicara unes quantes rutines simples de diagnostic) val el seu pes en ruobins. Tan sols una persona així pot fer que una fase de depuració que sigui un malson esgotador es transformi en nomes una saludable molèstia.
Si sou novell, proveu a buscar un programa en desenvolupament que us interessi i sigueu un bon provador-beta. Hi ha una progressió natural entre ajudar a provar programes, ajudar a depurar-los i ajudar a modificar-los. Aprendreu molt d'aquesta manera, i generareu bon karma amb la gent que us ajudara després.
Una altra cosa que esta bé és recollir i filtrar informació útil i interessant en pagines web o en documents com llistes de Preguntes Mes Freqüents (FAQ en anglès), i fer-ho públic.
Els mantenidors de les grans PMF obtenen quasi be tant respecte com els autors de programari de codi obert.
La cultura hacker (i el desenvolupament d'enginyeria d'Internet) funciona gràcies a voluntaris. Hi ha molta feina poc glamourosa que s'ha de fer --administrar llistes de correu, moderar grups de noticies, mantenir grans arxius de programari, desenvolupar RFC (Request For Comment-Peticions De Comentari) i altres estàndards tècnics.
La gent que fa bé aquesta mena de treball guanyen molt respecte, perquè tothom sap que aquests treballs consumeixen molt temps i no es tan divertit com jugar amb el codi. Fer-les demostra dedicació.
Finalment, podeu servir i propagar la pròpia cultura (per exemple, escrivint una guia per a convertir-se en hacker:-)). Això serà una cosa que nomes podreu fer quan sigueu ben conegut per algun dels primers quatre temes.
La cultura hacker no té líders, exactament, però té herois, ancians de la tribu, historiadors i portaveus. Quan haureu estat a la trinxera el temps suficient, podreu créixer i convertir-vos en un d'ells. Pareu atenció: els hackers desconfien de l'ego arrogant en els seus ancians, per tant assolir aquest tipus de fama es perillós. En comptes de buscar-la, hauríeu de posicionar-vos de manera que us caigui a la falda, i llavors ser modestos i graciosos sobre la vostra posició.
Contràriament al mite popular, no heu de ser pas un nerd[2] per a ser hacker. Tot i això, ajuda, i molts hackers son, de fet, nerds. Ser un descastat social us ajudara en la concentració en les coses importants, com pensar en hackejar.
Per aquesta raó, molts hackers han adoptat l'etiqueta --nerd-- i també empren el terme desagradable --geek-- com una insígnia d'orgull --és una forma de declarar la seva independència de les expectatives socials normals. A la Geek Page hi trobareu una discussió extensa.
Si podeu concentrar-vos el suficient en hackejar fins a arribar a ser bo i, a més, tenir una vida personal, esta bé. Fer això es mes fàcil actualment que quan jo era un novell cap allà al 1970; la cultura majoritària ara és molt més amigable als techno-nerds. Hi ha grups creixents de persones que s'adonen que els hackers son amants i marits/mullers d'alta qualitat.
Si us atrau el hackeig perquè no teniu una vida personal, també esta bé --al menys no tindreu cap problema per a concentrar-vos. Potser aconseguireu una vida més tard.
Com ja he dit, per a ser un hacker, haureu d'entrar dins l'estat mental hacker. Hi ha algunes coses que podeu fer i us ajudaran quan no sigueu davant d'un ordinador. No son substitutius del hackeig (res ho és) però molts hackers les fan, i senten que connecten d'alguna forma amb l'essència del hackeig.
Apreneu a escriure correctament la vostra llengua materna. Tot i que hi ha l'estereotip comú que els programadors no saben escriure, un sorprenent nombre de hackers (incloent-hi els mes complerts que conec) son escriptors molt hàbils.
Llegiu ciència-ficció. Aneu a convencions de ciència-ficció (una bona manera de conèixer hackers i proto-hackers).
Practiqueu arts marcials. La classe de disciplina mental que requereixen les arts marcials s'assembla molt a la que necessiten els hackers. Les disciplines mes populars entre els hackers son definitivament les arts a ma nua asiàtiques com el Tae Kwon Do, el Karate, Wing Chun, Aikido, o Jiu Jitsu; també, allà on es legal, el tir amb pistola ha guanyat popularitat des dels anys 90. Les arts marcials mes "hackerils" son les que posen èmfasi en la disciplina mental, atenció, control i relaxació en comptes de força, atletisme o duresa física.
Practiqueu algun tipus de meditació. El favorit de sempre entre els hackers es el Zen (important, es possible beneficiar-se del Zen sense haver d'adquirir una religió ni desfer-se'n si ja se'n te una). Altres estils també poden funcionar, però sigueu curosos d'escollir-ne un que no requereixi creure en bogeries.
Desenvolupeu una oïda critica per a la musica. Apreneu a apreciar tipus de musica peculiars. Apreneu a tocar be un instrument, o a cantar.
Desenvolupeu apreci pels dobles sentits i els jocs de paraules.
Com més coses d'aquestes hàgiu feu, més probable serà que tingueu matèria hacker natural. El per què d'aquestes coses en particular no esta completament clar, però estan connectades amb la barreja d'habilitats en els dos hemisferis cerebrals que sembla important; els hackers necessiten ser capaços de raonar lògicament i de sortir d'aquesta lògica aparent en un moment donat.
Treballeu tan intensament com jugueu i jugueu tan intensament com treballeu. Per als hackers autèntics, la frontera entre "joc", "feina", "ciència" i "art" desapareix, o es barreja en un alt nivell de creativitat. A més a més, no us acontenteu amb un marge estret de coneixements. Tot i que la majoria de hackers s'auto descriuen com a programadors, solen ser bastant competents en moltes habilitats relacionades --administració de sistemes, disseny web, solucionar problemes amb maquinari són coses comunes. Un hacker que és administrador de sistemes, d'altra banda, és habilidós programant fitxers-seqüència i dissenyant pagines web. Els hackers no fan les coses a mitges; si inverteixen en una habilitat, solen ser molt bons.
Finalment, algunes coses que no heu de fer.No feu servir una identitat ni un nom d'usuari graciós ni infantil.
No us fiqueu en guerres de flames a Usenet (ni a cap altre lloc).
No us auto anomeneu com a --ciberpunk--, i no perdeu el vostre temps amb ningú que ho faci.
No pengeu o envieu per correu escrits plens de faltes d'ortografia o gramàtica.
L'única reputació que guanyareu fent això es la de burro. Els hackers tenen una gran memòria --us podria costar anys deixar enrere aquests malentesos per a ser acceptat.
El problema amb els pseudònims mereix una ampliació. Amagar la vostra identitat darrera un pseudònim és comportar-se de forma infantil i tonta típica de crackers, warez d00dz i altres formes de vida inferiors. Els hackers no fan això; estan orgullosos del que fan i volen que s'associi amb els seus noms reals. Per això, si teniu un pseudònim, deixeu-lo estar. A la cultura hacker nomes us marcara com un perdedor.
En Paul Graham ha escrit un assaig anomenat Great Hackers, i un altre anomenat en els quals parla amb molta saviesa.
En Peter Seebach manté unes excel.lents PMF per a directius que no saben com tractar amb els hackers. Si el lloc web d'en Peter no respon, la següent cerca a Excite n'hauria de trobar una copia.
Aquí hi ha un document anomenat How To Be A Programmer (Com Ser Un Programador) que es un complement excel.lent d'aquest. Conté consells valuosos no nomes per a programar, si no també per a treballar en un equip de programació.
També he escrit A Brief History Of Hackerdom (Una Breu Historia del Hackerisme).
He escrit un article, The Cathedral and the Bazaar (La Catedral i el Basar), que explica molt sobre el funcionament de les cultures Linux i codi obert. He estudiat el tema mes directament en la seva seqüela.la, Homesteading the Noosphere (Cultivant la Noosfera).
En Rick Moen ha escrit un document excel·lent.lent sobre com fer anar un grup d'usuaris de Linux.
En Rick Moen i jo hem col.laborat en un altre document sobre Com Formular Preguntes Intel·ligents (How To Ask Smart Questions). Això us ajudara a buscar ajuda d'una forma que farà que l'aconseguiu.
Si necessiteu instrucció sobre com funcionen els ordinadors personals, Unix i Internet, vegeu el The Unix and Internet Fundamentals HOWTO.
Quan allibereu programari o escriviu pedaços per a programari, proveu a seguir les guies del Software Release Practice HOWTO.
Si us ha agradat el poema Zen, potser també us agradi Rootless Root: The Unix Koans of Master Foo.
R: Des que vaig publicar per primer cop aquesta pagina, rebo moltes peticions a la setmana (a vegades moltes en un dia) de gent per a que "els ensenyi tot sobre hacking". Malauradament, no tinc ni el temps ni l'energia per a fer això; els meus propis projectes de hacking i viatjar com a promotor del codi obert, ocupen el 110% del meu temps.
Encara que pogués, el hackeig es una actitud i una habilitat que bàsicament us l'heu d'ensenyar vosaltres mateixos. Trobareu que, tot i que els altres hackers us voldran ajudar, no us respectaran si sempre demaneu que us donin mastegat tot allò que saben.
Apreneu algunes coses primer. Mostreu que ho esteu intentant, que sou capaços d'atendre sols. Llavors aneu a preguntar als hackers que conegueu amb preguntes concretes.
Si envieu un correu electrònic a un hacker demanant consell, hi ha dues coses que hauríeu de saber. Primera, trobem que la gent que es mandrosa o deixada a l'hora d'escriure, sovint també es mandrosa i deixada a l'hora de ser un bon hacker --així que procureu escriure correctament, usar bona gramàtica i puntuació, d'altra manera, probablement sereu ignorats. Segona, no proveu de demanar una resposta a un compte diferent de l'ISP des d'on pregunteu; trobem gent que ho fa que probablement son lladres fent servir comptes robats, i no tenim cap interès en recompensar o ajudar a cap lladre.
R: La millor forma de que comencis seria probablement anar a un LUG (Grup d'Usuaris de Linux). Podeu trobar aquests grups a la Pàgina d'Informació General del LDP; possiblement n'hi hagi un a prop vostre, probablement associat a alguna universitat o institut. Els membres del GUL segurament us donaran un Linux si els ho demaneu, i segur que us ajudaran a instalar-lo i a començar.
P: Quan s'ha de començar? Es massa tard per començar?
R: Qualsevol edat en que us trobeu motivats es bona per a començar. La majoria de la gent sembla interessar-s'hi entre els 15 i els 20 anys, però conec excepcions en totes dues bandes.
P: Quant trigaré en aprendre a hackejar?
R: Això depèn del vostre talent i de l'esforç que hi poseu. La majoria de la gent aconsegueix un nivell respectable entre els divuit mesos i els dos anys, si s'hi concentren. Però no penseu que acaba aquí; si sou un autentic hacker, passareu la resta de la vida aprenent i perfeccionant-vos.
P: Son Visual Basic o C# bons llenguatges per a començar?
R: Si feu aquesta pregunta, es quasi-be segur que esteu pensant en intentar hackejar amb Microsoft Windows. Això es una mala idea. Quan he comparat aprendre a hackejar sota Microsoft Windows amb aprendre a ballar amb el cos enguixat, no feia broma. No ho feu. Es lleig, i mai deixara de ser lleig.
Hi ha problemes específics amb Visual Basic i C#; principalment que no son portables. Tot i que hi ha prototipus d'implementacions en codi obert d'aquests llenguatges, els estàndards aplicables de l'ECMA (European Computer Manufacturers Association - Associació Europea de Fabricants d'Ordinadors) no permeten cobrir mes que una mínima part de les interfícies de programació. A Windows, la majoria de les llibreries son propietat d'un sol distribuïdor (Microsoft); si no sou extremadament cautelosos amb les característiques que empreu --més cautelós del que qualsevol novell podria ser-- us trobareu atrapat dins d'aquelles plataformes a les que Microsoft decideixi donar suport. Si comenceu amb un Unix, tindreu llenguatges i llibreries molt millors. Python, per exemple.
Visual Basic és especialment terrorífic. Com altres Basics està pobrament dissenyat i us ensenyarà mals hàbits de programació. No, no em demaneu que us els descrigui amb detall; l'explicació ompliria un llibre. Apreneu un llenguatge ben dissenyat.
Un d'aquests mals hàbits es ser depenent d'un sol distribuïdor de llibreries, mòduls i eines de desenvolupament. En general, qualsevol llenguatge que no estigui plenament suportat com a mínim en Linux o en un dels BSD, i/o per tres distribuïdors diferents de sistemes operatius, es pobre per aprendre a hackejar-hi.
P: M'ajudaràs a crackejar un sistema, o m'ensenyaràs a crackejar?
R: No. Qualsevol qui pugui fer aquesta pregunta després de llegir aquestes PMF es massa estúpid per a ser educable fins i tot si tingues el temps per a intentar-ho. Qualsevol tipus de petició que rebi d'aquesta mena, serà ignorada o resposta amb extrema duresa.
P: Com puc aconseguir la contrasenya del compte d'algú altre?
R: Això es crackejar. Ves te'n, idiota.
P: Com puc entrar/llegir/monitorejar el correu electrònic d'algú altre?
R: Això es crackejar. Que et perdis, imbècil.
P: Com puc robar privilegis d'operador a l'IRC?
R: Això es crackejar. Desapareix, cretí.
P: M'han crackejat. M'ajudaràs a evitar atacs futurs?
R: No. Cada cop que em pregunten això, és un pobre babau amb Microsoft Windows. És impossible assegurar efectivament Windows contra atacs de crackers; el codi i l'arquitectura tenen, simplement, massa forats, cosa que fa que assegurar Windows sigui com remar amb un colador. L'única prevenció segura és canviar a Linux o a qualsevol altre sistema operatiu que sigui dissenyat per a poder ser assegurat.
P: Tinc problemes amb el meu programari de Windows. M'ajudaràs?
R: Si. Aneu a la línia de comanda de DOS i teclegeu "format c:". Qualsevol problema que tingueu desapareixerà en qüestió de minuts.
P: On puc trobar alguns hackers de veritat per a parlar-hi?
R: La millor manera és trobar un grup local d'usuaris de Linux o Unix a prop vostre i anar a les seves trobades (podeu trobar enllaços a multitud de llistes de grups d'usuaris al lloc del LDP a ibiblio).
(Aquí acostumava a dir que no trobaríeu mai cap hacker autentic a l'IRC, però m'adono que això esta canviant. Aparentment algunes comunitats autentiques de hackers, vinculades a coses com GIMP o Perl, ara tenen canals d'IRC.)
P: Podries recomanar alguns llibres útils sobre hacking?
R: Mantinc un Linux Reading List HOWTO que potser trobeu útil. El Loginataka també podria ser interessant.
Per una introducció a Python, vegeu els materials d'introducció al lloc de Python.P: Necessito ser bo amb les matemàtiques per a ser un hacker?
R: No. Hackejar empra molt poques matemàtiques o aritmètica formals. En particular, no us faran falta la trigonometria, el calcul ni l'anàlisi (hi ha excepcions per això en un grapat d'aplicacions en àrees especifiques com els gràfics computeritzats). Conèixer una mica de lògica o d'àlgebra Booleana estaria bé. Alguna base en matemàtiques finites (incloent teoria finita, combinatoris i teoria de gràfics) podria ser útil.
Encara més important: necessitareu ser capaços de pensar lògicament i de seguir cadenes de raonament exacte, de la manera en que ho fan els matemàtics. Mentre que el contingut de la majoria de matemàtica no us servirà de res, necessitareu la disciplina i l'intel-ligència per a emprar-la.. Si us manca intel·ligència, no teniu gaires esperances de ser hacker; si us manca disciplina, es millor que l'aconseguiu.
Penso que una bona manera saber si teniu el que fa falta, és aconseguir una copia del llibre d'en Raymond Smullyan, "What Is The Name Of This Book?" (Quin És El Nom d'Aquest Llibre?). Els divertits jocs d'endevinalles encaixen molt be dins l'esperit hacker. Ésser capaç de resoldre'ls es una bona senyal; disfrutar resolent-los n'és encara una de millor.
P: Quin llenguatge hauria d'aprendre primer?
R: XHTML (l'ultim dialecte d' HTML) si encara no el coneixeu. Hi ha un munt de llibres molt dolents sobre HTML, i alguns de bons. El que m'agrada mes es HTML: The Definitive Guide(HTML: La Guia Definitiva).
Però l'HTML no és un llenguatge de programació complet. Quan estigueu llestos per a programar, us recomanaria començar am Python. Sentireu molta gent recomanant Perl, i Perl és molt mes popular que Python, però es mes difícil d'aprendre i (segons la meva opinió) menys ben dissenyat.
C és realment important, però és encara molt més difícil d'aprendre que Python o Perl. No proveu d'aprendre'l primer.
Usuaris de Windows, no us estanqueu amb Visual Basic. Us ensenyara hàbits dolents, i no és portable fora de Windows. Eviteu-lo.
P: Quin tipus de maquinari necessito?
R: Solia passar que els ordinadors personals eren poc potents i amb poca memòria, tant, que van imposar límits articifials al procés d'aprenentatge hacker. Això va deixar de passar cap a la meitat dels anys 90; qualsevol maquina a partir d'un Intel 486DX50 és suficientment potent per a treballar, instal·lar el sistema X i comunicar-se per Internet, i els discos mes petits que pugueu trobar, ja son prou grans.
El mes important a l'hora d'escollir una màquina on aprendre, és quin maquinari és compatible amb Linux (o amb BSD, en cas que escolliu aquest camí). Això també és vàlid per a la majoria de màquines modernes. L'únic punt complicat son els modems; algunes maquines tenen maquinari especific per a Windows que no funcionarà amb Linux.
Hi ha unes PMF sobre compatibilitat de maquinari; l'última versió és aquí.
P: Vull contribuir. Podries ajudar-me a trobar algun problema per a treballar-hi?
R: No, perquè no conec ni el vostre talent ni els vostres interessos. Us heu d'auto motivar o no us hi dedicareu seriosament, és per això que deixar que els altres escullin per un mateix mai funciona.
Proveu a fer el següent. Mireu els anuncis dels projectes a Freshmeat durant uns dies. Quan vegeu quelcom que us faci pensar "Ostres! M'agradaria treballar en això!", apunteu-vos-hi.P: Necessito odiar i menysprear Microsoft?
R: No, no cal. No és que Microsoft no sigui fastigosa, però hi havia una cultura hacker abans de Microsoft i encara n'hi haurà després que Microsoft sigui història. Tota l'energia que malbarateu odiant a Microsoft, estaria millor emprada estimant allò que feu. Escriviu bon codi --això també farà mal a Microsoft sense contaminar el vostre karma.
P: Però el programari de codi obert no impedeix als programadors guanyar-se la vida?
R: Això es improbable --fins ara, l'industria de codi obert sembla que crea llocs de feina en comptes de destruir-los. Si escriure un programa es un guany econòmic net sobre no escriure'l, a un programador li pagaran igual sigui el programa de codi obert o no. I, no importa la quantitat de programari "gratuït" que s'escrigui, sempre hi haurà més demanda per a noves aplicacions personalitzades. He escrit sobre això a les pàgines Open Source.
P: Com començo? On puc aconseguir un Unix lliure?
R: A un altre lloc d'aquesta pagina he indicat on aconseguir els Unix lliures més comuns. Per a ser un hacker, necessiteu motivació, iniciativa i l'habilitat per auto educar-vos. Comenceu ara...
[1]El terme "free software" és molt ambigu en anglès, ja que pot voler dir "gratis" o "lliure".
[2]El mot nerd es solia emprar per a definir despectivament als "mestretites" de la classe. "Empollones" en castellà.