2008-12-28

Comece já a aprender linguagens de programação

Cá estamos hoje, com a proposta de corrigir um dos maiores erros do sistema educativo: considerar que uma linguagem de programação pertence à categoria de informática!

Há linguagens mais fáceis de aprender e linguagens mais difíceis, mas cada uma é excelente em algumas coisas e menos prática noutras. Confie na escola para obter umas luzes, mas neste terreno é você que tem que aprender por si próprio, além de que é daquelas coisas que é difícil encontrar amigos com o mesmo interesse.

Sem sombra de dúvida, se pensa em termos de aplicação dos seus conhecimentos no mundo empresarial, aconselho que comece com C# (lê-se C Sharp). É uma das linguagem mais amigáveis e perfeitas alguma vez criadas. Em Windows instale o .NET Framework e o Visual Studio Express (em Linux, instale o mono e monodevelop).

Algumas dicas importantes:

1. Quase todos os livros são maus, repetitivos e mal traduzidos. Use o Google. Descarregue a especificação técnica da linguagem (neste caso, ECMA-334) - é um documento nem sempre fácil de ler mas a maior parte do que ler fora dele é "palha".

2. Aprenda rápido assistindo a vídeos: use o www.learnvisualstudio.com. No ano passado paguei-lhes 30 euros e tive acesso a um arquivo de mais de 500 lições em screencast.

3. Só consegue dominar uma linguagem se aprender pelo menos cinco ou seis. Java, Python, Ruby, PHP, C, C++, Scheme, Smalltalk podem ser boas formas de compreender em profundidade como funciona uma linguagem.

4. Só consegue atingir o Nirvana da programação se dominar o funcionamento dos sistemas operativos e dos processadores. Assista via web às aulas da Universidade da Califórnia em Berkeley, em especial os cursos CS 61C e CS 162. Pode parecer inútil aprender linguagem C e o que são threads e processos, mas sem isso pode ter a certeza que nunca irá longe.

5. O ambiente de desenvolvimento, ou seja, o programa que usa para compor código, é um factor muito crítico. Qualquer código de qualquer linguagem pode ser editado com o Bloco de Notas ou o Notepad++ (dado que tudo é texto simples), mas se tiver uma aplicação que ajude no processo, automatize alguma coisa, verifique a sintaxe, ajude a completar a linha que está a escrever, etc., conseguirá obter resultados n vezes melhores e mais rapidamente.

Por exemplo, PHP é uma óptima linguagem que tenho o prazer de dominar, mas infelizmente é muito pouco consistente em termos formais - não é verdadeiramente orientada a objectos e os erros aparecem com facilidade apesar de eu ter anos de experiência. Enquanto que em C# muita coisa funciona logo à primeira, em PHP andamos para trás e para a frente até conseguirmos executar um programa.

Mas isto acontece em parte porque C# tem um ambiente de desenvolvimento grátis de extrema qualidade (Visual Studio Express), enquanto que, para ter algo equivalente em PHP, somos na prática obrigados à compra do Zend Studio, que custa 717€ com três anos de upgrades e assistência.

Em resumo, lembre-se que cada linguagem é vocacionada mais para umas coisas do que para outras:

- C e C++ para programar e aprender sistemas ou aplicações ultra-rápidas;
- Ruby é fácil de aprender e boa para web;
- Python é boa para aplicações gráficas e web;
- Java é especialmente boa para aplicações de rede mas dá para quase tudo;
- C# é a melhor para para aplicações desktop mas também dá para quase tudo;
- Scheme e Smalltalk são importantes em termos educativos para aprofundar a história e a teoria das linguagens de programação, pois estas duas sintetizam todos os conceitos usados pelas restantes.

Em especial, Smalltalk é uma linguagem absolutamente visionária, através da qual pode aprender os conceitos mais avançados que a tecnologia permite.

E pronto. Se entretanto descobrir coisas interessantes, deixe aqui um comentário no Tecnologa... Boa sorte!

2 comentários:

  1. Para os mais pequenos se iniciarem... sugiro o Scratch do MIT (que surge na sequência do LOGO de Papert...). Como o António espreita o Muito mais, não deve ser novidade. A partir de 7 anos (ou mais cedo, com mediação mais próxima) é uma forma interessante de fazer uma primeira abordagem que pode depois levar a maior complexidade (deixo aqui ligação para ffred, um programador reformado - militar - que se rendeu à linguagem e tem sido assim o Avô sempre presente a comentar os projectos dos meus meninos :) http://scratch.mit.edu/users/ffred

    ResponderEliminar
  2. gostaria que me mandasem sempre dicas sobre linguajem basica de programação no meu email:bestzona2011@hotmail.com...obrigado por serem jeneroso comigo.... sou fanatico da tecnologia e gostaria de aprender mas sobre a programação....

    ResponderEliminar