Artigo original: What Programming Language Should I Learn First in 2024? [Solved]
A jornada da maioria das pessoas ao aprender a programar começa com uma pesquisa de madrugada no Google.
Geralmente é algo como "Aprender _____"
Como será, no entanto, que eles decidem qual linguagem pesquisar?
"Eles sempre fazem piadas com o Java no Vale do Silício. Acho que é o que eu vou aprender."
Ou:
"Haskell. Parece estar na moda agora. Haskell."
Ou:
"Aquele esquilinho do Go é tão fofinho."

Existe, também, o resto de nós que, provavelmente, procuraremos por algo do tipo:
"Qual linguagem de programação eu deveria aprender primeiro?"
Poucas perguntas são feitas tão frequentemente ao ponto de ganhar um infográfico completo sobre elas. Essa é uma delas:

Decidir sua primeira linguagem de programação pode ser um processo divertido – tipo um daqueles quizzes de personalidade – "Qual personagem do Quentin Tarantino você é?".
Antes, no entanto, de você começar a aprender Ruby porque você adorava brincar com Play-Doh quando era criança, deixe-me lembrar: as apostas são bem altas aqui.
Vai demorar muitas horas de prática para você se tornar remotamente alguém competente com a sua primeira linguagem de programação.
Então você deve considerar os seguintes fatores:
- o mercado de trabalho para a linguagem
- as perspectivas de longo prazo da linguagem
- qual é a facilidade para aprender a linguagem
- quais projetos você poderá construir enquanto estiver aprendendo (e compartilhar com os amigos para mantê-lo motivado)
A cada ano, uma nova linguagem aparece. Com ela, novos artigos acadêmicos – e novas tirinhas também.
Sério, olha essa pérola do mês passado:

Quando se trata de escolher a primeira linguagem de programação, opção é o que não falta. Para restringir um pouco, aqui estão as pesquisas mais comuns do Google relacionadas à aprendizagem de programação nos últimos 12 anos:

O Java teve seus altos e baixos.
O Python cresceu gradualmente e se tornou a escolha mais popular.
Escondido abaixo deles, porém, está a pequena locomotiva, lentamente ganhando popularidade nos últimos anos. Essa locomotiva é o JavaScript.
Antes de falar sobre essas linguagens de programação, deixe-me esclarecer:
- Não estou argumentando que uma linguagem qualquer é objetivamente melhor do que qualquer outra
- Concordo com o fato de que os desenvolvedores devem eventualmente aprender mais de uma linguagem
- Estou argumentando que, primeiro, eles devem aprender bem uma linguagem. Como você provavelmente já pode adivinhar se deu uma olhada geral no texto – essa linguagem deve ser o JavaScript.
Vamos começar explorando como a programação vem sendo ensinada atualmente na escola.
Introdução à Ciência da Computação

As universidades têm, tradicionalmente, ensinado programação dentro do guarda-chuva da ciência da computação, que é vista por si só como uma extensão da matemática, ou vinculada à formação de engenharia elétrica.
Provavelmente, você já deve ter ouvido o seguinte:
"A educação em ciência da computação não pode fazer de ninguém um programador especialista, assim como estudar pincéis e pigmentos não pode fazer de alguém um especialista em pintura." — Eric S. Raymond
Nesses últimos anos, várias faculdades continuam tratando programação como ciência da computação e ciência da computação como matemática.
Como resultado, muitos dos cursos introdutórios de programação focam em uma linguagem de baixo nível de abstração, como o C, ou linguagens com foco em matemática, como o MATLAB.
Os chefes de departamento geralmente se mantêm nesse ritmo, apontando para tabelas de classificação anuais de linguagens de programação, como o Índice TIOBE (em inglês), ou este índice do IEEE (em inglês):

A maior parte desses rankings parece virtualmente idêntica ao que era há 10 anos.
Mudanças acontecem, contudo, mesmo nas universidades.
Em 2014, o Python ultrapassou o Java (em inglês) como a linguagem mais popular nos principais programas de Ciência da Computação dos EUA.

Mais uma mudança, porém, está fadada a acontecer, eventualmente. Se você olhar para as linguagens atualmente usadas no mercado de trabalho, você tem números totalmente diferentes:

Mais da metade de todos os desenvolvedores usa JavaScript. É vital para o desenvolvimento no front-end da web e está ficando cada vez mais relevante para o desenvolvimento no back-end. Elaestá rapidamente se expandindo para áreas como o desenvolvimento de jogos e a Internet das Coisas.
As postagens de trabalhos mencionam o JavaScript mais que qualquer outra linguagem, excetuando o Java:

