Você já leu artigos, pesquisou na web, já procurou todas as informações possíveis sobre programação. Agora, é hora de finalmente tomar a grande decisão: “qual linguagem de programação devo aprender?”

Você está com sorte. Montamos um guia que vai te ajudar a decidir, passo a passo, quais linguagens de programação você deve aprender de acordo com sua motivação.

Mesmo se ainda estiver na parte da pesquisa, esse guia vai esclarecer algumas coisas sobre o propósito das linguagens de programação mais comuns e em qual nicho elas se destacam.

Também classificamos as principais linguagens de programação em quatro propriedades diferentes: popularidade, facilidade de aprender, retorno financeiro e utilidade.

Aviso: neste artigo, agrupamos linguagens de marcação, como HTML e CSS, e linguagens de script, como Bash / Shell e SQL, na categoria de linguagens de programação.

Vamos começar com uma lista das dez principais linguagens de programação mais populares, de acordo com o StackOverflow:

  1. JavaScript
  2. HTML
  3. CSS
  4. SQL
  5. Java
  6. Bash/Shell
  7. Python
  8. C#
  9. PHP
  10. C++

Fonte: StackOverflow

Nessa lista, vemos JavaScript, HTML e CSS ocupando os três primeiros lugares das linguagens de programação mais populares. Essas três linguagens são a espinha dorsal do desenvolvimento web de front-end e são perfeitas para quem está começando. SQL é usado no gerenciamento de banco de dados, Bash/Shell é uma linguagem de comando usada em sistemas operacionais baseados em Unix (como Linux e MacOS), e o restante, como Java, Python, C#, PHP e C++, são linguagens que podem cumprir várias tarefas. 

E as linguagens mais fáceis de aprender?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Fonte: WP Engine

Felizmente, boa parte das linguagens de programação mais populares também são as mais fáceis de aprender. Porém, também encontramos algumas linguagens de programação mais obscuras, como R e Erlang. R é uma linguagem de programação projetada para computação estatística e matemática e é uma ótima ferramenta para análise de dados (mais sobre isso nesse mesmo artigo). O Erlang é usado principalmente para telecomunicações e está presente em muitos aplicativos de mensagens, como o WhatsApp.

…e quais linguagens pagam mais?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Fonte: StackOverflow

Se programação é algo novo para você, provavelmente não reconheceu a maioria das linguagens nessa lista. Como a programação de computadores é uma indústria em rápida evolução, as habilidades mais bem pagas tendem a estar relacionadas às tecnologias mais novas e mais avançadas. No entanto, HTML, CSS e JavaScript são suficientes para começar sua carreira – outras linguagens podem esperar.

Visão Geral

Além de salário, popularidade e facilidade, você provavelmente tem suas motivações pessoais para aprender uma linguagem de programação específica. Na área abaixo, vamos ver alguns dos principais fatores que podem te ajudar a decidir sobre uma linguagem de programação.

Escolhendo uma Linguagem pela Utilidade

É aqui que as coisas ficam um pouco mais complicadas. O quão “útil” é uma linguagem vai depender do que quer conquistar com a programação. Por exemplo, HTML e CSS podem ser extremamente úteis para um(a) desenvolvedor(a) web de front-end, enquanto Swift e Java são mais indicados para quem quer desenvolver aplicações para dispositivos móveis. Algumas linguagens de programação, como o Python por exemplo, foram projetadas para um uso mais abrangente, enquanto outras são ferramentas especializadas vão te ajudar a concluir uma tarefa específica.

Primeiro vamos definir por que você quer aprender a programar, então vamos decidir qual área te interessa mais, e no fim, encontrar a linguagem de programação mais adequada para seu caso:

Eu quero desenvolver profissionalmente

Desenvolvedor(a) de Jogos

Se o seu sonho é desenvolver jogos, existem duas linguagens de programação importantes que você vai ter que dominar: C++ e C#.

Se a ideia é desenvolver jogos 2D de celular, baseados na comunidade e na interação on-line, o C# é definitivamente a escolha certa. O C# é mais fácil de aprender e menos complicado que o C++, e é a linguagem de programação mais usada para jogos indie e mobile.

