sexta-feira, 28 de novembro de 2008

Aprenda a Programar | Dicas Dj frittaz



Então aqui vai minha receita para sucesso na programação:

  • Aprenda inglês. Leia o original deste texto. Essa tradução só está aqui para exercitar o meu inglês, não o seu. (Nota do tradutor)
  • Se interesse por programação, e faça porque é legal. Tenha certeza que isso continue a ser legal para você dedicar dez anos nisso.
  • Converse com outros programadores; leia outros programas. Isso é mais importante do que qualquer livro ou curso de treinamento.
  • Programe. O melhor tipo de aprendizado é aprender fazendo.
    Colocando de uma forma mais técnica, "o nível máximo de performace individual em um domínio é não é alcançado automaticamente em função de uma experiência extendida, mas sim aumentado mesmo por indivíduos extramente experientes por um esforço deliberativo de melhorar."O aprendizado mais efetivo requer uma tarefa bem definida com uma dificuldade apropriada para o indivíduo em particular, dado que exista um retorno sobre a experiência e oportunidades de repetição e correções de erros.
  • Se você quiser, gaste quatro anos em uma universidade (ou mais em uma pós-graduação). Isso lhe dará acesso a alguns empregos que requerem alguma formação e um grande entendimento do campo de trabalho, mas se você não gosta muito de ir para escolha, você pode (com alguma dedicação) conseguir alguma experiência similiar sobre esse tipo de trabalho. Em qualquer caso, apenas ler livros não será suficiente.
    "Educação em ciências da computação não faz de ninguém um gênio em programação tanto quanto estudar pincéis e pigmentos não fazem um bom pintor." diz Eric Raymond, autor de The New Hacker's Dictionary. Um dos melhores programadores que eu já contratei tinha apenas o segundo grau, e ele produziu vários softwares incríveis, tem seu próprio grupo de discussão,
    e fez dinheiro suficiente em ações para comprar seu próprio clube nortuno.
  • Trabalhe em projetos com outros programadores. Seja o melhor programador em alguns projetos, seja o pior em outros. Quando você é o melhor você testa suas habilidades para liderar um projeto, e para inspirar outros com a sua visão. Quando você é o pior aprende o que os mestres ensinam e o que não gostam de fazer (porque eles fazem você fazer por eles).
  • Trabalhe em projetos após outros programadores. Esteja envolvido em entender um programa
    escrito por outro. Veja o que é preciso para entender e consertar quando o programador original não esta por perto. Pense em como desenvolver seus programas para que seja fácil para quem for mante-lós após você.
  • Aprenda pelo menos meia dúzia de linguagens de programação. Includa na lista uma linguagem orientada a objetos (como Java ou C++), uma que seja de abstração funcional (como Lisp ou ML), uma que suporte abstração sintática (como Lisp), uma que suporte especificação declarativa (como Prolog ou C++ com templates), uma que suporte co-rotinas (como Icon ou Scheme), e uma que suporte paralelismo (como Sisal).
  • Lembre-se que há um "computador" em "ciência da computação". Saiba quanto tempo leva para o seu computador computar uma instrução, carregar uma palavra ad memória (com e sem cache), ler palavras consecutivas do disco rígido, procurar por uma nova posição no disco.
  • Se envolva no esforço de padronização de uma linguagem. Pode ser o comite ANSI C++, ou na padronização de programação na sua empresa, se utilizaram identação com 2 ou 4 espaços. Em qualquer caso, você aprende o que outras pessoas gostam em uma linguagem, o quanto eles gostam e talvez um pouco do porque eles gostam.
  • Tenha o bom senso de cair fora desse processo de padronização tão rápido quanto possível.

Com tudo isso em mente, é questionável o quão longe você pode ir apenas lendo livros. Antes que do meu primeiro filho nascer eu li todos os livros de Como Fazer e ainda me sentia como um novato. Trinta meses depois, quando nasceu meu segundo filho, voltei aos livros para relembra? Não, ao invés disso resolvi utilizar minha experiência pessoal do primeiro filho, que se tornou muito mais útil do que milhares de páginas escritas por especialistas.

Fred Brooks, em seu trabalho No Silver Bullets identificou um plano em três partes para encontrar grandes projetistas de software:

  1. Sistematicamente identifique os melhores projetistas o quanto antes.
  2. Atribua um orientador de carreira responsável pelo desenvolvimento cuidadosamente de um plano de carreira
  3. Promova oportunidades para desenvolvedores em aprendizado interagir e estimular uns aos outros.

Isto assumo que algumas pessoas já possuem as qualidades necessárias para ser um grande desenvolvedor de software; o grande trabalho é apenas coloca-los no caminho correto. AlanPerlis coloca de forma mais sucinta: "Qualquer um pode ser ensinado a esculpir: Michelangelo precisaria ser ensinado a não esculpir. É o mesmo com grandes programadores".

Então vá em frente e compre aquele livrode Java; provavelmente você terá algum uso dele. Mas isso não vai mudar a sua vida, ou o seu conhecimento como um programador em 24 horas, dias, ou meses.

Agora mãos na massa mano.

Uhuu

Ganja!

frittaz