Hackers resolvem
problemas e constroem coisas, e acreditam na liberdade e na ajuda mútua voluntária.
Para ser aceito como um Hacker, você tem que se comportar de acordo com essa atitude, você tem que
realmente acreditar nessa atitude.
Mas se você pretende cultivar a atitude Hacker somente como um
meio para ganhar aceitação na cultura, está perdendo o principal. Tornar-se o
tipo de pessoa que acredita nessas coisas é realmente 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ê quiser ser um Hacker, repita as
seguintes coisas até acreditar nelas:
1 - O mundo está repleto
de problemas fascinantes esperando para serem resolvidos.
Ser Hacker é muito divertido,
mas é um tipo de diversão que necessita de muito esforço. Para haver esforço é
necessário motivação. Atletas de sucesso retiram sua motivação de uma espécie de
prazer físico em trabalhar seus corpos, em tentar ultrapassar seus próprios
limites físicos.
Analogamente, para ser um Hacker você precisa ter
uma emoção básica em resolver problemas, afiar suas habilidades e exercitar sua
inteligência. <P\ Se você não é o tipo de pessoa que se sente assim naturalmente,
você precisará se tornar uma para ser um Hacker. Se não, você verá sua
energia para "hacker" 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 termine.
2 - Não se deve resolver
o mesmo problema duas vezes. Mentes criativas são um recurso valioso e limitado. Não
devem ser desperdiçadas reinventando a roda quando há tantos problemas novos e
fascinantes por ai.
Para se comportar como um Hacker , você tem
que acreditar que o tempo de pensamento dos outros Hacker é precioso -- tanto,
que é quase um dever moral compartilhar informações, 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 Hacker que o fazem
sejam os mais respeitados pelos outros Hackers.
Não é inconsistente com os valores do 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.)
3 - Tédio e trabalho
repetitivo são nocivos. Hackers (e pessoas criativas em geral) não
podem ficar entediadas ou fazer trabalho repetitivo, porque quando isso acontece,
significa que eles não estão fazendo que apenas eles podem fazer -- resolver novos,
problemas. Esse desperdício prejudica a todos. Portanto, tédio e trabalho repetitivo
não são apenas desagradáveis, mas nocivos também.
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 Hacker). (Há uma
exceção aparente a isso. Às vezes, Hacker fazem coisas que podem parecer repetitivas ou tediosas para um observador,
como um exercício de "limpeza mental", ou para adquirir uma habilidade ou 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 dever ser forçado ao tédio.)
4 -
Liberdade é uma coisa boa.
Hackers
são naturalmente anti-autoritários. Qualquer pessoa que lhe dê ordens pode
impedi-lo de resolver qualquer que seja o problema pelo qual você está fascinado -- e,
dando o modo em que a mente autoritária funciona, geralmente arranjará alguma desculpa
espantosamente idiota para isso. Então, a atitude autoritária deve ser combatida onde
quer que você a encontre, para que não sufoque a você e a outros Hacker.
(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ções --
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.
5 -
Atitude não substitui competência.
Para ser um Hacker, você tem que
desenvolver algumas dessas atitudes. Mas apenas ter uma atitude não fará de você
um Hacker assim como não o fará um atleta campeão ou uma estrela de rock.
Para se tornar um Hacker é
necessário inteligência, prática, dedicação e trabalho duro. 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 "hacker"
, mas competência em qualquer coisa é boa. A competência em habilidades que poucos
conseguem dominar é especialmente boa, e competência em habilidades que envolvem
agudeza mental, perícia e concentração é ainda melhor.
Se você reverenciar competência, gostará de
desenvolvê-la em si mesmo -- o trabalho duro e a dedicação se tornarão uma
espécie de
um intenso jogo, ao invés de trabalho repetitivo. E isso é vital para se tornar
um Hacker.
A atitude
Hacker é vital, mas habilidades são ainda mais vitais. Atitude não
substitui competência, e há uma certo conjunto de habilidades que você precisa ter
antes que um Hacker sonhe em lhe chamar de um. 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 que até recentemente não
incluía HTML. Mas agora, é certo que inclui o seguinte.
1 - Aprenda a
programar.
Essa é, claro, a habilidade básica do Hacker. Se você
não conhecer nenhuma linguagem de programação, recomendo começar com o Python
(veja - http://www.python.org/ ).
Possui um projeto claro, boa documentação, e
é relativamente piedosa com iniciantes. Apesar de ser uma excelente e flexível e
bem adequada para grandes projetos.
Mas esteja consciente que você não terá a
habilidade de um Hacker e nem mesmo de um programador se souber uma só linguagem - você precisa
aprender a pensar em problemas de programação de maneira mais geral, independente de
linguagem. Para ser um Hacker de verdade, você precisa ter chegado ao ponto em que pode aprender
uma nova linguagem relacionamento o que estiver no manual com aquilo que você já
sabe.
Isso significa que você precisa aprender
várias linguagens. Se pretende programar seriamente, terá que aprender C,
a linguagem principal do UNIX (mas não a melhor para se tentar
primeiro). Outras linguagens de particular importância incluem Perl e LISP.
Aprender Perl compensa por razões práticas; é largamente usada
para páginas web dinâmicas e para administração de sistemas, portanto mesmo que nunca
vá escrever Perl, deveria aprender a lê-la. Aprender
LISP
compensa pela experiência de profunda iluminação que você terá quando finalmente
entende-la; esta experiência o fará um programador melhor pelo resto de seus dias,
mesmo que nunca use muito a LISP propriamente.
[ Nota do tradutor (lalo): a
linguagem Scheme é uma variante da LISP que
algumas pessoas acham mais fácil aprender; o Scheme pode ser interessante porque,
além de seu valor educacional (ou de "iluminação", como quer ESR), é a
linguagem de extensão "oficial" do projeto GNU. Você pode se informar mais na página
do Guile (veja - http://www.guile.org/guile )
(o Scheme da GNU) ou em Schemers.org. (veja - http://www.schemers.org/
)].Eu não posso lhe dar instruções completas sobre como aprender a programar aqui - é
uma habilidade complexa. Mas posso lhe dizer que livros e cursos também não servirão
(muitos, talvez a maioria dos melhores Hacker são autoridades). 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 Hacker 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 Hacker) estão amplamente disponíveis atualmente.
2 - Pegue um dos Unixes
livres e aprenda a mexer. Estou assumindo que você tem um computador pessoal ou tem
acesso a um (essas crianças de hoje em dia tem tudo tão fácil). O passo mais importante
que um novato pode dar para adquirir habilidades de Hacker é pegar uma cópia do Linux
ou de um dos BSD-Unixesm instalar em um PC e rodá-lo.
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" e, 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 centralizado no Unix. (Não foi sempre assim, e alguns Hacker 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 ameaça-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. (veja - http://www.ccil.org/~esr/faqs/loginataka.html
) Para pegar o Linux, veja Where To Get Linux.
(http://www.ssc.com/linux/resources/ftp.html )
3 -
Aprenda a usar a World Wide Web e escrever em HTML.
A maioria das coisas que a cultura Hacker tem
construído funciona "invisivelmente", ajudando no funcionamento de fábricas,
escritórios e universidades sem nenhum impacto óbvio na vida dos não Hackers. A Web é a grande exceção, o enorme e brilhante brinquedo dos Hacker que até
mesmo políticos admitem que está mudando o mundo. Por esse motivo (e vários
outros também) você precisa aprender como trabalhar na Web. 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 HellPage) ( visite - http://www.cail.org/~esr/html-hell.html
).
Para valer a pena, sua página deve ter
conteúdo -- deve ser interessante e/ou útil para outros Hacker. E isso nos leva ao
próximo assunto...
Como
a maioria das culturas sem economia monetária, a do Hacker se baseia em
reputação. Você está tentando resolver problemas interessantes, mas quão
interessantes eles são e se suas soluções são realmente boas, é algo que
somente seus iguais ou superiores tecnicamente são normalmente capazes de julgar.
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 Hacker lhe chamem assim). Esse fato é obscurecido pela imagem solitária que se
faz do trabalho do Hacker; e também por um tabu cultural Hacker 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 Hacker:
1 - Escrever open-spurce
software.
A primeira (a mais central e mais tradicional)
é escrever programas que outros Hacker achem divertidos ou úteis, e dar o código-fonte para que toda a cultura
hacker use (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"(visite - http://www.ccill.org/~esr/open-source.html
) 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.
2 - Ajude a testar
e depurar open-source software. Também estão servindo os que depuram open-source
software. Neste mundo imperfeito, inevitavelmente passamos a maior parte do tempo de
desenvolvimento na fase de depuração. Por isso, qualquer autor de open-source
software que pense lhe dirá que bons beta-tester (que saibam descrever sintomas
claramente, localizar problemas, tolerar bugs em um lançamento apressado, e estejam
dispostos a aplicar algumas rotinas de diagnóstico) valem seu peso em ouro. Até mesmo um
desses beta-testes pode fazer a diferença entre uma fase de depuração virar um longo e
cansativo pesadelo, ou ser apenas um aborrecimento saudável.
Se você é um novato, tente achar um programa
em desenvolvimento em que você esteja interessado e seja um bom beta-tester.
Há uma progressão natural de ajudar a testar
programas para ajudar a depurar e depois ajudar a modificá-los. Você aprenderá
muito assim, e criará um bom karma com pessoas que lhe ajudarão depois.
3 - Publique
informação útil.
Outra boa coisa a se fazer é coletar e filtrar
informações úteis e interessantes em páginas da Web ou documentos como FAQs
("Frequently Asked Questions Lists", ou listas de perguntas freqüentes), e
torne-os disponíveis ao público. Mantenedores de grandes FAQs técnicos são quase tão
respeitados quando autores de open-source softwares.
4 - Ajude a manter
a infra-estrutura funcionando. A cultura Hacker (e o desenvolvimentos da Internet, aliás) é mantido por voluntários.
Existe muito trabalho sem glamour que precisa ser feito para mantê-la viva -- administrar
listas de e-mail, moderar grupos de discussão, manter grandes sites que armazenam
softwares, desenvolver RFCs e outros padrões técnicos. 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.
5 - Sirva a
cultura Hacker em si. Finalmente, você pode servir e propagar a cultura em si (por
exemplo, escrevendo um apurado manual sobre como se tornar um Hacker).
Você só terá condições de
fazer isso depois de ter estado por aí por um certo tempo, e ter se tornado conhecido por
uma das primeiras quatro coisas.
A cultura Hacker não tem lideres, mas
têm seus heróis culturais, "chefes tribais", historiadores e porta-vozes.
Depois de ter passado tempo suficiente nas trincheiras, você pode se tornar um desses.
Cuidado: Hacker 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.
Contrariamente ao mito popular, você não tem que ser um nerd para
ser um Hacker. Ajuda, entretanto, e muitos Hacker são de fato nerds. Ser um proscrito social o ajuda a se manter concentrado
nas coisas realmente importantes, como pensar e "hacker".
Por isso, muito Hacker 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 (veja: http://samsara.circus.com/õmni/geek.html
) para discussão extensiva.
Se você consegue se concentrar o
suficiente em hacker para ser bom nisso, e ainda ter uma vida, está ótimo. Isso é bem
mais fácil hoje do que quando se era um novato nos anos 70; atualmente a cultura
mainstream é muito mais receptivo 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.(http://www.bunnyhop.com/BH5/geekguys,html ).
Se hackear o atrai porque você não
vive, tudo bem -- pelo menos você não terá problemas para se concentrar. Talvez você
consiga você uma vida normal depois.
Para
ser um Hacker, você tem que entrar na mentalidade Hacker. Há algumas coisas que
você pode fazer quando não estiver na frente de um computador e que podem ajudar. Não
substituem o ato de hackear (nada substitui), mas muitos Hackers
as fazem, e sentem que elas estão ligadas de uma maneira básica com a essência
do hacking.
»Leia ficção cientifica. Freqüentemente convenções de
ficção cientifica (uma boa maneira de encontrar Hacker e pronto-hacker).
»Estude o Zen, e/ou faça artes
marciais. (A disciplina mental parece similar em pontos importantes).
»Desenvolva um ouvido analítico para música. Aprenda
a
apreciar tipos peculiares de música. Aprenda a tocar bem algum instrumento musical, ou a
cantar.
»Desenvolva sua apreciação de trocadilhos e jogo de palavras.
»Aprenda a escrever bem em sua língua nativa. (Um número
surpreendente de Hacker, incluindo todos os melhores que eu conheço, são bons escritores.)
Quando mais dessas coisas você já fizer, mas provável
que você seja matéria-prima natural para um Hacker. Porque essas coisas em particular não são completamente claras, mas elas
são ligadas com uma mistura de habilidade dos lados esquerdo e direito do cérebro que
parece ser muito importante (Hackers precisam ser capazes de tanto
raciocinar logicamente quanto por de lado, de uma hora para outra, a lógica aparente do
problema).
®Não use um nome
de usuário ou pseudônimo bobo e grandioso.
®Não entre em flame wars ("guerrinhas") na
Usenet (ou em qualquer outro lugar).
®Não se
auto-intitule um "cyberpunk", e não perca seu tempo com alguém que o faça.
®Não poste ou
escreva e-mail cheio de erros de ortografia e gramática.
A única reputação que você conseguirá
fazendo alguma dessas coisas é a de um tuit [um chato geralmente filtrado nos grupos de
discussão].Hackers tem boa memória -- pode levar anos antes que você realmente se
reabilite o suficiente para ser aceito.
O loginataka
(veja Http://www.ccill.org/~esr/faqs/loginataka.html
) tem algumas coisas a dizer sobre o treinamento e a atitude adequados a um Hacker de Unix.
Veja também A Brief History Of Hackerdom. ( veja - http://www.ccill.org/~esr/faqs/hacker-hist.html
) Peter Seebach mantém um excelente Hacker FAQ ( veja - http://www.solon.com/~seebs/faqs/hacker.html
) para gerentes que não sabem como lidar com Hackers.
Escrevi um documento, The Cathedral and the bazaar ("A
Catedral e o Bazar" veja - http://www.ccill.org/~esr/writings/cathedral-bazaar/index.html
), que explica muito sabre como o linux e as culturas de open-source software funcionam.
Q:
Você me ensina como "Hackear"?
Desde que foi publicado essa página, o autor recebeu vários pedidos por semana de
pessoas querendo que ele "ensinasse tudo sobre hacking". Infelizmente, ele não
dispõe de tempo nem energia para isso; seus próprios projetos Hacker tomam 110% do seu tempo.
Mesmo se ele fizesse, hacking é uma atitude e uma habilidade na qual você tem
basicamente ser autodidata. Você verá que, embora Hackers de
verdades queiram lhe ajudar, eles não o respeitarão se você pedir "mastigado"
tudo que eles sabem, sem falar que você poderá ser usado de cobaia por eles.
Aprenda algumas coisas primeiro. Mostre que você está tentando, que você é capaz
de aprender sozinho. Depois faça perguntas aos Hacker que encontrar.
Q: Onde eu posso encontrar hacker de verdade para conversar?
A melhor maneira é encontrar um grupo de usuários local de Unix
ou Linux, e freqüentar as reuniões (você pode encontrar
links para várias listas de grupos de usuários na página da LDP (veja - http://sunsite.unc.edu/LDP
) em Sunsite ).
(O autor costumava dizer que não se pode encontrar Hackers de verdade no IRC, mas
tenho a impressão de que isso está mudado. Aparentemente, algumas comunidades de Hackers de
verdade, formadas ao redor de coisas como o GIMP e Perl, têm seus canais de IRC
agora. )
[Nota do tradutor (lalo): eu mesmo sou um freqüentador
do IRC. Se
você é capaz de conversar em inglês, procure o server irc.openprojects.net; em lugares
onde não se fala inglês, ainda acho meio difícil encontrar Hackers de verdade, e mesmo os
canais #Linux estão em sua maioria tomados por crackers e posers.]
Q: Que linguagem devo aprender primeiro?
HTML, se você ainda não souber. Existe um monte de livros sobre HTML
lustrosos, modistas e ruins por aí e, infelizmente, pouquíssimos bons. O livro de que
mais gosto é HTML: The Definitive Guide. (veja - http://www,ora.com/catalog/html2/ )
Quando você estiver pronto pra começar a programar, eu recomendaria começar com Perl
(veja - http://www.perl.com/ ) ou Python ( veja - http://www.python.org/ ). C é realmente importante, mas
muito mais difícil, e pra completar o Delphi da Interprise, que já esta
com sua nova versão 5.0.
Q: Mas o open-source software não deixará os programadores
incapazes de ganhar a vida?
Parece improvável -- até agora, a indústria de open-source software
parece estar criando empregos ao invés de tirá-los. Se ter escrito um programa, é
ganho econômico em relação a não tê-lo escrito, um programa ser livre depois de
feito. E, independentemente de quanto open-source software é feito,
sempre parece haver mais demanda por aplicações novas e personalizadas.
Q: Como eu começo? Onde posso pegar um Unix Livre?
Em outro lugar da página eu inclui ponteiros onde pegar o Linux.
Para ser um Hacker você precisa de motivação, iniciativa e capacidade de se educar. Comece
agora...
Tradução de Rafael
Caetano dos Santos. Comentários?. (e-mail: rcaetano@linux.ime.usp.br )
Atualizado para a nova versão do HOWTO por Lalo
Martins para o curso de programação da LinuxCenter. Comentários? (veja - http://www.linuxcenter.com.br/ ) ou e-mail: lalo@linuxcenter.com.br )
Adaptação deste documento para versão
off-line na REVISTA FREESOFT por Olando Tempobono. ( e-mail: orlando@mk.com.br )
Transcrevido para esta HP por JOSE
VALTER, ( e-mail: jvpa@josevalter.com.br )
|