% Como se tornar um hacker
Copyright © 2001 Eric S. Raymond.
Revision History | ||
---|---|---|
Revision 1.52 | 03 Jasnuary 2020 | esr |
Go makes a place as a plausible learning language, displacing Java. | ||
Revision 1.51 | 06 October 2017 | esr |
Link to "Things Every Hacker Once Knew." Mention USB-stick distros. Many updated translation links. | ||
Revision 1.50 | 19 July 2015 | esr |
Added link to "Let's Go Larval". | ||
Revision 1.49 | 21 November 2014 | esr |
Added link to "How To Learn Hacking". | ||
Revision 1.48 | 19 June 2014 | esr |
freshmeat/freecode is dead, alas. | ||
Revision 1.47 | 20 May 2014 | esr |
Fix up various stale links. Join a hackerspace! | ||
Revision 1.46 | 25 Sep 2013 | esr |
Add micropatronage explanation and gittip link. Why you should not ask me for advice on how to get started. | ||
Revision 1.45 | 12 May 2013 | esr |
Open Solaris isn't, and Unity screwed the pooch. | ||
Revision 1.44 | 20 May 2012 | esr |
Updated the critique of Java. | ||
Revision 1.43 | 07 Feb 2011 | esr |
Python passed Perl in popularity in 2010. | ||
Revision 1.42 | 22 Oct 2010 | esr |
Added "Historical note". | ||
Revision 1.40 | 3 Nov 2008 | esr |
Link fixes. | ||
Revision 1.39 | 14 Aug 2008 | esr |
Link fixes. | ||
Revision 1.38 | 8 Jan 2008 | esr |
Deprecate Java as a language to learn early. | ||
Revision 1.37 | 4 Oct 2007 | esr |
Recommend Ubuntu as a Unix distro for newbies. |
Sumário
- Por que este documento?
- O que é um hacker?
-
O mundo está cheio de problemas fascinantes esperando para serem resolvidos.
- Nenhum problema deve ser resolvido duas vezes.
- Tédio e labuta são maus.
- Liberdade é boa.
-
Atitude não substitui competência.
-
Habilidades básicas de hackers
-
Aprenda a programar.
- Obtenha um dos Unixes de código aberto e aprenda a usá-lo e executá-lo.
- Aprenda a usar a World Wide Web e escrever HTML.
-
Se você não possui um inglês funcional, aprenda-o.
-
Status na cultura hacker
-
Escreva software de código aberto
- Ajude a testar e depurar software de código aberto
- Publique informações úteis
- Ajude a manter a infraestrutura funcionando
-
Sirva a própria cultura hacker
-
A Conexão Hacker / Nerd
- Pontos por estilo
- Nota histórica: hackers, código aberto e software livre
- Outros recursos
- Perguntas frequentes
Por que este documento?
Como editor do arquivo de jargões e autor de alguns outros documentos conhecidos de natureza semelhante, muitas vezes recebo solicitações de e-mail de entusiastas da rede, perguntando (de fato) “como posso aprender a ser um hacker bruxo?”. Em 1996, notei que não parecia haver outras perguntas frequentes ou documentos da web que abordassem essa questão vital, então comecei esta. Muitos hackers agora o consideram definitivo, e suponho que isso significa que é. Ainda assim, não pretendo ser a autoridade exclusiva sobre esse tópico; se você não gostar do que lê aqui, escreva o seu.
Se você estiver lendo um instantâneo deste documento offline, a versão atual está em http://catb.org/~esr/faqs/hacker-howto.html.
Nota: existe uma lista de perguntas frequentes no final deste documento. Por favor, leia estas duas vezes antes de me enviar qualquer pergunta sobre este documento.
Várias traduções deste documento estão disponíveis: árabe bielorrusso búlgaro chinês, tcheco. Dinamarquês holandês estoniano francês alemão, grego húngaro, italiano hebraico, japonês lituano norueguês, persa polonês português (brasileiro), romeno espanhol, turco e sueco. Observe que, como este documento muda ocasionalmente, eles podem estar desatualizados em vários graus.
O diagrama de cinco pontos em nove quadrados que decora este documento é chamado de planador. É um padrão simples, com algumas propriedades surpreendentes em uma simulação matemática chamada Life, que fascina os hackers há muitos anos. Eu acho que faz um bom emblema visual de como são os hackers - abstratos, a princípio um pouco misteriosos, mas uma porta de entrada para um mundo inteiro com uma lógica intrincada própria. Leia mais sobre o emblema do planador aqui.
Se você achar este documento valioso, me apoie no Patreon ou no SubscribeStar. E considere também apoiar outros hackers que produziram código que você usa e valoriza via Loadsharers. Muitas doações pequenas, mas contínuas, somam-se rapidamente e podem liberar as pessoas que lhe deram presentes de seu trabalho para criar mais valor.
O que é um hacker?
O arquivo de jargões contém várias definições do termo “hacker”, a maioria relacionada à capacidade técnica e ao prazer em resolver problemas e superar limites. Se você quer saber como se tornar um hacker, apenas dois são realmente relevantes.
Existe uma comunidade, uma cultura compartilhada, de programadores especializados e assistentes de rede que traçam sua história desde décadas até os primeiros minicomputadores que compartilham o tempo e os primeiros experimentos da ARPAnet. Os membros dessa cultura originaram o termo “hacker”. Os hackers criaram a Internet. Os hackers fizeram do sistema operacional Unix o que é hoje. Os hackers fazem a World Wide Web funcionar. Se você faz parte dessa cultura, se você contribuiu com ela e outras pessoas sabem quem você é e o chamam de hacker, você é um hacker.
A mentalidade dos hackers não se limita a essa cultura de hackers de software. Existem pessoas que aplicam a atitude hacker a 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. Os hackers de software reconhecem esses espíritos afins em outros lugares e também podem chamá-los de “hackers” - e alguns afirmam que a natureza do hacker é realmente independente do meio em que o hacker trabalha. Mas no restante deste documento, focaremos nas habilidades e atitudes de hackers de software e as tradições da cultura compartilhada que originou o termo ‘hacker’.
Há outro grupo de pessoas que se chamam de hackers em voz alta, mas não o são. São pessoas (principalmente adolescentes do sexo masculino) que se divertem ao invadir computadores e enganar o sistema telefônico. Hackers de verdade chamam essas pessoas de ‘crackers’ e não querem nada com elas. Os hackers de verdade pensam que os crackers são preguiçosos, irresponsáveis e não muito inteligentes, e o objeto de que ser capaz de quebrar a segurança não faz de você um hacker mais do que ser capaz de ligar carros faz de você ser um engenheiro automotivo. Infelizmente, muitos jornalistas e escritores foram enganados ao usar a palavra “hacker” para descrever crackers; isso irrita hackers reais sem fim.
A diferença básica é esta: hackers constroem coisas, crackers as quebram.
Se você quer ser um hacker, continue lendo. Se você quer ser um idiota, leia o grupo de notícias alt.2600 e prepare-se para fazer cinco a dez no slammer depois de descobrir que você não é tão inteligente quanto pensa. E é tudo o que vou dizer sobre biscoitos.
A atitude do hacker
- O mundo está cheio de problemas fascinantes esperando para serem resolvidos.
- Nenhum problema deve ser resolvido duas vezes.
- Tédio e labuta são maus.
- Liberdade é boa.
- Atitude não substitui competência. Os hackers resolvem problemas e constroem coisas, e acreditam na liberdade e na ajuda mútua voluntária. Para ser aceito como hacker, você deve se comportar como se tivesse esse tipo de atitude. E para se comportar como se tivesse uma atitude, você precisa realmente acreditar nela.
Mas se você pensa em cultivar atitudes de hackers como apenas uma maneira de obter aceitação na cultura, você não entenderá. Tornar-se o tipo de pessoa que acredita nessas coisas é importante para você - para ajudá-lo a aprender e mantê-lo motivado. Como em todas as artes criativas, a maneira mais eficaz de se tornar um mestre é imitar a mentalidade dos mestres - não apenas intelectualmente, mas também emocionalmente.
Ou, como o poema Zen moderno a seguir diz:
Para seguir o caminho:
olhe para o mestre,
siga o mestre,
ande com o mestre,
veja através do mestre,
tornar-se o mestre.
Então, se você quer ser um hacker, repita as seguintes coisas até acreditar.
1. O mundo está cheio de problemas fascinantes esperando para serem resolvidos.
Ser um hacker é muito divertido, mas é um tipo de diversão que exige muito esforço. O esforço requer motivação. Atletas de sucesso obtêm sua motivação de um tipo de prazer físico em fazer seu corpo funcionar, em ultrapassar seus próprios limites físicos. Da mesma forma, para ser um hacker, é necessário ter uma emoção básica ao resolver problemas, aprimorar suas habilidades e exercitar sua inteligência.
Se você não é o tipo de pessoa que se sente assim naturalmente, precisará se tornar um para se tornar um hacker. Caso contrário, você descobrirá que sua energia de hackers é minada por distrações como sexo, dinheiro e aprovação social.
(Você também deve desenvolver um tipo de fé em sua própria capacidade de aprendizado - uma crença de que, embora você não saiba tudo o que precisa para resolver um problema, se você resolver apenas um pedaço dele e aprender com isso, você ‘ Eu aprenderei o suficiente para resolver a próxima peça - e assim por diante, até terminar.)
2. Nenhum problema deve ser resolvido duas vezes.
Cérebros criativos são um recurso valioso e limitado. Eles não devem ser desperdiçados em reinventar a roda quando houver tantos problemas fascinantes esperando por lá.
Para se comportar como um hacker, você precisa acreditar que o tempo de reflexão de outros hackers é precioso - tanto que é quase um dever moral compartilhar informações, resolver problemas e distribuir as soluções apenas para que outros hackers possam resolver novos problemas. problemas em vez de ter que reiterar perpetuamente os antigos.
Observe, no entanto, que “nenhum problema deve ser resolvido duas vezes”. não implica que você deva considerar sagradas todas as soluções existentes ou que exista apenas uma solução certa para um determinado problema. Frequentemente, aprendemos muito sobre o problema que não conhecíamos antes estudando o primeiro corte em uma solução. Não há problema em decidir com frequência que podemos fazer melhor. O que não está certo são as barreiras técnicas, legais ou institucionais artificiais (como código fonte fechado) que impedem que uma boa solução seja reutilizada e forçam as pessoas a reinventarem as rodas.
(Você não precisa acreditar que é obrigado a doar todo o seu produto criativo, embora os hackers sejam os que mais respeitem os outros hackers. É consistente com os valores dos hackers vender o suficiente para mantê-lo em comida, aluguel e computadores. Não há problema em usar suas habilidades de hacker para sustentar uma família ou até ficar rico, desde que você não esqueça sua lealdade à sua arte e a seus colegas hackers.
3. Tédio e labuta são maus.
Os hackers (e as pessoas criativas em geral) nunca devem se entediar ou ter que se dedicar a trabalhos repetitivos e estúpidos, porque quando isso acontece, significa que eles não estão fazendo o que apenas eles podem fazer - resolver novos problemas. Esse desperdício machuca todo mundo. Portanto, o tédio e a labuta não são apenas desagradáveis, mas também maus.
Para se comportar como um hacker, você precisa acreditar nisso o suficiente para querer automatizar os bits chatos o máximo possível, não apenas para você, mas para todos os outros (especialmente outros hackers).
(Há uma exceção aparente a isso. Os hackers às vezes fazem coisas que podem parecer repetitivas ou entediantes para um observador como um exercício de limpeza da mente, ou para adquirir uma habilidade ou ter algum tipo específico de experiência que você não pode ter de outra maneira. Mas isso é por opção - ninguém que possa pensar deve ser forçado a uma situação que os aborrece.)
4. Liberdade é boa.
Os hackers são naturalmente anti-autoritários. Qualquer pessoa que possa lhe dar ordens pode impedi-lo de resolver qualquer problema pelo qual você esteja fascinado - e, dada a maneira como as mentes autoritárias funcionam, geralmente encontrará algumas razões terrivelmente estúpidas para fazê-lo. Portanto, a atitude autoritária deve ser combatida onde quer que você a encontre, para não sufocar você e outros hackers.
(Isso não é o mesmo que combater todas as autoridades. As crianças precisam ser guiadas e os criminosos coibidos. Um hacker pode concordar em aceitar alguns tipos de autoridade para obter algo que deseja mais do que o tempo que passa seguindo ordens. pechincha limitada e consciente; o tipo de rendição pessoal que os autoritários desejam não está em oferta.)
Autoritários prosperam na censura e no sigilo. E eles desconfiam da cooperação voluntária e do compartilhamento de informações - eles só gostam da ‘cooperação’ que controlam. Portanto, para se comportar como um hacker, você deve desenvolver uma hostilidade instintiva à censura, sigilo e uso de força ou engano para obrigar adultos responsáveis. E você tem que estar disposto a agir de acordo com essa crença.
5. A atitude não substitui a competência.
Para ser um hacker, você precisa desenvolver algumas dessas atitudes. Mas lidar apenas com uma atitude não fará de você um hacker, assim como não será um atleta campeão ou uma estrela do rock. Tornar-se um hacker exigirá inteligência, prática, dedicação e trabalho duro.
Portanto, você deve aprender a desconfiar da atitude e respeitar a competência de todo tipo. Os hackers não permitem que os postadores percam seu tempo, mas eles adoram a competência - especialmente a competência em hackers, mas a competência em qualquer coisa é valorizada. A competência em habilidades exigentes que poucos conseguem dominar é especialmente boa, e a competência em habilidades exigentes que envolvem agudeza mental, habilidade e concentração é melhor.
Se você reverenciar a competência, gostará de desenvolvê-la em si mesmo - o trabalho e a dedicação se tornarão uma espécie de jogo intenso, em vez de uma labuta. Essa atitude é vital para se tornar um hacker.
4. Liberdade é boa.
Os hackers são naturalmente anti-autoritários. Qualquer pessoa que possa lhe dar ordens pode impedi-lo de resolver qualquer problema pelo qual você esteja fascinado - e, dada a maneira como as mentes autoritárias funcionam, geralmente encontrará algumas razões terrivelmente estúpidas para fazê-lo. Portanto, a atitude autoritária deve ser combatida onde quer que você a encontre, para não sufocar você e outros hackers.
(Isso não é o mesmo que combater todas as autoridades. As crianças precisam ser guiadas e os criminosos coibidos. Um hacker pode concordar em aceitar alguns tipos de autoridade para obter algo que deseja mais do que o tempo que passa seguindo ordens. pechincha limitada e consciente; o tipo de rendição pessoal que os autoritários desejam não está em oferta.)
Autoritários prosperam na censura e no sigilo. E eles desconfiam da cooperação voluntária e do compartilhamento de informações - eles só gostam da ‘cooperação’ que controlam. Portanto, para se comportar como um hacker, você deve desenvolver uma hostilidade instintiva à censura, sigilo e uso de força ou engano para obrigar adultos responsáveis. E você tem que estar disposto a agir de acordo com essa crença.
5. A atitude não substitui a competência.
Para ser um hacker, você precisa desenvolver algumas dessas atitudes. Mas lidar apenas com uma atitude não fará de você um hacker, assim como não será um atleta campeão ou uma estrela do rock. Tornar-se um hacker exigirá inteligência, prática, dedicação e trabalho duro.
Portanto, você deve aprender a desconfiar da atitude e respeitar a competência de todo tipo. Os hackers não permitem que os postadores percam seu tempo, mas eles adoram a competência - especialmente a competência em hackers, mas a competência em qualquer coisa é valorizada. A competência em habilidades exigentes que poucos conseguem dominar é especialmente boa, e a competência em habilidades exigentes que envolvem agudeza mental, habilidade e concentração é melhor.
Se você reverenciar a competência, gostará de desenvolvê-la em si mesmo - o trabalho e a dedicação se tornarão uma espécie de jogo intenso, em vez de uma labuta. Essa atitude é vital para se tornar um hacker.
Habilidades básicas de hackers
- Aprenda a programar.
- Obtenha um dos Unixes de código aberto e aprenda a usá-lo e executá-lo.
- Aprenda a usar a World Wide Web e escrever HTML.
- Se você não possui um inglês funcional, aprenda-o. A atitude do hacker é vital, mas as habilidades são ainda mais vitais. Atitude não substitui competência, e há um certo conjunto básico de habilidades que você precisa ter antes que qualquer hacker sonhe em chamá-lo de um.
Este kit de ferramentas muda lentamente ao longo do tempo, à medida que a tecnologia cria novas habilidades e torna obsoletas as antigas. Por exemplo, costumava incluir programação em linguagem de máquina e até recentemente envolvia HTML. Mas, no momento, inclui claramente o seguinte:
1. Aprenda a programar.
Essa, é claro, é a habilidade fundamental de hackers. Se você não conhece nenhuma linguagem de computador, recomendo começar com Python. É bem desenhado, bem documentado e relativamente gentil para iniciantes. Apesar de ser uma boa primeira língua, não é apenas um brinquedo; é muito poderoso, flexível e adequado para grandes projetos. Eu escrevi uma avaliação mais detalhada do Python. Bons tutoriais estão disponíveis no site do Python; há uma excelente terceirizada na Computer Science Circles.
Eu costumava recomendar Java como uma boa linguagem para aprender cedo, mas essa crítica mudou de idéia (procure por “As armadilhas do Java como primeira linguagem de programação”). Um hacker não pode, como eles dizem devastadoramente, “abordar a solução de problemas como um encanador em uma loja de ferragens”; você precisa saber o que os componentes realmente fazem. Agora acho que é melhor aprender C e Lisp primeiro, depois Java.
Talvez haja um ponto mais geral aqui. Se um idioma faz muito por você, pode ser simultaneamente uma boa ferramenta para produção e ruim para aprender. Não são apenas os idiomas que têm esse problema; estruturas de aplicativos da web como RubyOnRails, CakePHP, Django podem tornar muito fácil chegar a um tipo superficial de entendimento que o deixará sem recursos quando você precisar resolver um problema difícil ou até mesmo depurar a solução para uma solução fácil.
Uma alternativa melhor ao Java é aprender Go. Essa linguagem relativamente nova é muito fácil de migrar do Python, e aprendê-la fornece uma séria explicação sobre o possível próximo passo, que é aprender C. Além disso, uma das incógnitas sobre os próximos anos é até que ponto o Go pode na verdade, substitua C como uma linguagem de programação de sistemas. Existe um futuro possível em que isso acontece em grande parte da faixa tradicional de C.
Se você entrar em programação séria, terá que aprender C, a linguagem principal do Unix. C ++ está intimamente relacionado a C; se você conhece um, aprender o outro não será difícil. Entretanto, nenhum dos idiomas é bom para tentar aprender como o primeiro. E, na verdade, quanto mais você evitar a programação em C, mais produtivo será.
C é muito eficiente e poupa muito os recursos da sua máquina. Infelizmente, C obtém essa eficiência exigindo que você faça muito gerenciamento de baixo nível de recursos (como memória) manualmente. Todo esse código de baixo nível é complexo e propenso a erros, e consumirá grandes quantidades de seu tempo na depuração. Com as máquinas de hoje tão poderosas quanto são, geralmente é uma troca ruim - é mais inteligente usar uma linguagem que usa o tempo da máquina com menos eficiência, mas o seu tempo com muito mais eficiência. Assim, Python.
Outros idiomas de particular importância para hackers incluem Perl e LISP. Vale a pena aprender Perl por razões práticas; é muito usado para páginas da web ativas e administração do sistema, para que, mesmo que você nunca escreva Perl, aprenda a lê-lo. Muitas pessoas usam o Perl da maneira que sugiro que você use o Python, para evitar a programação C em trabalhos que não exigem a eficiência da máquina de C. Você precisará entender o código deles.
Vale a pena aprender o LISP por um motivo diferente - a profunda experiência de iluminação que você terá quando finalmente obtê-la. Essa experiência o tornará um programador melhor pelo resto de seus dias, mesmo que você nunca use muito o LISP. (Você pode obter alguma experiência inicial com o LISP com bastante facilidade escrevendo e modificando os modos de edição para o editor de texto Emacs ou plug-ins Script-Fu para o GIMP.)
Na verdade, é melhor aprender todos os cinco sobre Python, C / C ++, Perl e LISP. Além de serem as linguagens de hackers mais importantes, elas representam abordagens muito diferentes da programação, e cada uma delas educará você de maneiras valiosas. O Go não chega ao ponto em que pode ser incluído entre as mais importantes linguagens de hackers, mas parece direcionado para esse status.
Mas esteja ciente de que você não alcançará o nível de habilidade de um hacker ou mesmo de um programador simplesmente acumulando linguagens - você precisa aprender a pensar sobre problemas de programação de maneira geral, independente de qualquer linguagem. Para ser um hacker de verdade, você precisa chegar ao ponto em que pode aprender um novo idioma em dias, relacionando o que há no manual com o que você já sabe. Isso significa que você deve aprender vários idiomas muito diferentes.
Não posso dar instruções completas sobre como aprender a programar aqui - é uma habilidade complexa. Mas posso garantir que livros e cursos não servirão - muitos, talvez a maioria dos melhores hackers sejam autodidatas. Você pode aprender os recursos da linguagem - pedaços de conhecimento - nos livros, mas a mentalidade que transforma esse conhecimento em habilidade viva pode ser aprendida apenas pela prática e aprendizado. O que fará é (a) ler código e (b) escrever código.
Peter Norvig, um dos principais hackers do Google e co-autor do livro de texto mais usado sobre IA, escreveu um excelente ensaio chamado Teach Yourself Programming in Ten Years. Sua “receita para o sucesso da programação” merece atenção cuidadosa.
Aprender a programar é como aprender a escrever uma boa linguagem natural. A melhor maneira de fazer isso é ler algumas coisas escritas por mestres do formulário, escrever algumas coisas você mesmo, ler muito mais, escrever um pouco mais, ler muito mais, escrever um pouco mais … e repetir até que sua escrita comece para desenvolver o tipo de força e economia que você vê em seus modelos.
Eu tive mais a dizer sobre esse processo de aprendizado em Como aprender a hackear. É um conjunto simples de instruções, mas não é fácil.
Encontrar um bom código para leitura costumava ser difícil, porque havia poucos programas grandes disponíveis na fonte para os hackers novatos lerem e mexerem. Isso mudou drasticamente; software de código aberto, ferramentas de programação e sistemas operacionais (todos criados por hackers) estão agora amplamente disponíveis. O que me leva perfeitamente ao nosso próximo tópico …
2. Obtenha um dos Unixes de código aberto e aprenda a usá-lo e executá-lo.
Suponho que você tenha um computador pessoal ou possa ter acesso a um. (Reserve um momento para apreciar o quanto isso significa. A cultura hacker originalmente evoluiu quando os computadores eram tão caros que as pessoas não os possuíam.) O passo mais importante que qualquer novato pode dar para adquirir habilidades hackers é obter uma cópia do Linux ou um dos BSD-Unixes, instale-o em uma máquina pessoal e execute-o.
Sim, existem outros sistemas operacionais no mundo além do Unix. Mas eles são distribuídos em binário - você não pode ler o código e não pode modificá-lo. Tentar aprender a hackear em uma máquina Microsoft Windows ou em qualquer outro sistema de código fechado é como tentar aprender a dançar enquanto usava um corpo.
No Mac OS X, é possível, mas apenas parte do sistema é de código aberto - é provável que você atinja muitas paredes e tenha cuidado para não desenvolver o mau hábito de depender do código de propriedade da Apple. Se você se concentrar no Unix sob o capô, poderá aprender algumas coisas úteis.
Unix é o sistema operacional da Internet. Embora você possa aprender a usar a Internet sem conhecer o Unix, não pode ser um hacker da Internet sem entender o Unix. Por esse motivo, a cultura hacker hoje é fortemente centrada no Unix. (Isso nem sempre foi verdade, e alguns hackers antigos ainda não estão satisfeitos com isso, mas a simbiose entre o Unix e a Internet se tornou forte o suficiente para que nem o músculo da Microsoft pareça capaz de prejudicá-lo seriamente).
Então, abra um Unix - eu gosto do Linux, mas existem outras maneiras (e sim, você pode executar o Linux e o Microsoft Windows na mesma máquina). Aprenda. Executá-lo. Mexa com ele. Fale com a Internet com ele. Leia o código. Modifique o código. Você obterá melhores ferramentas de programação (incluindo C, LISP, Python e Perl) do que qualquer sistema operacional da Microsoft pode sonhar em hospedar, você se divertirá e absorverá mais conhecimento do que imagina estar aprendendo até você olha para trás como um hacker mestre.
Para saber mais sobre como aprender o Unix, consulte The Loginataka. Você também pode querer dar uma olhada na The Art Of Unix Programming.
O blog Let’s Go Larval! é uma janela do processo de aprendizado de um novo usuário do Linux que eu acho extraordinariamente lúcido e útil. O post Como Aprendi o Linux é um bom ponto de partida.
Para colocar suas mãos em um Linux, consulte o Linux Online! local; você pode fazer o download a partir daí ou (melhor idéia) encontrar um grupo de usuários Linux local para ajudá-lo na instalação.
Durante os primeiros dez anos de vida deste HOWTO, relatei que, do ponto de vista de um novo usuário, todas as distribuições Linux são quase equivalentes. Mas em 2006-2007, surgiu uma melhor opção: Ubuntu. Enquanto outras distros têm suas próprias áreas de força, o Ubuntu é de longe o mais acessível para iniciantes no Linux. Cuidado, no entanto, com a horrível e quase inutilizável interface de desktop “Unity” que o Ubuntu introduziu como padrão alguns anos depois; as variantes Xubuntu ou Kubuntu são melhores.
Você pode encontrar ajuda e recursos do BSD Unix em www.bsd.org.
Uma boa maneira de mergulhar na água é inicializar o que os fãs do Linux chamam de CD ao vivo, uma distribuição que roda inteiramente de um CD ou pendrive sem precisar modificar o disco rígido. Isso pode ser lento, porque os CDs são lentos, mas é uma maneira de examinar as possibilidades sem ter que fazer nada drástico.
Eu escrevi uma cartilha sobre o básico do Unix e da Internet.
Eu costumava recomendar contra a instalação do Linux ou BSD como um projeto solo, se você é um novato. Hoje em dia, os instaladores ficaram bons o suficiente para que seja possível fazê-lo por conta própria, mesmo para um novato. No entanto, ainda recomendo entrar em contato com o grupo de usuários locais do Linux e pedir ajuda. Não pode machucar e pode facilitar o processo.
3. Aprenda a usar a World Wide Web e escrever HTML.
A maioria das coisas que a cultura hacker construiu faz seu trabalho fora da vista, ajudando a administrar fábricas, escritórios e universidades sem qualquer impacto óbvio na vida dos não-hackers. A Web é a única grande exceção, o enorme brinquedo hacker brilhante que até os políticos admitem ter mudado o mundo. Por esse motivo sozinho (e muitos outros bons), você precisa aprender a trabalhar na Web.
Isso não significa apenas aprender a dirigir um navegador (qualquer pessoa pode fazer isso), mas aprender a escrever HTML, a linguagem de marcação da Web. Se você não sabe programar, escrever HTML ensinará alguns hábitos mentais que ajudarão você a aprender. Então construa uma página inicial.
Mas apenas ter uma página inicial não é nem de longe suficiente para fazer de você um hacker. A Web está cheia de home pages. A maioria deles é inútil, lodo de conteúdo zero - lodo de aparência muito atraente, lembre-se, mas lodo da mesma forma (para mais informações, consulte 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 tópico.
4. Se você não possui um inglês funcional, aprenda-o.
Como eu, americano e nativo em inglês, já relutei em sugerir isso, para que não seja considerado uma espécie de imperialismo cultural. Mas vários falantes nativos de outras línguas me pediram para salientar que o inglês é a língua de trabalho da cultura hacker e da Internet, e que você precisará saber para funcionar na comunidade hacker.
Por volta de 1991, aprendi que muitos hackers que têm o inglês como segunda língua o usam em discussões técnicas, mesmo quando compartilham uma língua de nascimento; Foi-me relatado na época que o inglês tem um vocabulário técnico mais rico do que qualquer outro idioma e, portanto, é simplesmente uma ferramenta melhor para o trabalho. Por razões semelhantes, traduções de livros técnicos escritos em inglês geralmente são insatisfatórias (quando são feitas).
Linus Torvalds, um finlandês, comenta seu código em inglês (aparentemente nunca lhe ocorreu fazer o contrário). Sua fluência em inglês tem sido um fator importante em sua capacidade de recrutar uma comunidade mundial de desenvolvedores para Linux. É um exemplo que vale a pena seguir.
Ser um falante nativo de inglês não garante que você tenha habilidades de idioma boas o suficiente para funcionar como hacker. Se sua redação é semi-alfabetizada, não-gramatical e cheia de erros de ortografia, muitos hackers (inclusive eu) tendem a ignorá-lo. Embora a escrita desleixada não signifique invariavelmente o pensamento desleixado, geralmente achamos a correlação forte - e não temos utilidade para pensadores desleixados. Se você ainda não pode escrever com competência, aprenda.
Status na cultura hacker
- Escreva software de código aberto
- Ajude a testar e depurar software de código aberto
- Publique informações úteis
- Ajude a manter a infraestrutura funcionando
- Sirva a própria cultura hacker Como a maioria das culturas sem uma economia monetária, o hacker tem 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 apenas seus colegas técnicos ou superiores normalmente estão equipados para julgar.
Assim, quando você joga o jogo dos hackers, aprende a manter a pontuação principalmente pelo que os outros hackers pensam de sua habilidade (é por isso que você não é realmente um hacker até que outros hackers o chamem consistentemente). Esse fato é obscurecido pela imagem do hacking como trabalho solitário; também por um tabu hacker-cultural (decaindo gradualmente desde o final dos anos 90, mas ainda potente) contra admitir que o ego ou a validação externa estão envolvidos na motivação de alguém.
Especificamente, hackerdom é o que os antropólogos chamam de cultura de presentes. Você ganha status e reputação nela, não dominando outras pessoas, nem sendo bonita, nem tendo coisas que as outras pessoas querem, mas entregando as coisas. Especificamente, doando seu tempo, sua criatividade e os resultados de sua habilidade.
Existem basicamente cinco tipos de coisas que você pode fazer para ser respeitado pelos hackers:==
1. Escreva software de código aberto
O primeiro (o mais central e o mais tradicional) é escrever programas que outros hackers consideram divertidos ou úteis e distribuir as fontes do programa para toda a cultura hacker a ser usada.
(Costumávamos chamar esses trabalhos de “software livre”, mas isso confundia muitas pessoas que não sabiam exatamente o que “livre” deveria significar. Atualmente, muitos de nós preferem o termo “software livre”).
Os semideuses mais reverenciados de Hackerdom são pessoas que escreveram programas grandes e capazes, que atendiam a uma necessidade generalizada e os denunciavam, para que agora todos os usem.
Mas há um bom ponto histórico aqui. Embora os hackers sempre tenham olhado para os desenvolvedores de código aberto entre eles como o núcleo mais difícil da nossa comunidade, antes de meados dos anos 90, a maioria dos hackers na maioria das vezes trabalhava em código fechado. Isso ainda era verdade quando escrevi a primeira versão deste HOWTO em 1996; levou a integração do software de código aberto depois de 1997 para mudar as coisas. Hoje, “a comunidade hacker” e “desenvolvedores de código aberto” são duas descrições para o que é essencialmente a mesma cultura e população - mas vale lembrar que nem sempre foi assim. (Para mais informações, consulte a seção “Nota histórica: hackers, código aberto e software livre”.)
2. Ajude a testar e depurar software de código aberto
Eles também servem quem suporta e depura software de código aberto. Nesse mundo imperfeito, inevitavelmente passaremos a maior parte do tempo de desenvolvimento de software na fase de depuração. É por isso que qualquer autor de código aberto que esteja pensando lhe dirá que bons testadores beta (que sabem descrever claramente os sintomas, localizam bem os problemas, podem tolerar bugs em uma versão rápida e desejam aplicar algumas rotinas simples de diagnóstico) são vale o seu peso em rubis. Mesmo um deles pode fazer a diferença entre uma fase de depuração que é um pesadelo prolongado e exaustivo e uma que é apenas um incômodo salutar.
Se você é iniciante, tente encontrar um programa em desenvolvimento de seu interesse e seja um bom testador beta. Há uma progressão natural: ajudar os programas de teste, ajudar a depurá-los e ajudar a modificá-los. Você aprenderá muito dessa maneira e gerará um bom karma com pessoas que o ajudarão mais tarde.
3. Publicar informações úteis
Outra coisa boa é coletar e filtrar informações úteis e interessantes em páginas da web ou documentos como listas de perguntas frequentes (FAQ) e disponibilizá-las em geral.
Os mantenedores das principais perguntas frequentes técnicas têm quase tanto respeito quanto os autores de código aberto.
4. Ajude a manter a infraestrutura funcionando
A cultura hacker (e o desenvolvimento de engenharia da Internet, nesse caso) é administrada por voluntários. Há muito trabalho necessário, mas sem glamour, que é necessário para continuar - administrando listas de discussão, moderando grupos de notícias, mantendo grandes sites de arquivos de software, desenvolvendo RFCs e outros padrões técnicos.
As pessoas que fazem esse tipo de coisa são muito respeitadas, porque todo mundo sabe que esses trabalhos são enormes e não são tão divertidos quanto brincar com código. Fazê-los mostra dedicação.
5. Servir a própria cultura hacker
Por fim, você pode servir e propagar a própria cultura (escrevendo, por exemplo, uma cartilha precisa sobre como se tornar um hacker :-)). Isso não é algo que você estará posicionado a fazer até estar por um tempo e se tornar conhecido por uma das quatro primeiras coisas.
A cultura hacker não tem líderes exatamente, mas possui heróis da cultura e anciãos tribais, historiadores e porta-vozes. Quando estiver nas trincheiras por tempo suficiente, você poderá se transformar em uma delas. Cuidado: os hackers desconfiam do ego flagrante em seus ancestrais tribais, de modo que alcançar visivelmente esse tipo de fama é perigoso. Em vez de lutar por isso, você deve se posicionar para que caia no seu colo e, em seguida, seja modesto e agradável com seu status.
A Conexão Hacker/Nerd
Ao contrário do mito popular, você não precisa ser um nerd para ser um hacker. Isso ajuda, no entanto, e muitos hackers são de fato nerds. Ser um pária social ajuda você a se concentrar nas coisas realmente importantes, como pensar e invadir.
Por esse motivo, muitos hackers adotaram o rótulo de ‘nerd’ como uma insígnia de orgulho - é uma maneira de declarar sua independência das expectativas sociais normais (além de gostar de outras coisas, como ficção científica e jogos de estratégia que costumam ser um hacker). O termo ‘nerd’ costumava ser usado dessa maneira nos anos 90, quando ‘nerd’ era um pejorativo moderado e ‘nerd’, um tanto mais severo; pouco depois de 2000, eles mudaram de lugar, pelo menos na cultura popular dos EUA, e agora existe uma cultura significativa de orgulho nerd entre as pessoas que não são técnicas.
Se você consegue se concentrar o suficiente em hackers para ser bom nisso e ainda ter uma vida, tudo bem. Hoje é muito mais fácil do que quando eu era novato na década de 1970; a cultura mainstream é muito mais amigável para os tecno-nerds agora. Há até um número crescente de pessoas que percebem que os hackers geralmente são amantes e cônjuges de alta qualidade.
Se você é atraído por hackers porque não tem vida, tudo bem - pelo menos você não terá problemas para se concentrar. Talvez você consiga uma vida mais tarde.
Pontos por estilo
Novamente, para ser um hacker, você deve entrar na mentalidade do hacker. Há algumas coisas que você pode fazer quando não está em um computador que parece ajudar. Eles não substituem os hackers (nada é), mas muitos hackers os fazem e sentem que se conectam de alguma maneira básica com a essência dos hackers.
-
Aprenda a escrever bem sua língua nativa. Embora seja um estereótipo comum que os programadores não podem escrever, um número surpreendente de hackers (incluindo todos os mais bem-sucedidos que eu conheço) são escritores muito capazes.
-
Leia ficção científica. Vá para convenções de ficção científica (uma boa maneira de conhecer hackers e proto-hackers).
-
Entre em um espaço de hackers e crie coisas (outra boa maneira de conhecer hackers e proto-hackers).
-
Treine em forma de artes marciais. O tipo de disciplina mental necessária para as artes marciais parece ser similar em aspectos importantes ao que os hackers fazem. As formas mais populares entre os hackers são definitivamente as artes asiáticas de mãos vazias, como o Tae Kwon Do, várias formas de karatê, Kung Fu, Aikido ou Ju Jitsu. Esgrima ocidental e artes de espada asiáticas também têm seguidores visíveis. Em locais onde é legal, o tiro de pistola tem aumentado em popularidade desde o final dos anos 90. As artes marciais mais hackers são aquelas que enfatizam disciplina mental, consciência relaxada e controle preciso, em vez de força bruta, atletismo ou resistência física.
-
Estude uma disciplina de meditação real. O eterno favorito entre os hackers é o Zen (importante, é possível se beneficiar do Zen sem adquirir uma religião ou descartar uma que você já possui). Outros estilos também podem funcionar, mas tome cuidado para escolher um que não exija que você acredite em coisas malucas.
-
Desenvolva um ouvido analítico para a 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.
Quanto mais dessas coisas você já faz, maior a probabilidade de você ser material hacker natural. Por que essas coisas em particular não são completamente claras, mas estão ligadas a uma mistura de habilidades do lado esquerdo e do lado direito do cérebro que parece ser importante; os hackers precisam ser capazes de raciocinar logicamente e sair da lógica aparente de um problema a qualquer momento.
Trabalhe tão intensamente quanto você brinca e brinque tão intensamente quanto você trabalha. Para os verdadeiros hackers, as fronteiras entre “brincar”, “trabalhar”, “ciência” e “arte” tendem a desaparecer ou a se fundir em uma brincadeira criativa de alto nível. Além disso, não se contente com uma gama limitada de habilidades. Embora a maioria dos hackers se autodescreva como programadores, é muito provável que sejam mais do que competentes em várias habilidades relacionadas - administração de sistemas, web design e solução de problemas de hardware de PC são comuns. Um hacker que é administrador de sistemas, por outro lado, provavelmente é bastante habilidoso em programação de scripts e design web. Os hackers não fazem as coisas pela metade; se eles investem em alguma habilidade, tendem a ficar muito bons nisso.
Finalmente, algumas coisas para não fazer.
Não use um ID de usuário ou nome de tela bobo e grandioso.
Não entre em chamas na Usenet (ou em qualquer outro lugar).
Não se chame de ‘cyberpunk’ e não perca seu tempo com quem o fizer.
Não poste ou escreva por e-mail repleto de erros de ortografia e gramática incorreta.
A única reputação que você ganhará ao fazer qualquer uma dessas coisas é como uma merda. Os hackers têm memórias longas - você pode levar anos para enfrentar seus erros o suficiente para ser aceito.
O problema com nomes de tela ou alças merece alguma amplificação. Ocultar sua identidade por trás de um identificador é um comportamento juvenil e tolo, característico de crackers, warez d00dz e outras formas de vida inferiores. Os hackers não fazem isso; eles têm orgulho do que fazem e querem que isso seja associado aos seus nomes reais. Então, se você tem uma alça, solte-a. Na cultura hacker, isso apenas o marcará como um perdedor.