Tuga Power

Um forum onde podes falar do que te apetecer sempre que quiseres diverte-te :D
InícioInício  PortalPortal  CalendárioCalendário  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Conectar-se  


 Basic Hacking Skills (English tutorial)

Ir em baixo 

Número de Mensagens : 114
Localização : :/
Data de inscrição : 03/02/2009

Basic Hacking Skills (English tutorial) Empty
MensagemAssunto: Basic Hacking Skills (English tutorial)   Basic Hacking Skills (English tutorial) EmptyTer Fev 03, 2009 2:32 pm

Basic Hacking Skills

1. Learn how to program.
2. Get one of the open-source Unixes and learn to use and run it.
3. Learn how to use the World Wide Web and write HTML.
4. If you don't have functional English, learn it.

The hacker attitude is vital, but skills are even more vital. Attitude is no substitute for competence, and there's a certain basic toolkit of skills which you have to have before any hacker will dream of calling you one.

This toolkit changes slowly over time as technology creates new skills and makes old ones obsolete. For example, it used to include programming in machine language, and didn't until recently involve HTML. But right now it pretty clearly includes the following:
1. Learn how to program.

This, of course, is the fundamental hacking skill. If you don't know any computer languages, I recommend starting with Python. It is cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it is not just a toy; it is very powerful and flexible and well suited for large projects. I have written a more detailed evaluation of Python. Good tutorials are available at the Python web site.

I used to recommend Java as a good language to learn early, but this critique has changed my mind (search for “The Pitfalls of Java as a First Programming Language” within it). A hacker cannot, as they devastatingly put it “approach problem-solving like a plumber in a hardware store”; you have to know what the components actually do. Now I think it is probably best to learn C and Lisp first, then Java.

If you get into serious programming, you will have to learn C, the core language of Unix. C++ is very closely related to C; if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. And, actually, the more you can avoid programming in C the more productive you will be.

C is very efficient, and very sparing of your machine's resources. Unfortunately, C gets that efficiency by requiring you to do a lot of low-level management of resources (like memory) by hand. All that low-level code is complex and bug-prone, and will soak up huge amounts of your time on debugging. With today's machines as powerful as they are, this is usually a bad tradeoff — it's smarter to use a language that uses the machine's time less efficiently, but your time much more efficiently. Thus, Python.

Other languages of particular importance to hackers include Perl and LISP. Perl is worth learning for practical reasons; it's very widely used for active web pages and system administration, so that even if you never write Perl you should learn to read it. Many people use Perl in the way I suggest you should use Python, to avoid C programming on jobs that don't require C's machine efficiency. You will need to be able to understand their code.

LISP is worth learning for a different reason — the profound enlightenment experience you will have when you finally get it. That experience will make you a better programmer for the rest of your days, even if you never actually use LISP itself a lot. (You can get some beginning experience with LISP fairly easily by writing and modifying editing modes for the Emacs text editor, or Script-Fu plugins for the GIMP.)

It's best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.

But be aware that you won't reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. To be a real hacker, you need to get to the point where you can learn a new language in days by relating what's in the manual to what you already know. This means you should learn several very different languages.

I can't give complete instructions on how to learn to program here — it's a complex skill. But I can tell you that books and courses won't do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.

Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.

Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...
2. Get one of the open-source Unixes and learn to use and run it.

I'll assume you have a personal computer or can get access to one. (Take a moment to appreciate how much that means. The hacker culture originally evolved back when computers were so expensive that individuals could not own them.) The single most important step any newbie can take toward acquiring hacker skills is to get a copy of Linux or one of the BSD-Unixes or OpenSolaris, install it on a personal machine, and run it.

Yes, there are other operating systems in the world besides Unix. But they're distributed in binary — you can't read the code, and you can't modify it. Trying to learn to hack on a Microsoft Windows machine or under any other closed-source system is like trying to learn to dance while wearing a body cast.

Under Mac OS X it's possible, but only part of the system is open source — you're likely to hit a lot of walls, and you have to be careful not to develop the bad habit of depending on Apple's proprietary code. If you concentrate on the Unix under the hood you can learn some useful things.

Unix is the operating system of the Internet. While you can learn to use the Internet without knowing Unix, you can't be an Internet hacker without understanding Unix. For this reason, the hacker culture today is pretty strongly Unix-centered. (This wasn't always true, and some old-time hackers still aren't happy about it, but the symbiosis between Unix and the Internet has become strong enough that even Microsoft's muscle doesn't seem able to seriously dent it.)