Não foi por acidente que construímos o currículo da nossa comunidade open source com base no JavaScript. Nos últimos dois anos, mais de 5 mil pessoas usaram o FreeCodeCamp para conseguir seu primeiro emprego como desenvolvedor.
Eu não estou defendendo o JavaScript porque eu o ensino. Eu ensino JavaScript porque é o caminho mais garantido para o primeiro emprego de desenvolvedor.
No entanto, será que o JavaScript é o ideal pra você? Vale a pena fazer do JavaScript sua primeira linguagem de programação? Vamos explorar aqueles fatores que eu mencionei anteriormente.
Fator nº 1: Mercado de trabalho
Se você está aprendendo programação puramente por curiosidade intelectual, sinta-se livre para pular esse fator. Se você, no entanto — como a maioria das pessoas que está aprendendo programação – quer usar essa habilidade para conseguir um emprego, essa é uma consideração importante.
Como mencionei anteriormente, o Java é mais mencionado nos anúncios de emprego do que qualquer outra linguagem de programação. O JavaScript é a segunda – por pouco.
Aqui está algo importante sobre o JavaScript: mesmo existindo há 20 anos, apenas recentemente ele se tornou uma ferramenta séria, com a qual empresas como Netflix, Walmart e PayPal já criaram aplicações inteiras.
Como resultado, várias empresas estão contratando desenvolvedores JavaScript, mas não há muitos no mercado de trabalho.

Existem 2,7 desenvolvedores Java competindo para cada vaga com Java. A competição por vagas em PHP e iOS é igualmente disputada.
Porém, para cada vaga com JavaScript, são apenas 0,6 desenvolvedores JavaScript. É um mercado sedento por desenvolvedores com habilidade em JavaScript.
Fator nº 2: Buscas de longo prazo
Em média, um projeto em JavaScript recebe duas vezes mais pull requests do que um projeto em Java, Python ou Ruby. Em cima disso, o JavaScript está crescendo mais rápido do que qualquer outra linguagem popular.

O ecossistema do JavaScript também se beneficia de um investimento pesado de dinheiro e engenharia de empresas como Google, Microsoft, Facebook e Netflix.
Por exemplo, o TypeScript (um superset estaticamente tipado do JavaScript) tem mais de 100 contribuintes open source, muitos deles são funcionários da Microsoft e do Google que são pagos para trabalhar nele.
Esse tipo de cooperação entre empresas é difícil de encontrar com o Java. A Oracle – que efetivamente é a dona do Java pela aquisição da Sun Microsystems – frequentemente processa empresas que tentam expandi-lo (texto em inglês).
Fator nº 3: Dificuldade de aprender

A maioria dos programadores concorda que linguagens de script de alto nível são fáceis de aprender. O JavaScript entra nessa categoria, junto com o Python e o Ruby.
Mesmo que as universidades continuem ensinando linguagens como Java e C++ como primeiras linguagens, elas são consideravelmente mais difíceis de aprender.
Fator nº 4: Projetos que você pode construir
É aqui que o JavaScript realmente brilha. Ele roda em qualquer dispositivo que tiver um navegador, diretamente no navegador. Você pode construir basicamente qualquer coisa com JavaScript e compartilhar por aí.
Por causa da onipresença do JavaScript, Jeff Atwood, co-fundador do Stack Overflow, cunhou sua – agora – famosa lei:
"Qualquer aplicação que puder ser escrita em JavaScript, acabará sendo escrita em JavaScript."
E a cada mês que passa (em inglês), a lei de Atwood continua forte.
O Java também prometeu em algum momento rodar em qualquer lugar. Você pode até se lembrar dos Java Applets (em inglês) que a Oracle oficialmente descontinuou no começo desse ano.
O Python sofre muito com os mesmos problemas:
"Como eu posso dar esse jogo que eu fiz para um amigo? Melhor ainda, existe uma maneira de colocá-lo no meu celular e então mostrar para as outras crianças na escola sem eles terem que instalar? Hm." — James Hague, em Retiring Python as a Teaching Language (em inglês)
Para contrastar, aqui estão alguns apps que os membros da nossa comunidade open source construiu nos seus navegadores usando o CodePen. Você pode clicar e começar a usar agora mesmo no seu navegador:




Aprenda bem uma linguagem. Depois aprenda uma segunda.
Se você continua pulando de linguagem para linguagem, você não vai chegar longe (texto em inglês).
Para sair do básico, você precisa aprender bem a sua primeira linguagem. Depois, sua segunda linguagem será muito, muito fácil.
A partir daí, você pode aprender outra e outra linguagem, e se tornar uma pessoa desenvolvedora mais completa por aprender várias linguagens:
- C é uma ótima maneira de aprender como computadores realmente funcionam em termos de gerenciamento de memória, e é superútil em computação de alto desempenho.
- C++ é ótimo para desenvolvimento de jogos.
- Python é maravilhoso para ciência e estatísticas.
- Java é importante se você quiser trabalhar em empresas de tecnologia de grande escala.
Ainda assim, aprenda JavaScript primeiro.
OK, agora vou tentar algo impossível – vou tentar antecipar as objeções dos comentários dos leitores.
Objeção nº 1: Mas o JavaScript não é lento?
O JavaScript é — para a maioria dos propósitos — tão rápido quando as linguagens de alto desempenho.
O JavaScript (na forma do Node.js) é, em ordens de magnitude, mais rápido que o Python, Ruby e PHP.
Ele é também quase tão rápida quanto as linguagens de alto desempenho, como o C++, o Java e o Go.
Abaixo estão os resultados de benchmark (comparação) das linguagens:

Objeção nº 2: Mas JavaScript não é estaticamente tipado
Como o Python e o Ruby, o JavaScript é dinamicamente tipado, o que é conveniente. Ele, porém pode colocar você em maus lençóis. Aqui, eu pretendo, por exemplo, que o exampleArray
seja um array. Eu configurei seus valores e verifiquei seu tamanho – que é o número de elementos que o array contém dentro dele.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
Acidentalmente, porém, eu reatribuí o valor dele para uma string.
exampleArray = "text"
-> "text"
exampleArray.length
-> 4
Esses tipos de erros acontecem o tempo todo em linguagens dinamicamente tipadas. A maioria dos desenvolvedores apenas colocam verificações para evitá-los e escreve os testes de acordo.
Se você realmente precisa de tipagem estática na sua primeira linguagem de programação, então, eu continuo recomendando que você aprenda JavaScript primeiro. Depois, você poderá aprender rapidamente o TypeScript.
"O Typescript tem uma curva de aprendizado, mas se você já sabe JavaScript, será uma curva tranquila." — Alex Ewerlöf, sobre o TypeScript (em inglês)
Objeção nº 3: Mas eu quero construir uma aplicação para dispositivos móveis
Eu continuo recomendando o JavaScript primeiro.
- O JavaScript tem várias ferramentas para fazer aplicações para dispositivos móveis, como o Angular Cordova e o ReactNative.
- Para a sua aplicação para dispositivos móveis realmente fazer algo interessante, ela provavelmente precisará de um back-end decente, que você desejará construir com um framework de desenvolvimento web, como o Node.js + Express.js.
Além disso, vale ressaltar que os melhores dias do desenvolvimento de aplicações para dispositivos móveis podem muito bem estar por vir.
Para começo de conversa, por mais que as pessoas usem aplicações para dispositivos móveis, quase metade de todos os trabalhos de desenvolvedor são para o desenvolvimento web. Compare isso com meros 8% dos trabalhos que envolvem o desenvolvimento de aplicações para dispositivos móveis.

A grande visão de "há um aplicativo para isso" não se concretizou. Em vez disso, a maioria dos proprietários de smartphones parou de baixar novos aplicativos (texto em inglês).
Claro – eles continuam usando aplicativos. Na maioria, o Facebook, Google Maps e vários outros. Então, a maioria da demanda por desenvolvedores de aplicações para dispositivos móveis está concentrada em alguns grandes empregadores.
As perspectivas para esses empregos de desenvolvimento para dispositivos móveis são difíceis de prever. Muitos aspectos do desenvolvimento, manutenção e de distribuição de aplicações para dispositivos móveis são fáceis com JavaScript. Então, empresas como o Facebook e o Google estão investindo pesado em ferramentas melhores para construir essas aplicações usando o JavaScript.
A partir de 2016, grande parte do desenvolvimento passou a ser de desenvolvimento web. Tudo que toca aquela grande plataforma é "a web". A próxima onda de dispositivos com os quais você conversará em sua casa, e os carros que pegam os seus filhos na escola – todos eles serão conectados usando a web também.
Isso significa usar o JavaScript.
Objeção nº 4: o JavaScript não é uma linguagem de brincadeirinha que foi escrita em 10 dias?
O JavaScript tem uma história peculiar (em inglês).
Você, sem dúvida, ouvirá as pessoas fazerem piadas às suas custas.
Bem, as pessoas também adoram odiar o C++. Assim como o JavaScript, o C++ teve sucesso apesar desse ódio – e agora está em praticamente todos os lugares também.
Então, se alguém encrencar com você ao aprender JavaScript em vez da linguagem de elite dessa semana, lembre-se das famosas palavras do criador do C++:
"Existem apenas dois tipos de linguagens de programação: aquelas das quais as pessoas sempre reclamam e aquelas que ninguém usa." — Bjarne Stroustrup
Eu escrevo apenas sobre programação e tecnologia. Se você me seguir no Twitter, garanto que não estará perdendo seu tempo.