(VERSÃO PORTUGUESA)
Competências Básicas Hacking
1. Saiba como fazer o programa.
2. Obter um dos open-source Unixes e aprender a usar e executá-lo.
3. Saiba como usar a World Wide Web e escrever HTML.
4. Se você não tiver funcional Inglês, aprendê-la.
A atitude hacker é vital, mas habilidades são ainda mais vitais. Atitude não é substituto para competência, e não há um manual básico de certas habilidades que você tem que ter antes de qualquer hacker irá chamar-te de um sonho.
Este toolkit muda lentamente ao longo do tempo à medida que a tecnologia gera novas competências e torna obsoleta antigas. Por exemplo, é utilizado para incluir programação em linguagem máquina, e até recentemente não se envolver HTML. Mas agora ela bonita claramente inclui o seguinte:
1. Saiba como fazer o programa.
Isto, naturalmente, é a habilidade fundamental hacking. Se você não sabe qualquer computador línguas, eu recomendo começar com Python. É limpa concebidos, bem documentados, e relativamente ao tipo novatos. Apesar de ser uma boa primeira língua, não é apenas um brinquedo, mas é muito poderosa e flexível e bem adaptada para grandes projetos. Tenho escrito uma avaliação mais detalhada do Python. Bons tutoriais estão disponíveis no site Python.
Eu costumava recomendar a Java como uma boa linguagem para aprender mais cedo, mas esta crítica mudou minha mente (para a pesquisa "As Armadilhas do Java como uma primeira programação Língua" dentro dele). Um hacker não pode, pois devastatingly colocá-lo "abordagem de resolução de problemas como um encanador, em uma loja de material de construção", você tem que saber quais os componentes realmente fazer. Agora eu acho que é provavelmente melhor para aprender C e Lisp primeiro, depois Java.
Se você entrar em grave programação, você vai ter que aprender C, a principal língua do Unix. C + + é muito estreitamente relacionados com a C, se você conhece um, aprendendo a outra não vai ser difícil. Nem a língua é uma boa tentar uma aprendizagem como o primeiro, no entanto. E, realmente, mais você pode evitar programação em C, o mais produtivo você será.
C é muito eficiente, e muito poupadores de recursos da sua máquina. Infelizmente, a C que recebe eficiência, exigindo-lhe fazer um monte de baixo nível de gestão dos recursos (como memória) pela mão. Todos os que o baixo nível de código é complexo e bug-prone, e irá absorver enormes quantidades de seu tempo na depuração. Com máquinas de hoje são tão poderosos quanto eles, este é geralmente um mau tradeoff - é o mais esperto para usar uma linguagem que usa a máquina do tempo menos eficiente, mas o seu tempo muito mais eficiente. Assim, Python.
Outras línguas de especial importância para hackers incluem LISP e Perl. Perl vale aprendizado por razões práticas, é muito utilizado para páginas web e sistema ativo administração, de modo que, mesmo se você nunca escrever Perl você deveria aprender a lê-lo. Muitas pessoas usam Perl no caminho, sugiro que você deve usar Python, a fim de evitar programação C em empregos que não exigem C eficiência da máquina. Você precisará ser capaz de compreender o seu código.
LISP vale aprendizagem por um motivo diferente - a experiência profunda iluminação que você terá quando finalmente entendi. Essa experiência vai fazer de você um melhor programador para o resto de seus dias, mesmo se você nunca usar LISP própria um lote. (Você pode obter alguma experiência com início LISP facilmente por escrito e modificar modos de edição para o Emacs editor de texto, ou script-Fu plugins para o GIMP.)
É melhor, na verdade, para aprender todos os cinco do Python, C / C + +, Java, Perl, e LISP. Além de ser o mais importante hacking línguas, que representam muito diferentes abordagens para a programação, e cada um vai formar você no valiosas formas.
Mas estar ciente de que não irá atingir o nível de habilidade um hacker ou mesmo um simples programador simplesmente pela acumulação idiomas - você precisa aprender a pensar sobre problemas de programação de uma forma geral, independente de qualquer um idioma. Para ser um verdadeiro hacker, você precisa chegar ao ponto onde você pode aprender um novo idioma em dias, relacionando o que está no manual ao que você já conhece. Isto significa que você deve aprender várias línguas muito diferentes.
Não posso dar instruções completas sobre como aprender a programar aqui - é uma habilidade complexa. Mas posso te dizer que os livros e cursos não irá fazê-lo - muitos, talvez a maioria dos melhores hackers são auto-didata. Você pode aprender linguagem características - pedaços de conhecimento - a partir de livros, mas a mente-conjunto que faz com que o conhecimento em que vivem habilidade pode ser aprendido apenas pela prática e aprendizagem. O que vai fazer isso é (a) ler código e (b) escrever código.
Peter Norvig, que é um dos hackers e início do Google, o co-autor do livro mais usado no AI, escreveu um excelente ensaio chamado Teach Yourself Programação em dez anos. Sua "receita para o sucesso de programação" vale a pena uma atenção redobrada.
Aprender a programar é como aprender a escrever boa linguagem natural. A melhor maneira de o fazer é ler algumas coisas escritas por mestres da forma, escrever algumas coisas sozinho, ler muito mais, escrever um pouco mais, ler mais um monte, escrever mais algumas ... e repetir até que o seu escrito começa a desenvolver o tipo de força e economia que você vê em seus modelos.
Encontrar bom código para ler costumava ser difícil, porque havia poucas grandes programas disponíveis na fonte para frangote hackers para ler e mexer com. Isso mudou dramaticamente; software de fonte aberta, programação, ferramentas, e sistemas operacionais (todos construídos por hackers) estão amplamente disponíveis. O que me traz ordenadamente para o nosso próximo tema ...
2. Obter um dos open-source Unixes e aprender a usar e executá-lo.
Vou assumir que tem um computador pessoal ou pode ter acesso a um. (Tome um momento para perceber o quanto isso significa. A cultura hacker evoluiu originalmente para trás quando computadores eram tão caros que as pessoas não poderiam eles próprios.) O passo mais importante para qualquer newbie pode demorar adquirir habilidades hacker é pegar uma cópia do Linux ou um dos BSD-Unixes ou OpenSolaris, instalá-lo em uma máquina pessoal, e executá-lo.
Sim, existem outros sistemas operacionais no mundo além do Unix. Mas eles estão distribuídos em binária - você não pode ler o código, e você não pode modificá-la. Tentando aprender a cortar o Microsoft Windows em uma máquina ou em qualquer outro sistema de código fechado é como tentar aprender a dançar, enquanto vestindo um corpo expressos.
De acordo com o Mac OS X é possível, mas apenas uma parte do sistema é de código aberto - é provável que você acertar um monte de paredes, e você tem que ter cuidado para não desenvolver o mau hábito dos proprietários em função da Apple código. Se concentrar no Unix sob a capa você pode aprender algumas coisas úteis.
Unix é o sistema operacional da Internet. Embora você possa aprender a usar a Internet sem conhecer Unix, você não pode ser um hacker internet sem compreender Unix. Por esta razão, a cultura hacker é hoje muito fortemente Unix-centrada. (Isso nem sempre foi verdade, e alguns velhos tempos hackers ainda não estão satisfeitos com ele, mas a simbiose entre o Unix ea Internet tornou-se forte o suficiente para que mesmo músculo da Microsoft não parece capaz de dente-lo a sério.)
Então, traga-se um Unix - eu gosto de mim mesmo o Linux, mas existem outras maneiras (e sim, você pode executar tanto o Microsoft Windows e Linux na mesma máquina). Saiba ele. Executá-lo. Tinker 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, Perl e) do que qualquer sistema operacional Microsoft pode sonhar com hospedagem, você vai se divertir, e você vai absorver mais conhecimento do que você percebe que você está aprendendo até você olhar para trás sobre ele como um mestre hacker.
Para aprender mais sobre Unix, veja The Loginataka. Talvez você também queira dar uma olhada no The Art Of Unix Programming.
Para obter as mãos em um Linux, veja o Linux Online! site, você pode baixar de lá ou (ideia melhor) encontrar um Grupo de Usuários Linux locais para ajudá-lo com a instalação.
Durante os primeiros dez anos deste HOWTO da vida, me informou que a partir de um novo usuário do ponto de vista, todas as distribuições Linux são quase equivalentes. Mas, no período 2006-2007, uma melhor escolha real surgiram: Ubuntu. Enquanto outras distribuições tem suas próprias áreas de força, o Ubuntu é, de longe, a mais acessível para o Linux newbies.
Você pode ajudar a encontrar BSD Unix e recursos no
www.bsd.org. Uma boa maneira de mergulhar seus dedos do pé na água é a de arrancar o que o Linux fãs chamar um CD ao vivo, uma distribuição que funciona inteiramente fora de um CD sem ter que modificar o seu disco rígido. Este será lenta, porque CDs são lentos, mas é uma maneira de ter um olhar para as possibilidades sem ter de fazer alguma coisa drástica.
Tenho escrito uma cartilha sobre o básico do Unix e da Internet.
Eu costumava recomendar contra quer instalar Linux ou BSD como um projeto solo, se você for um newbie. Hoje a instaladores têm obtido bons o suficiente para que fazê-lo totalmente em seus próprios é possível, mesmo para um newbie. No entanto, eu ainda recomendo fazer contato com o local do usuário Linux grupo e pedindo ajuda. Pode não doer, e pode facilitar o processo.
3. Saiba como usar a World Wide Web e escrever HTML.
A maioria das coisas que a cultura hacker tem construído o seu trabalho fora de vista, ajudando a correr fábricas e escritórios e universidades sem nenhum impacto óbvio sobre o modo não-hackers vivem. A Web é a uma grande exceção, o enorme brinquedo brilhante hacker que mesmo políticos admitem que mudou o mundo. Só por este motivo (e um monte de outros bons também) você precisa aprender a trabalhar na web.
Isto não significa apenas aprender a conduzir um browser (qualquer um pode fazer isso), mas aprendendo a escrever HTML, a Web da linguagem de marcação. Se você não sabe como fazer o programa, escrito HTML vai te ensinar alguns hábitos mentais que o ajudarão a aprender. Portanto, construir uma home page. Tente manter a XHTML, que é uma linguagem mais limpa do que clássico HTML. (Existem bons tutoriais iniciante na Web; aqui está um.)
Mas apenas ter uma home page não é bom em qualquer lugar perto o suficiente para torná-lo um hacker. A web está repleta de home pages. A maioria deles é inútil, zero-lamas conteúdo - muito snazzy olhando-lamas, você mente, mas todos na mesma lama (para ver mais informações sobre esta O Inferno página HTML).
Para ser válida, sua página deve ter conteúdo - deve ser interessante e / ou útil para outros hackers. E isso leva-nos para o próximo tema ...
4. Se você não tiver funcional Inglês, aprendê-la.
Tal como um nativo americano e Inglês-falante mim, já foram relutantes em sugerir isso, para que ela seja tomada como uma espécie de imperialismo cultural. Mas vários falantes de outras línguas têm instou-me a salientar que o Inglês é língua de trabalho da cultura hacker e da Internet, e que você precisa conhecer o seu funcionamento na comunidade hacker.
Voltar ao redor 1991, soube que muitos hackers que têm Inglês como segunda língua usá-lo em discussões técnicas, mesmo quando eles compartilham uma língua nascimento, foi relatado para mim no momento em que Inglês tem um rico vocabulário técnico do que qualquer outra língua e, portanto, é simplesmente a melhor ferramenta para o trabalho. Por razões semelhantes, traduções de livros técnicos escritos em Inglês são frequentemente insatisfatórios (quando feito a todos os que recebem).
Linus Torvalds, um finlandês, comenta o seu código em Inglês (que aparentemente nunca ocorreu com ele para fazer o contrário). Sua fluência em Inglês tem sido um factor importante na sua capacidade de recrutar uma comunidade mundial de programadores para o Linux. É um exemplo vale seguinte.
Sendo um nativo Inglês-falante não garante que você tenha conhecimentos linguísticos boa o suficiente para funcionar como um hacker. Se a sua escrita é semi-alfabetizado, ungrammatical, e cheio de erros ortográficos, muitos hackers (incluindo eu próprio) terá a tendência de ignorar você. Enquanto desleixado escrito não significa desleixo invariavelmente pensando, nós geralmente encontrado a correspondência a ser forte - e não temos uso para desleixado pensadores. Se você ainda não pode escrever com competência, para aprender.