O C++, por outro lado, oferece uma potência incrível e pode ser usado para jogos de dispositivos móveis em 3D e títulos “AAA” para PC e consoles. Para criar jogos com melhor desempenho e os gráficos mais bonitos, o C++ é o caminho certo.

Desenvolvedor(a) Web

Em nosso artigo, “Uma Breve Introdução Sobre Programação”, falamos muito sobre as três grandes linguagens de programação para desenvolvimento web: HTML, CSS e JavaScript. O HTML lida com o formato, o CSS determina o estilo e o JavaScript faz com que a página ganhe vida.

Desenvolvedores(as) web que se concentram principalmente em experiência do usuário (UX), HTML5 e JavaScript são as ferramentas mais usadas. Já quem desenvolve para e-commerce foca em linguagens mais avançadas, como Java, Ruby, Python, PHP e C#.

Programadores(as) web de pequenas empresas provavelmente vão usar o PHP, enquanto startups atuais contam com Java, Ruby e JavaScript durante a maior parte do trabalho. Quem desenvolve para corporações usa mais o C# e Java para aplicativos mais pesados, baseados em Windows.

Desenvolvedor(a) Móvel

O desenvolvimento para dispositivos móveis é um pouco mais simples e requer apenas que você conheça uma linguagem de programação por sistema operacional.

Se deseja criar aplicativos móveis para iPhone ou iPad, tudo o que precisa saber é o Swift, a linguagem de programação da própria Apple para iOS. Introduzido em 2014, o Swift é uma linguagem muito poderosa que foi projetada para permitir que você programe praticamente qualquer dispositivo da Apple. Conhecendo sobre Swift, também dá para escrever aplicativos para Mac, Apple Watch e Apple TV!

O desenvolvimento móvel para Android decolou nos últimos anos e superou a popularidade do desenvolvimento para iOS. O Android é baseado em Java, facilitando o início se você já tiver experiência com a linguagem. Além de poder desenvolver aplicativos para Android, existem várias outras coisas legais que dá para fazer com uma boa experiência em Java.

Por último, mas não menos importante, chegamos ao Windows Phone. O sistema operacional Windows é executado em C#, uma das linguagens de programação próprias da Microsoft. Programar em C# é uma habilidade extremamente valiosa que qualquer desenvolvedor do Windows deve saber.

Está cada vez mais difícil definir o que é mobile e desktop hoje em dia. Em vez de serem separadas por dispositivos móveis e desktop, as linguagens de programação são divididas pelo ecossistema (Microsoft, Google e Apple). O Google até desenvolveu sua própria linguagem, chamada “Go” ou “Golang”, que no futuro pode acabar substituindo o Java no Android.

Softwares para Desktop

Como mencionamos acima, as mesmas linguagens de programação necessárias para desenvolver em dispositivos móveis podem ser usadas para desenvolver softwares para computadores. Se o seu interesse é desenvolver softwares para plataformas Windows, aprender sobre o C# é fundamental. Para desenvolver softwares e programas multiplataforma para Mac, você deve aprender Java e Swift, respectivamente.

Existem também várias soluções de peso, baseadas em web, como o Electron, para desenvolver softwares multiplataforma para desktop com apenas HTML, CSS e JavaScript.

Ciência de dados

No campo da ciência de dados, Python e R são as linguagens mais úteis que se pode aprender. O Python é o canivete suíço das linguagens de programação, projetado para uso geral. No entanto, a força do Python vem da disponibilidade de bibliotecas de análise de dados gratuitas, recheadas de recursos. Uma das bibliotecas de análise de dados mais populares, o Pandas, vem com ferramentas que permitem importar informações de planilhas ou conjuntos de processamento para análise de séries temporais.

R é outra linguagem de programação voltada para análises estatísticas e gráficos. Com o R, você pode incluir modelagem linear e não linear, testes estatísticos clássicos, análise de séries temporais, classificação, agrupamento e muito mais.

Eu quero criar uma startup

Web

Startups baseadas na web têm várias opções quando se trata de escolher uma linguagem de programação.

Para startups de e-commerce, o PHP é uma ótima linguagem para começar. O WordPress é executado em PHP e é uma excelente plataforma inicial para sites de comércio eletrônico.

