Qual linguagem de programação devo aprender primeiro?

Antonio Cangiano
em Carreira

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 e principalmente no iMasters, 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).

Texto original disponível em http://programmingzen.com/2011/03/28/what-programming-language-should-i-learn-first/

Antonio Cangiano

é desenvolvedor de software e evangelista técnico da IBM, além de empreendedor, blogueiro e autor de livros.

Comentários

Para comentar no iMasters você precisa estar logado.

O iMasters possui mais de 13 mil textos publicados, em 13 anos já somos uma comunidade de mais 350 mil pessoas. Cadastre-se agora mesmo GRATUITAMENTE e tenha acesso a todo o mundo iMasters.

Já tenho conta Quero me cadastrar
    1. vale lembrar,aqueles que leram o meu comentário e se quiserem excelentes conteúdos sobre a linguagem C++,entrem em contato comigo que estarei lhe enviando apostilas e livros conhecidos como por exemplo o Como programar em C++,livro da empresa Americana da Deite.Conseguir esses livro grátis sem pagar nada por isso,pretendo ajudar a aqueles que quiserem aprenderem a programarem especialmente em C++.

      Para entrar em contato comigo envie um e-mail para:

      mex.stell.com@gmail.com

  1. Comecei com php, atuo com php até hoje, e não me arrependo,acredito que aprender linguagem de programação, não é então, algo que você va por opinião dos outros, e sim a sua, pois você déve experimentar as que você acha que déve estar aprendendo, ex(python,php, ruby) e estar analisando qual está lhe “pendendo” mais, tanto no aprendizado, documentação,comunidade, busca de tutoriais,etc :D
    Parabéns pelo texto
    Att

    1. Oscar, além de trollar os post do pessoal, acho que você também não sabe ler né? em nenhum momento eu citei o que é melhor ou pior ;)

    2. E o Oscar só faz criticar, faço uma pergunta a ele qual linguagem ele começou e acha que é melhor? Eu estou começando com PHP e pretendo morrer escrevendo códigos PHP em meus projetos.

    3. Rodrigo, concordo de boa com quase tudo que colocou, menos o fato da opiniao dos outros, pois sao opinioes, e nao obrigacoes, imposicoes, assim como vc esta dando a sua. Acho fundamental a opiniao dos outros para que cheguemos a, digamos, umas 6 linguagens e a partir dai, testarmos como disse e decidir qual se encaixa melhor com nossa forma de pensar, prentencoes etc… mas sim, a opiniao dos outros, pra mim, eh muito importante, assim como a sua foi pra mim.
      Estou iniciando com python, mas pretendo “passear” por tantas outras quanto possivel e viavel.

  2. Como primeira linguagem, recomento Python, sem dúvida. Não acho que seja a melhor linguagem, mas com certeza é a melhor para principiantes…

      1. Bem, se for assim, podemos ir atrás da Google na china, porque creio eu que você saiba que uma das maiores empresas (senão a maior) da internet utiliza aplicações em Python ^^

  3. Primeiramente ótimo texto..

    Na minha opnião vai depender muito da pessoa, ela vai começar a pesquisar por programação e a linguagem que se indentificar mais, encontrar mais tutoriais e documentação é a que vai ser mais facil para começar. Eu começei com PHP e aconselho qualquer um a começar com PHP por ser uma linguagem com um material imenso na internet. Abraços.

  4. Comecei com Pascal, depois C/C++ e por fim parei em SQL e Java, agora depois de um ano parado e estudando apenas design gráfico estou voltando a Java e pretendo descobrir novas linguagens. Acho que o caminho que eu tomei foi bem legal

  5. Pra começo recomendo linguagens do tipo: Pascal e C/C++;
    No caso do Pascal, ela é muito útil , pois nao é muito flexivel o que leva o programador a aprender com erros…

  6. Recomendo pascal/delphi/freepascal/lazarus mesmo sendo uma linguagem que esta morrendo, como dizem por ae, tem uma comunidade gigantesca, é facil de programar com o IDE e usando lazarus vc pode compilar para windows/linux/macos. Uso o delphi como linguagem principal desde o turbo pascal 7 lá em 1995 quando era um adolescente, putz to velho hehe!

  7. Bom artigo! É como vc mencionou, linguagem depende do que vc pretende desenvolver e analisar o que vai atender os seus requisitos creio que ninguem deve aprender linguagem d e programação apenas por puro modismo que é o que acontece muito hoje e outra, todo dia aparece uma porrada de linguagem nova mas grande parte é desconhecida e sem documentação suficiente e isso conta bastante na hora de desenvolver. É muito importante analisar isso também.

  8. Eu recomendo o C# da pra desenvolver diversos tipos de aplicações
    -para web junto com o Asp.net
    -para games(Xbox360 && PC )? com a framework XNA .. da propria microsoft
    -iPad&iPhone.. Mono framework e Mono Develop

    porque nao aprender logo uma linguagem que faz de tudo?

    1. Porquê não existe linguagem que faz tudo. Exitem programadores que fazem muita coisa. Cada tipo de aplicação que você citou possui um leque de conceitos complicadíssimos, desde da matemática (jogos), sistemas operacionais (iPad&iPhone) e redes (WEB). Muitas poucas pessoas chegam a dominar os três, e para dominar um deles com certeza é preciso saber várias linguagens.

  9. Eu estou começando a aprender a programar Pascal, um amigo meu que programa a muito tempo me aconselhou essa linguagem, não achei muito difícil depois que aprendi a lógica de programação.

  10. Eu sou muito pragmático sobre linguagem, gosto pessoal e curva de aprendizado. Não tenho anos de experiência, mas com a pouca que eu tenho eu posso dizer que a linguagem de programação para o programador e igual ao absorvente para mulher.

    Quando a mulher começa a ter os problemas dela ela precisa testar os vários absorventes disponíveis no mercado para saber qual e o mais barato e confortável para ela. O futuro pião moderno também tem que fazer a mesma coisa com a linguagem. Tem que experimentar e ver qual e mais confortável, simples e que vai pagar os gadgets legais dele.

    Mas fica a dica eu já fiz gambiarra usando como por exemplo uma vez que usei a linguagens Lua para fazer um remendo de uma processo matemático que o c não conseguiu realizar e depois o código c chamava aquele remendo como função. Essa obra de arte me custou um tempo consideravel, mas me deu uma lição de flexibilidade.

  11. Aprender sozinho com certeza é algo que pode prejudicar muito o meio do caminho, pois ter vícios e conceitos que não atendem o padrão acabam meio que prolongando o real aprendizado.

  12. Comecei com C, achei bem legal pra começar é ótimo para programar relógios, contas com raciocínios lógicos e quebra-cabeças, aprendi legal com C… mas depende das pessoas, até pq algumas simplesmente não nasceram para programar não adianta forçar…. programar tem que ser por GOSTAR e não por dinheiro ou emprego, mesmo agente que gosta as vezes fica ferrado com o rumo das coisas.

  13. Taí um assunto tão polêmico quanto mamilos.
    A meu ver seria muito bom iniciar no portugol ou algo assim, só até aprender a usar direitinho as estruturas condicionais e de repetição.
    Partindo para linguagens comerciais, tudo depende de como a pessoa vai aprender. Em cursos de computação recomendo C. Ponteiros são traumáticos? São. Mas uma linguagem com uma abstração menor traz um aprendizado maior sobre o funcionamento da memória, da compilação e da interação entre o programa e o SO. Além de que a maioria das linguagens mais conhecidas usa muito da sintaxe do C.
    Já para aprender sozinho, é só escolher pela aceitação do mercado e pela aplicação da linguagem e “meter as cara”.

  14. Outra coisa complicada é saber o melhor momento de ensinar orientação a objetos. Quando eu comecei a estudar simplesmente achei um monte de firula para chegar no mesmo objetivo. Simplesmente ignorei os conceitos. Só no fim do curso, depois de todas as disciplinas de Requisitos, Qualidade de sw…
    A orientação a objetos é uma proposta para trazer reuso, organização, mantenibilidade, testabilidade, etc… Conceitos vindos da Engenharia de Software.
    Para mim, a pessoa deve aprender a programar de forma estruturada, estudar os conceitos de Engenharia de Software (ciclo de vida, projeto…) e durante isso ir aprendendo OO. O aprendizado de OO vai ser mais justificado e consequentemente melhor aplicado nos projetos.

  15. Sem duvida, PHP.
    è muito simples de começar e tem a melhor ajuda no internet.(www.php.net).
    Baixe o programa Xampp no internet e olhe os arquivos de exemplos.
    Depois faça uma pagina propria de teste.
    Aí explica tudo.
    Já trabalhei com tudo, Java, C#, C++,C VB etc.
    E quem fala que para começar é bom Pascal ou C, desculpe mas essa aí kkk sabe de nada.

  16. Fala sério. Eu moro no DF, e o governo daqui está oferecendo cursos de C# e Java interamente gratuitos e com todas as despesas pagas (alimentação e transporte). Eu estava com dúvida entre os dois, C# ou Java, mas depois dessa matéria explicativa, eu fiquei com uma certeza: o certo é aprender os dois, mais alguns outros e fazer um curso de inglês (Apesar da matéria não mensionar o inglês, o inglês faz parte da programação).
    Concluindo, essa profissão é mais séria do que eu imaginava. O caminho parace ser muito longo e árduo. Agora minha duvida é: Será que vale a pena? Que me respondam os Bill Gates e os Mark Zuckbercs dessa área.

  17. Olá, fiz 18 anos no mes de agosto de 2012, a primeira vez que programei tinha 15 anos, primeiramente aprendi a logica, utilizando a linguagem PORTUGOL que é compilada pelo VisualG, apos as aulas de logica, tive o prestigio de aprender JAVA que foi desde os principios mais basicos até aos mais sólidos, apos aprender java, comecei a aprender VB e por ultimo aprendi alguns conceitos de COBOL. Após ter tido essa experiência com essas linguagens, me senti a vontade para estudar C#, o qual estudo pelo livro “use a cabeça c#”. Na minha humilde opinião o X da questão não está em qual linguagem devo aprender primeiro, mas em qual linguagem encontro um caminho que me leve aonde quero chegar! Se tem mais interesse em aplicações web, aprenda primeiramente a logica de programação que é imprescindivel e comece a estudar PHP Ruby, enfim… Caso goste de aplicações para desktop (meu caso), aprenda logica de programação e escolha uma linguagem do tipo JAVA, C#, VB, entre outras. Tudo vai do seu interesse e aonde você quer chegar. Basta você fazer sua escolha!

  18. O que vocês acham sobre utilizar VB e VBScript para uma aplicação web?
    Tenho uma certa noção sobre VB e quero consolidar esse conhecimento em um caso prático.
    A aplicação que planejo terá em torno de 10 computadores comunicando-se através da internet, com troca de mensagens de voz, texto, imagem e videos.

  19. Gente!!! Depende muito de que irá,fazer com esta linguagem de programação……
    Eu já tenho conhecimento em lógica de programação,sem ter tomado ou estudado o curso de lógica de programação, aprendi lógica quando estudava a linguagem de programação C;
    embora,após uns tempo eu fiquei pulando de uma linguagem para outra,estava infeliz co-
    m a linguagem C.

    Passei por diversas linguagens de programação:
    até que cheguei a poderosa e temida C++,com ela pretendo a aprender o que realmente
    não aprendi com as outras,que é programar de verdade.É claro que para isso baixei inúmeros conteúdos e livros impressos sobre C++.

    Recomendo a aqueles,que pretendem a aprenderem a programarem,após aprenderem lógica de programação vão,para a linguagem C++ porque com,ela além de aprenderem programação estruturada,aprenderão sobre programação orientada a objetos,essa é uma grande tendência em nossos dias.

    *obs: C++,resolvi escolhera ,pelo fato de poder se comunicar com o hardware como se fosse uma linguagem montadora(Assembly),e pelo fato dela ser tão poderosa que,usando apenas ela,você construir tudo o que essas outras fazem e se duvidarem,ela faz melhor como por exemplo nos permite criar a nossa própria linguagem de programação,um exemplo de uma linguagem feita com C++ é o Java,mas o Java não supera ainda a C++.

    Para aqueles que gostaram do meu comentário se quiserem entrarem em contato comigo,envie um email para : mex.stell.com@gmail.com

  20. Olá Antônio Cangiano. Estava a procura de informações sobre qual linguagem devia começar a programar.
    Na verdade comecei com a HTML, depois fui para a linguagem de programação C,a partir da linguagem de programação C aprendi lógica de programação;
    Mas estava infeliz com a C,então dei uma pausa e fiquei pulando de uma linguagem de programação para outra,tentando ver qual seria a mais fácil,infelizmente as linguagens que tentei,elas não tinham o padrão ANSI/ISSO e com isso os materiais que encontrava de tal versão não servia para a versão mais moderna,foi aí que comecei a pesquisar na internet e também encontrei o blog: http://imasters.com.br/perfil/antonio-cangiano que é o seu.
    Li e concluir que,sei que existem diversas linguagens de programação mas apenas algumas delas sobreviveram com o passar do tempo,resolvi tentar a linguagem de programação C++,não preciso aprender mais lógica porque aprendi com a linguagem C e nem pretendo estudar a linguagem Pascal,ela é muito antiga e quero algo que fosse procedural e ao mesmo tempo pudesse alternar para orientação a objetos, e que fizesse tudo que eu quisesse desde jogos como “GTA” ,navegadores como “Mozila”, e Sistemas Operacionais como o “Linux”. A C++ é uma excelente opção,sei que ela é difícil de se engolir mas,não impossível de se aprender! Claro que para isso baixei inúmeros conteúdos sobre a Linguagem C++;como por exemplo a coleção de livros da Deitel como aprender Java e C++.

    Agradeço a você.Imagino se não existisse pessoas assim que postassem artigos como esse,para ajudarem aqueles que estão ainda em dúvida.
    Meu objetivo de escrever essa mensagem é de lhe agradecer,agora é só comigo lutarei para aprender a programar de verdade,usarei um método que poucos tentaram,aprenderei C++ como minha linguagem influente,mesmo sabendo pouco sobre programação mas isso não será impossível tudo isso devo agradecer ao C,foi ele que me deu a lógica de programação que não precisei fazer com Pseucódigos.

  21. Como foi muito bem dito no post, eu também acredito que pra quem nunca programou, é melhor aprender os conceitos básicos de programação antes de se preocupar com a linguagem, por isso acho que um bom caminho para responder a essa pergunta (Qual linguagem de programação devo aprender primeiro?) é encontrar uma linguagem que o ajude a aprender os conceitos básicos. Python é uma linguagem muito boa pra isso, pois não tem muitas burocracias para se programar, mas para quem é muito leigo no assunto (inclusive sem muito conhecimento de inglês) indico usar um “portugol” pra aprender lógica, pra isso indico o VisuAlg. Tenho usado ele pra explicar os conceitos básicos de programação no meu blog.

    Abraço,

    Gustavo – http://www.dicasdeprogramacao.com.br/linguagem-de-programacao-para-iniciantes/

  22. Excelente texto! Parabéns! buscava uma compreensão melhor sobre “por onde começar?’. E de fato, devemos começar por onde seja mais ‘adaptável’ à nossa realidade.

  23. comprei um curso online muito bom onde ensinava como programar jogos de pc eu nem sabia nada de programação mas o curso é bem explicado e em vídeo e ele pula a parte teórica e vai direto pra pratica e todo mundo sabe que assim é mais fácil de aprender quem quiser o link acesse meu email well_santos1994@hotmail.com

  24. Minha opinião é a seguinte, se você está iniciando no ramo, pega primeiro uma linguagem Estruturada, como ‘C’ , depois pare pra uma orientada a objeto, como c++, Java, etc…

Este projeto é mantido e patrocinado pelas empresas: