Texto original disponível em http://programmingzen.com/2011/03/28/what-programming-language-should-i-learn-first/
?
Existem
centenas de linguagens de programação diferentes por aí. Se você for um novato,
pode ignorar o fato que a maioria delas existe. No entanto, mesmo se
restringirmos a lista para apenas uma dúzia das linguagens mais importantes,
decidir qual linguagem de programação aprender primeiro pode ser uma tarefa
desafiadora. Você pode se perguntar: devo aprender primeiro C, C++, Java, C#, ou PHP? Se você fizer essa
pergunta para 10 programadores, você provavelmente irá escutar 10 respostas
diferentes. Aqui está a minha.
Da
mesma maneira que as linguagens humanas, as linguagens de programação são
utilizadas para comunicar. Curiosamente, elas também envolvem a
comunicação entre pessoas, uma vez que outros programadores irão acabar
lendo/modificando/melhorando seu código ou você fará isso em algum momento.
Diferentemente das linguagens naturais, no entanto, as linguagens de
programação são compreendidas perfeitamente por computadores, graças à ajuda de
intérpretes, de compiladores e de outros tipos similares de software.
Dependendo
do tipo de programa que você está tentando escrever, e em que ambiente você
está trabalhando, você descobrirá que algumas linguagens de programação se
encaixam melhor do que outras para certas tarefas, mesmo se as linguagens de
programação mais comuns forem rotuladas como sendo para “uso geral”.
Por
exemplo, se você quiser criar um aplicativo para iPhone e iPad, sua melhor aposta seria usar
Objective-C. Para smartphones Android e tablets, na maioria dos casos, você
precisará aprender tecnologias do lado cliente, como HTML, CSS e JavaScript
(dessas 3, somente o JavaScript é uma linguagem de programação real, mas as
outras duas são importantes do mesmo jeito). Para o lado servidor do seu
aplicativo web, você provavelmente precisará aprender linguagens como PHP,
Ruby, ou Python (todas as três têm frameworks que irão ajudar a deixar as
tarefas web mais fáceis e menos demoradas), em vez de um sistema de
programação favorito como o C. (Claro, é preciso mencionar o SQL se você
estiver criando uma interface com um banco de dados relacional).
Então
você deve começar sua aventura pelo mundo das linguagens de programação com o
JavaScript? Mas e o Objective-C? SQL? Meu conselho é evitar começar sua jornada
de programação com uma linguagem que é atrelada a um ambiente específico. No
início do jogo, seu principal objetivo é aprender como programar – e como
pensar como um programador – em vez de aprender uma linguagem específica. Uma
vez que você estiver craque nos conceitos fundamentais com a ajuda do objetivo
geral da linguagem de programação, você pode facilmente aprender novas
linguagens à medida que a necessidade aparecer, dependendo do tipo de software
que você gostaria de desenvolver.
Esta
é uma profissão em que a maioria das suas habilidades são desenvolvidas e aperfeiçoadas quando você realmente pratica.
Se você titubear nos fundamentos da programação, você pode facilmente escolher
uma linguagem específica e um framework quando precisar construir
aplicativos para iPad ou qualquer outra coisa que você queira criar.
Um
programador bem preparado irá acabar aprendendo várias linguagens de
programação e ferramentas ao longo de sua carreira. Dito isso, se você está
apenas começando, foque em uma linguagem primeiro. Enquanto isso possa parecer
um pouco bobo no início, a boa notícia é que, a não ser que você escolha uma
linguagem de programação verdadeiramente exótica, muito do que você aprender também poderá ser usado em outras linguagens de programação. Lembre-se de que
nesse estágio, acima de tudo, você está aprendendo como comunicar seus
pensamentos em afirmações precisas para que outros programadores possam
entender (e para o computador poder executar).
Por
esse motivo, você não pode errar muito com qualquer uma das linguagens de
programação com objetivos gerais (p.e., C, Java, C#, Perl, Ruby, Python, ou
Scheme). Dito isso, se você está aprendendo sozinho, eu te aconselharia a
escolher uma linguagem que irá tornar seu caminho de aprendizado mais fácil. Em
outras palavras, opte por uma linguagem de programação que é vastamente usada,
bem documentada, e amigável para iniciantes. Você está procurando por uma
linguagem que não seja muito burocrática, não precise que você gerencie a
memória diretamente, ou tenha conhecimentos profundos em matemática para
começar.
Assim,
minha sugestão seria começar com o Python, e a use como uma ferramenta para
aprender a arte geral da programação. Aprender Python é divertido, fácil e
útil. Você será capaz de usá-lo para uma vasta gama de projetos em diversos
ambientes (scripting, web, pesquisa científica etc).
Existe
uma variedade de
tutoriais grátis na web, mas se você quiser
instruções mais rigorosas/sistemáticas/acadêmicas, eu recomendo “Python Programming: An
Introduction to Computer Science (2nd Edition)” – “Programação em Python: Uma introdução à Ciência da
Computação (Segunda Edição”) – (USA
| UK | Canada).
Uma
vez que você tiver aprendido os fundamentos da programação, tiver um conhecimento
decente da linguagem Python, e tiver ganho alguma experiência com projetos
práticos no Python, você deverá estar melhor preparado para evoluir e para escolher
outras linguagens e frameworks baseados em projetos em que você tem interesse de
desenvolver ou contribuir no futuro (projetos Open Source são ótimos para esse
objetivo).
49 Comentários
Qual a sua opinião?