So, bring up a Unix — I like Linux myself but there are other ways (and yes, you can run both Linux and Microsoft Windows on the same machine). Learn it. Run it. Tinker with it. Talk to the Internet with it. Read the code. Modify the code. You'll get better programming tools (including C, LISP, Python, and Perl) than any Microsoft operating system can dream of hosting, you'll have fun, and you'll soak up more knowledge than you realize you're learning until you look back on it as a master hacker.

For more about learning Unix, see The Loginataka. You might also want to have a look at The Art Of Unix Programming.

To get your hands on a Linux, see the Linux Online! site; you can download from there or (better idea) find a local Linux user group to help you with installation.

During the first ten years of this HOWTO's life, I reported that from a new user's point of view, all Linux distributions are almost equivalent. But in 2006-2007, an actual best choice emerged: Ubuntu. While other distros have their own areas of strength, Ubuntu is far and away the most accessible to Linux newbies.

You can find BSD Unix help and resources at www.bsd.org.

A good way to dip your toes in the water is to boot up what Linux fans call a live CD, a distribution that runs entirely off a CD without having to modify your hard disk. This will be slow, because CDs are slow, but it's a way to get a look at the possibilities without having to do anything drastic.

I have written a primer on the basics of Unix and the Internet.

I used to recommend against installing either Linux or BSD as a solo project if you're a newbie. Nowadays the installers have gotten good enough that doing it entirely on your own is possible, even for a newbie. Nevertheless, I still recommend making contact with your local Linux user's group and asking for help. It can't hurt, and may smooth the process.
3. Learn how to use the World Wide Web and write HTML.

Most of the things the hacker culture has built do their work out of sight, helping run factories and offices and universities without any obvious impact on how non-hackers live. The Web is the one big exception, the huge shiny hacker toy that even politicians admit has changed the world. For this reason alone (and a lot of other good ones as well) you need to learn how to work the Web.

This doesn't just mean learning how to drive a browser (anyone can do that), but learning how to write HTML, the Web's markup language. If you don't know how to program, writing HTML will teach you some mental habits that will help you learn. So build a home page. Try to stick to XHTML, which is a cleaner language than classic HTML. (There are good beginner tutorials on the Web; here's one.)

But just having a home page isn't anywhere near good enough to make you a hacker. The Web is full of home pages. Most of them are pointless, zero-content sludge — very snazzy-looking sludge, mind you, but sludge all the same (for more on this see The HTML Hell Page).

To be worthwhile, your page must have content — it must be interesting and/or useful to other hackers. And that brings us to the next topic...
4. If you don't have functional English, learn it.

As an American and native English-speaker myself, I have previously been reluctant to suggest this, lest it be taken as a sort of cultural imperialism. But several native speakers of other languages have urged me to point out that English is the working language of the hacker culture and the Internet, and that you will need to know it to function in the hacker community.

Back around 1991 I learned that many hackers who have English as a second language use it in technical discussions even when they share a birth tongue; it was reported to me at the time that English has a richer technical vocabulary than any other language and is therefore simply a better tool for the job. For similar reasons, translations of technical books written in English are often unsatisfactory (when they get done at all).

Linus Torvalds, a Finn, comments his code in English (it apparently never occurred to him to do otherwise). His fluency in English has been an important factor in his ability to recruit a worldwide community of developers for Linux. It's an example worth following.

Being a native English-speaker does not guarantee that you have language skills good enough to function as a hacker. If your writing is semi-literate, ungrammatical, and riddled with misspellings, many hackers (including myself) will tend to ignore you. While sloppy writing does not invariably mean sloppy thinking, we've generally found the correlation to be strong — and we have no use for sloppy thinkers. If you can't yet write competently, learn to.

PM me or Miguel Morujão to we try to get you this in another language Wink
Voltar ao Topo Ir em baixo
Ver perfil do usuário https://tuga-power.forumeiros.com

Número de Mensagens : 80
Data de inscrição : 03/02/2009

Basic Hacking Skills (English tutorial) Empty
MensagemAssunto: Re: Basic Hacking Skills (English tutorial)   Basic Hacking Skills (English tutorial) EmptyTer Fev 03, 2009 2:36 pm


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.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Basic Hacking Skills (English tutorial)
Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Tuga Power :: Hacking Zone-
Ir para: