Volta para a Página do Rafael | Vai para Eric's FAQs Page | Data: 05/06/98 |
Esta é a tradução de Hacker Howto, que foi escrito por Eric S. Raymond.
Caso você esteja lendo um trecho deste documento off-line, a versão atual fica em http://www.ccil.org/~esr/faqs/hacker-howto.html.
Existe uma comunidade, uma cultura compartilhada, de programadores experts e gurus de rede cuja história remonta a decadas atrás, desde os primeiros minicomputadores de tempo compartilhado e os primeiros experimentos na ARPAnet. Os membros dessa cultura deram origem ao termo "hacker". Hackers construíram a Internet. Hackers fizeram do sistema operacional Unix o que ele é hoje. Hackers mantém a Usenet. Hackers fazem a World Wide Web funcionar. Se você é parte desta cultura, se você contribuiu a ela e outras pessoas o chamam de hacker, você é um hacker.
A mentalidade hacker não é confinada a esta cultura do hacker-de-software. Há pessoas que aplicam a atitude hacker em outras coisas, como eletrônica ou música -- na verdade, você pode encontrá-la nos níveis mais altos de qualquer ciência ou arte. Hackers de software reconhecem esses espíritos aparentados de outros lugares e podem chamá-los de "hackers" também -- e alguns alegam que a natureza hacker é realmente independente da mídia particular em que o hacker trabalha. Mas no restante deste documento, nos concentraremos nas habilidades e dos hackers de software, e nas tradições da cultura compartilhada que deu origem ao termo `hacker'.
Existe outro grupo de pessoas que se dizem hackers, mas não são. São pessoas (adolescentes do sexo masculino, na maioria) que se divertem invadindo computadores e fraudando o sistema telefônico. Hackers de verdade chamam essas pessoas de "crackers", e não tem nada a ver com eles. Hackers de verdade consideram os crackers preguiçosos, irresponsáveis, e não muito espertos, e alegam que ser capaz de quebrar sistemas de segurança torna alguém hacker tanto quanto fazer ligação direta em carros torna alguém um engenheiro automobilístico. Infelizmente, muitos jornalistas e escritores foram levados a usar, errôneamente, a palavra "hacker" para descrever crackers; isso é muito irritante para os hackers de verdade.
A diferença básica é esta: hackers constróem coisas, crackes as destróem.
Se você quer ser um hacker, continue lendo. Se você quer ser um cracker, vá ler o newsgroup alt.2600 e se prepare para se dar mal depois de descobrir que você não é tão esperto quanto pensa. E isso é tudo que eu digo sobre crackers.
Mas se você acha que cultivar a atitude hacker é somente um meio para ganhar aceitação na cultura, está enganado. Tornar-se o tipo de pessoa que acredita nessas coisas é importante para você -- para ajudá-lo a aprender e manter-se motivado. Assim como em todas as artes criativas, o modo mais efetivo para se tornar um mestre é imitar a mentalidade dos mestres -- não só intelectualmente como emocionalmente também.
Então, se você quer ser um hacker, repita as seguinte coisas até que você acredite nelas:
Se você não é o tipo de pessoa que se sente assim naturalmente, você precisará se tornar uma para ser um hacker. Senão, você verá sua energia para "hackear" sendo esvaída por distrações como sexo, dinheiro e aprovação social.
(Você também tem que desenvolver uma espécie de fé na sua própria capacidade de aprendizado -- crer que, mesmo que você não saiba tudo o que precisa para resolver um problema, se souber uma parte e aprender a partir disso, conseguirá aprender o suficiente para resolver a próxima parte -- e assim por diante, até que você termine.)
Para se comportar como um hacker, você tem que acreditar que o tempo de pensamento dos outros hackers é precioso -- tanto que é quase um dever moral compartilhar informação, resolver problemas e depois dar as soluções, para que outros hackers possam resolver novos problemas ao invés de ter que se preocupar com os antigos indefinidamente. (Você não tem que acreditar que é obrigado a dar toda a sua produção criativa, ainda que hackers que o fazem sejam os mais respeitados pelos outros hackers. Não é inconsistente com os valores do hacker vender o suficiente da sua produção para mantê-lo alimentado e pagar o aluguel e computadores. Não é inconsistente usar suas habilidades de hacker para sustentar a família ou mesmo ficar rico, contanto que você não esqueça que é um hacker.)
Para se comportar como um hacker, você tem que acreditar nisso de modo a automatizar as partes chatas tanto quanto possível, não apenas para você como para as outras pessoas (principalmente outros hackers).
(Há uma exceção aparente a isso. Às vezes, hackers fazem coisas que podem parecer repetitivas ou tediosas para um observador, como um exercício de "limpeza mental", ou para adquirir uma habilidade ou ter uma espécie particular de experiência que não seria possível de outro modo. Mas isso é por opção -- ninguém que consiga pensar deve ser forçado ao tédio.
(Isso não é a mesma coisa que combater toda e qualquer autoridade. Crianças precisam ser orientadas, e criminosos, detidos. Um hacker pode aceitar alguns tipos de autoridade a fim de obter algo que ele quer mais que o tempo que ele gasta seguindo ordens. Mas isso é uma barganha restrita e consciente; não é o tipo de sujeição pessoal que os autoritários querem.)
Pessoas autoritárias prosperam na censura e no segredo. E desconfiam de cooperação voluntária e compartilhamento de informação -- só gostam de "cooperação" que eles possam controlar. Então, para se comportar como um hacker, você tem que desenvolver uma hostilidade instintiva à censura, ao segredo, e ao uso da força ou mentira para compelir adultos responsáveis. E você tem que estar disposto a agir de acordo com esta crença.
Portanto, você tem que aprender a desconfiar de atitude e respeitar todo tipo de competência. Hackers não deixam posers gastar seu tempo, mas eles idolatram competência -- especialmente competência em "hackear", mas competência em qualquer coisa é boa. A competência em habilidades que poucos conseguem dominar é especialmente boa, e competência em habilidades que involvem agudeza mental, perícia e concentração é a melhor.
Se você reverenciar competência, gostará de desenvolvê-la em si mesmo -- o trabalho duro e dedicação se tornará uma espécie de um intenso jogo, ao invés de trabalho repetitivo. E isso é vital para se tornar um hacker.
Esse conjunto muda lentamente com o tempo, de acordo com a criação de novas habilidades. Por exemplo, costumava incluir programação em linguagem de máquina, e até recentemente não incluía HTML. Mas agora é certo que inclui o seguinte:
Além de C, você também deve aprender pelo menos LISP e Perl (e Java está tentando pegar um lugar nessa lista). Além de serem as linguagens mais importantes para hackear, cada uma delas representa abordagens à programaçaão bem diferentes, e todas o educarão em pontos importantes.
Eu nao posso lhe dar instruções completas sobre como aprender a programar aqui -- é uma habilidade complexa. Mas eu posso lhe dizer que livros e cursos também não servirão (muitos, talvez a maioria dos melhores hacker são auto-didatas). O que servirá é (a) ler código e (b) escrever código.
Aprender a programar é como aprender a escrever bem em linguagem natural. A melhor maneira é ler um pouco dos mestres da forma, escrever algumas coisas, ler mais um monte, escrever mais um monte, ler mais um monte, escrever... e repetir até que seu estilo comece a desenvolver o tipo de força e economia que você vê em seus modelos.
Achar bom código para ler costumava ser difícil, porque havia poucos programas grandes disponíveis em código-fonte para que hackers novatos pudessem ler e mexer. Essa situação mudou dramaticamente; open-source software (software com código-fonte aberto), ferramentas de programação, e sistemas operacionais (todos feitos por hackers) estão amplamente disponíveis atualmente.
Sim, há outros sistemas operacionais no mundo além do Unix. Porém, eles são distribuídos em forma binária -- você não consegue ler o código, e você não consegue modificá-lo. Tentar aprender a "hackear" em DOS, Windows ou MacOS é como tentar aprender a dançar com o corpo engessado.
Além disso, Unix é o sistema operacional da Internet. Embora você possa aprender a usar a Internet sem conhecer Unix, você não pode ser um hacker sem entendê-lo. Por isso, a cultura hacker, atualmente, é fortemente centralizada no Unix. (Não foi sempre assim, e alguns hackers da velha guarda não gostam da situação atual, mas a simbiose entre o Unix e a Internet se tornou tão forte que até mesmo o músculo da Microsoft não parece ser capaz de ameacá-la seriamente.)
Então, pegue um Unix -- eu gosto do Linux, mas existem outros caminhos. Aprenda. Rode. Mexa. Acesse a Internet através dele. Leia o código. Modifique o código. Você terá ferramentas de programação (incluindo C, Lisp e Perl) melhores do qualquer sistema operacional da Microsoft pode sonhar em ter, você se divertirá, e irá absorver mais conhecimento do que perceber, até que você olhará para trás como um mestre hacker.
Para aprender mais sobre Unix, veja The Loginataka.
Para pegar o Linux, veja Where To Get Linux.
Isso não significa apenas aprender a mexer em um browser (qualquer um faz isso), mas aprender a programar em HTML, a linguagem de markup da Web. Se você não sabe programar, escrever em HTML lhe ensinará alguns hábitos mentais que o ajudarão. Então faça uma home page.
Mas apenas ter uma home page não chega nem perto de torná-lo um hacker. A Web está repleta de home pages. A maioria delas é inútil, porcaria sem conteúdo -- porcaria muito bem apresentada, note bem, mas porcaria mesmo assim (mais sobre esse assunto em The HTML Hell Page).
Para valer a pena, sua página deve ter conteúdo -- deve ser interessante e/ou útil para outros hackers. E isso nos leva ao próximo assunto...
Conseqüentemente, quando você joga o jogo do hacker, você aprende a marcar pontos principalmente pelo que outros hackers pensam da sua habilidade (por isso você não é hacker até que outros hackers lhe chamem assim). Esse fato é obscurecido pela imagem solitária que se faz do trabalho do hacker; e também por um tabu hacker-cultural que é contra admitir que o ego ou a aprovação externa estão envolvidas na motivação de alguém.
Especificamente, a cultura hacker é o que os antropologistas chamam de cultura de doação. Você ganha status e reputação não por dominar outras pessoas, nem por ser bonito, nem por ter coisas que as pessoas querem, mas sim por doar coisas. Especificamente, por doar seu tempo, sua criatividade, e os resultados de sua habilidade.
Há basicamente cinco tipos de coisas que você pode fazer para ser respeitado por hackers:
(Nós costumávamos chamar isto de "free software", mas isso confundia muitas pessoas que não sabiam ao certo o significado de "free". Agora, muitos de nós preferem o termo "open-source" software).
[nota do tradutor: "free" significa tanto "livre" como "gratuito", daí a confusão. O significado que se pretende é "livre".] Os "semi-deuses" mais venerados da cultura hacker são pessoas que escreveram programas grandes, competentes, que encontraram uma grande demanda e os distribuíram para que todos pudessem usar.
Mantenedores de grandes FAQs técnicos são quase tão respeitados quanto autores de open-source software.
Pessoas que fazem bem esse tipo de coisa são muito respeitadas, porque todo mundo sabe que esses serviços tomam muito tempo e não são tão divertidos como mexer em código. Fazê-los mostra dedicação.
A cultura hacker não têm líderes, mas têm seus heróis culturais, "chefes tribais", historiadores e porta-vozes. Depois de ter passado tempo suficiente nas trincheiras, você pode ser tornar um desses. Cuidado: hackers desconfiam de egos espalhafatosos em seus "chefes tribais", então procurar visivelmente por esse tipo de fama é perigoso. Ao invés de se esforçar pela fama, você tem que de certo modo se posicionar de modo que ela "caia" em você, e então ser modesto e cortês sobre seu status.
Por isso, muitos hackers adotaram o rótulo "nerd", e até mesmo usam o termo (mais duro) "geek" como um símbolo de orgulho -- é um modo de declarar sua independência de expectativas sociais normais. Veja The Geek Page para discussão extensiva.
Se você consegue se concentrar o suficiente em hackear para ser bom nisso, e ainda ter uma vida, está ótimo. Isso é bem mais fácil hoje do que quando era um novato nos anos 70; atualmente a cultura mainstream é muito mais receptiva a tecno-nerds. Há até mesmo um número crescente de pessoas que percebem que hackers são, freqüentemente, amantes e cônjuges de alta qualidade. Girl's Guide to Geek Guys.
Se hackear o atrai porque você não vive, tudo bem -- pelo menos você não terá problemas para se concentrar. Talvez você consiga uma vida normal depois.
Finalmente, algumas coisas a não serem feitas.
Eu também escrevi A Brief History Of Hackerdom.
Peter Seebach mantém um excelente Hacker FAQ para gerentes que não sabem como lidar com hackers.
Eu escrevi um documento, The Cathedral and the Bazaar ("A Catedral e o Bazar"), que explica muito sobre como o Linux e as culturas de open-source software funcionam.
Mesmo se eu fizesse, hacking é uma atitude e uma habilidade na qual você tem que basicamente ser auto-didata. Você verá que, embora hackers de verdade queiram lhe ajudar, eles não o respeitarão se você pedir "mastigado" tudo que eles sabem.
Aprenda algumas coisas primeiro. Mostre que você está tentando, que você é capaz de aprender sozinho. Depois faça perguntas aos hackers que encontrar.
Quando você estiver pronto pra começar a programar, eu recomendaria começar com Perl ou Python. C é realmente importante, mas muito mais difícil.
Tradução de Rafael Caetano dos Santos. Comentários?.
Volta para Página do Rafael | Vai para Eric's FAQ Page | Data: 05/06/98 |