Se quiser abrir uma startup de SaaS (Software as a Service), o Java é a sua linguagem. Com o Java, você vai poder desenvolver softwares para uma enorme variedade de plataformas, desde o Android até o Windows.

Graças ao framework Ruby on Rails, Ruby é uma linguagem poderosa e fácil de usar que torna a prototipagem muito fácil. Por ser uma linguagem de alto nível, a criação de protótipos é rápida e sua ideia ganha vida com o mínimo de esforço.

Finalmente, temos o JavaScript, que afeta diretamente o desempenho geral do seu site. Como sua startup é baseada em web, o desempenho e a experiência do usuário são extremamente importantes. Hoje em dia, mecanismos de pesquisa como o Google não perdoam sites lentos e com lag, colocando eles em posições menores nos resultados. Isso pode ter um impacto enorme na quantidade de visitantes e conversões que você recebe.

Eu quero criar uma startup (versão 2.0)

Web

Como a vitrine de uma loja on-line é um site, HTML, CSS e JavaScript são necessários para o front-end. Mas também existem muitas opções no back-end, que é responsável por todas as operações de “bastidores” da sua loja on-line.

Para lidar com o back-end, você provavelmente vai precisar do Node.js (JavaScript), Ruby ou PHP.

Dos três, o Node.js é o mais popular, tanto por sua velocidade quanto por sua base em JavaScript.

Como sua startup é baseada em web, o desempenho e a experiência do usuário são extremamente importantes. Portanto, recomendamos a opção mais rápida, o Node.js, se for trabalhar no back-end.

Em casos extremos, talvez seja necessário usar o Python ou o R para o back-end de seu site, mas apenas se estiver lidando com grandes quantidades de dados de clientes ou de produtos.

Se quiser uma solução mais fácil que já esteja configurada, tente criar o site para seu e-commerce no WordPress, uma solução baseada em PHP. Com o WordPress, dá para usar a interface de arrastar e soltar (drag and drop) para construir a fachada de sua loja, enquanto o programa cuida do front-end e do back-end.

Apesar do WordPress ser bem fácil de usar, aprender a linguagem ou contratar alguém que desenvolva em PHP pode ser interessante para colocar recursos adicionais ou solucionar problemas à medida que forem surgindo.

Mobile

Startups baseadas em dispositivos móveis como o Uber são bastante populares e bem-sucedidas no momento. Para iniciar uma startup no espaço móvel, é importante criar apps compatíveis com iPhone e Android. Na verdade, é possível desenvolver aplicativos de plataforma cruzada em Java usando React Native, Ionic, PhoneGap ou Cordova, mas é super recomendável aprender as linguagens de programação nativas de cada plataforma para obter o melhor desempenho.

Se não for possível programar tudo sozinho, contratar alguém que desenvolva para dispositivos móveis com especialização em um sistema operacional específico pode ser útil, mas também dá para contratar um talento raro que conheça os dois ou optar por uma solução de plataforma cruzada.

Jogos

Como uma startup, o dinheiro e os recursos para desenvolver títulos “AAA” provavelmente não vai existir, como seria em um grande estúdio. Em vez disso, desenvolvedores(as) independentes tendem a se concentrar no enredo e na criatividade ao desenvolver jogos. C++ é complicado, leva tempo e muitas vezes é difícil de usar, o que significa que não é a melhor escolha para uma startup. O C# é mais fácil de usar e permite desenvolver e lançar jogos com mais rapidez.

Jogos baseados em web são outro ótimo lugar para começar para quem quer desenvolver jogos. Através de HTML5 e JavaScript, dá para criar jogos incríveis. Para descobrir que tipo de jogos você pode desenvolver com HTML5 e JavaScript, confira este artigo: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5

Mas, se tiver a paciência, habilidade e dedicação para criar um incrível jogo 3D, C++ é a sua praia. Essa poderosa linguagem de programação da Microsoft é praticamente tudo o que precisa para criar jogos incríveis para consoles e PC.

Eu quero criar algo divertido

O aspecto mais atraente da programação não é só o fato de ser uma atividade útil e muito bem paga, mas também por que pode ser muito divertida. Se quiser criar algo legal com programação, primeiro descubra quais tipos de projetos te interessam. Você pensa em criar um novo aplicativo para dispositivos móveis, um jogo baseado em web ou até mesmo sua própria IA (Inteligência Artificial)? Talvez queira automatizar suas tarefas diárias no trabalho ou criar algo para o Google Apps (G-Suite)? Com uma boa compreensão das linguagens que mencionamos, o céu é o limite para sua criatividade.

Jogos Pequenos

Não pense que alguém precisa programar profissionalmente para seguir seu sonho como desenvolvedor(a) de jogos. Tudo o que precisa é saber HTML5, JavaScript e alguns WebGL. Tanto o Doodle Jump quanto o incrivelmente famoso (ou infame) jogo para celular Flappy Bird foram feitos com HTML5 e JavaScript. Claro, você não vai fazer um jogo “AAA” de primeira, mas vai ficar surpreso com o que dá para criar com um conhecimento básico de programação. Já para criar jogos um pouco mais avançados, linguagens como C# e Python são mais indicadas.

Google Apps (G-Suite)

O JavaScript é primordial para criar aplicativos no ecossistema do Google, o G-Suite, como é chamado pelos mais íntimos. O Google diz que qualquer aplicativo no G-Suite pode ser criado com JavaScript e nada mais. Essa afirmação é um pouco ambiciosa, considerando que o próprio Gmail é escrito em Java, e não em JavaScript.

Independentemente disso, você não precisa saber JavaScript para criar aplicativos no G-Suite. Em vez disso, o novo Google App Maker oferece uma interface de arrastar e soltar que permite criar aplicativos personalizados e fornece APIs para todos os aplicativos do Google, como o Google Maps e o Google Tradutor. A API, ou Interface do Programa de Aplicativos, é a chave que permite a comunicação entre outros aplicativos do Google e seu próprio aplicativo personalizado.

Automação de Tarefas

Você já passou inúmeras horas atualizando uma planilha, renomeando arquivos ou reorganizando itens com o teclado e o mouse? Durante essa experiência entediante, você já se perguntou se tinha uma maneira melhor, mais eficiente? Automação de tarefas é um campo inteiro da programação que é dedicado a automatizar as tarefas chatas que ninguém quer fazer.

Usando linguagens básicas de uso geral, como Python e Ruby, dá para fazer seu computador tomar conta do trabalho pesado e repetitivo. Além de economizar tempo, automatizar tarefas diárias resulta em um trabalho mais preciso, já que a tendência de cometer erros é maior quando fazemos tarefas cansativas e estressantes. Computadores, por outro lado, fazem tudo sem errar e sem reclamar.

IA Simples (Inteligência Artificial)

Nos últimos anos, o Python se tornou cada vez mais popular no campo da Inteligência Artificial. Um dos maiores desafios para os desenvolvedores de IA é o problema da “aprendizagem profunda”, que é a capacidade de aprender como um humano. Atualmente, o “mapeamento neural” é uma técnica amplamente usada na IA que envolve a criação de árvores de decisão. Cada conexão é tratada como se fosse um neurônio e uma sinapse no cérebro. Usando essa técnica, os pesquisadores da IA esperam criar uma réplica do cérebro com propósito e até com as capacidades criativas de um ser humano.

O TensorFlow é uma ótima biblioteca de recursos para Python e outras linguagens de programação. Embora tenha sido desenvolvido principalmente para uso com o Python, o TensorFlow.js foi lançado para JavaScript com a intenção de usar o aprendizado de máquina na web. Em outras palavras, dá para usar até JavaScript para experimentar com IA através do TensorFlow.

Conclusão

Esperamos que tenha gostado do nosso artigo e tenha uma ideia mais clara de qual linguagem de programação é a ideal para seu caso. Linguagens como HTML, CSS e JavaScript são as melhores para começar, mas linguagens excelentes e multifuncionais como Python ou C# são opções super válidas também.

Coloque nos comentários quais linguagens de programação você está aprendendo atualmente e qual foi seu motivo para começar a programar. Te vejo no próximo artigo!