Qual linguagem de programação você deve aprender primeiro em 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

A jornada da maioria das pessoas para aprender a programar começa com uma única pesquisa no Google tarde da noite.

Normalmente é algo como “Aprenda ______”

Mas como eles decidem qual idioma procurar?

“Eles sempre fazem piada sobre Java no Vale do Silício. Acho que devo aprender isso. ”

Ou:

“Haskell. Tão quente agora. Haskell. ”

Ou:

"Aquele Go Gopher é tão fofo, caramba."

E então há o resto de nós. Provavelmente procuraremos algo como:

“Qual linguagem de programação devo aprender primeiro?”

Poucas perguntas são feitas com tanta frequência que recebem o tratamento completo do infográfico. Mas este é um deles:

Decidir sobre sua primeira linguagem de programação pode ser um processo divertido - mais ou menos como um daqueles “Qual personagem Quentin Tarantino é você?” questionários de personalidade.

Mas antes de correr para aprender Ruby porque gostava de brincar com Play-Doh quando criança, deixe-me lembrá-lo: as apostas são muito altas aqui.

Você precisará de centenas de horas de prática para se tornar, mesmo remotamente, competente com sua primeira linguagem de programação.

Portanto, você deve considerar os seguintes fatores:

  • o mercado de trabalho para o idioma
  • as perspectivas de longo prazo para o idioma
  • quão fácil é aprender a língua
  • quais projetos você pode construir enquanto aprende (e compartilhar com os amigos para se manter motivado)

Todos os anos trazem novas linguagens de programação e, com elas, novos trabalhos acadêmicos. E novos quadrinhos da web.

A sério. Confira esta joia do mês passado:

Quando se trata de escolher uma primeira linguagem de programação, não faltam opções. Para restringir um pouco, aqui estão as pesquisas mais comuns do Google relacionadas ao aprendizado de programação, nos últimos 12 anos:

Java teve seus altos e baixos.

Python cresceu gradualmente para se tornar a escolha mais popular.

Mas aninhado abaixo deles está o Little Engine That Could, lentamente sufocando em popularidade nos últimos anos. E esse motor é JavaScript.

Antes de falar sobre essas linguagens de programação, deixe-me esclarecer:

  • Não estou argumentando que qualquer linguagem seja objetivamente melhor do que qualquer outra
  • Eu concordo que os desenvolvedores deveriam aprender mais de um idioma
  • Estou argumentando que primeiro eles deveriam aprender bem um idioma. E - como você provavelmente pode adivinhar pelo texto de cabeça para baixo em meu título - essa linguagem deve ser JavaScript.

Vamos começar explorando como a programação é ensinada atualmente na escola.

Ciência da Computação 101

As universidades tradicionalmente ensinam programação sob a égide da ciência da computação, que por si só é freqüentemente vista como uma extensão da matemática, ou vinculação a um diploma de engenharia elétrica.

Claro, como você já deve ter ouvido:

“O ensino da ciência da computação não pode tornar alguém um programador especialista, da mesma forma que estudar pincéis e pigmentos não pode tornar alguém um pintor especialista.” - Eric S. Raymond

A partir de 2016, muitas universidades ainda tratam a programação como ciência da computação, e a ciência da computação como matemática.

Como resultado, muitos cursos introdutórios de programação enfocam linguagens de baixo nível de abstração como C, ou linguagens com enfoque matemático como MATLAB.

E os chefes de departamento geralmente mantêm o curso, apontando para tabelas de classificação anuais de linguagens de programação como o Índice TIOBE ou este do IEEE:

A maioria dessas tabelas de classificação é virtualmente idêntica a como era há 10 anos.

Mas a mudança acontece. Até na academia.

Em 2014, o Python ultrapassou o Java como a linguagem de instrução mais popular nos principais programas de Ciência da Computação dos Estados Unidos.

E ainda outra mudança está fadada a ... eventualmente ... acontecer.

Porque se você olhar para as linguagens realmente usadas pela força de trabalho, verá um quadro muito diferente:

Mais da metade de todos os desenvolvedores usam JavaScript. É vital para o desenvolvimento front-end da web e cada vez mais relevante para o desenvolvimento back-end. E está se expandindo rapidamente em áreas como desenvolvimento de jogos e Internet das Coisas.

As ofertas de emprego também mencionam JavaScript mais do que qualquer linguagem de programação diferente de Java:

Não é por acaso que construímos o currículo de nossa comunidade de código aberto em torno do JavaScript. Nos últimos dois anos, mais de 5.000 pessoas usaram o Free Code Camp para conseguir seu primeiro emprego de desenvolvedor.

Não estou defendendo o JavaScript porque o ensino. Eu ensino JavaScript porque é o caminho mais seguro para um primeiro trabalho de desenvolvedor.

Mas o JavaScript é certo para você? É digno de ser sua primeira linguagem de programação? Vamos explorar os fatores que mencionei anteriormente.

Fator # 1: O mercado de trabalho

Se você está aprendendo a programar puramente por curiosidade intelectual, sinta-se à vontade para pular esse fator. Mas se você - como a grande maioria das pessoas que estão aprendendo a programar - quiser usar essa habilidade para conseguir um emprego, essa é uma consideração importante.

Como mencionei anteriormente, Java é mencionado em mais ofertas de empregos do que qualquer outra linguagem de programação. JavaScript é um segundo próximo.

Mas o problema é o JavaScript: embora já exista há 20 anos, ele só recentemente se tornou uma ferramenta séria com a qual empresas como Netflix, Walmart e PayPal desenvolveriam aplicativos inteiros.

Como resultado, muitas empresas estão contratando desenvolvedores de JavaScript, mas simplesmente não existem tantos no mercado de trabalho.

Existem 2.7 desenvolvedores Java competindo por cada posição aberta em Java. A competição por empregos em PHP e iOS é igualmente acirrada.

Mas para cada posição JavaScript aberta, existem apenas 0,6 desenvolvedores de JavaScript. É um mercado de vendedores para desenvolvedores com habilidades em JavaScript.

Fator 2: As perspectivas de longo prazo

O projeto JavaScript médio recebe duas vezes mais solicitações pull do que o projeto Java, Python ou Ruby médio. Além disso, o JavaScript está crescendo mais rápido do que qualquer outra linguagem popular.

O ecossistema do JavaScript também se beneficia de um grande investimento de dinheiro e talentos de engenharia de empresas como Google, Microsoft, Facebook e Netflix.

Por exemplo, TypeScript (um superconjunto estaticamente tipado de JavaScript) tem mais de 100 colaboradores de código aberto, muitos dos quais são funcionários da Microsoft e do Google sendo pagos para trabalhar nele.

Esse tipo de cooperação entre empresas é mais difícil de encontrar com Java. A Oracle - que efetivamente possui o Java por meio da aquisição da Sun Microsystems - costuma processar empresas que tentam expandi-lo.

Fator # 3: dificuldade de aprender

A maioria dos programadores concordaria que as linguagens de script de alto nível são relativamente fáceis de aprender. JavaScript se enquadra nesta categoria, junto com Python e Ruby.

Embora as universidades ainda ensinem linguagens como Java e C ++ como primeiras linguagens, elas são consideravelmente mais difíceis de aprender.

Fator 4: Projetos que você pode construir com ele

É aqui que o JavaScript realmente brilha. JavaScript é executado em qualquer dispositivo que tenha um navegador, ali mesmo no navegador. Você pode construir basicamente qualquer coisa com JavaScript e compartilhar em qualquer lugar.

Por causa da onipresença do JavaScript, o cofundador do Stack Overflow, Jeff Atwood, cunhou sua lei agora famosa:

“Qualquer aplicativo que pode ser escrito em JavaScript, vai finalmente ser escrito em JavaScript.”

E a cada mês que passa, a Lei de Atwood se mantém forte.

Java uma vez prometeu rodar em qualquer lugar também. Você deve se lembrar de Applets Java. A Oracle os matou oficialmente no início deste ano.

Python sofre praticamente dos mesmos problemas:

“Como posso dar este jogo que fiz ao meu amigo? Melhor ainda, existe uma maneira de colocar isso no meu telefone para que eu possa mostrar para as crianças na escola sem que elas tenham que instalá-lo? Hum. ” - James Hague em Retiring Python as a Teaching Language

Em contraste, aqui estão alguns aplicativos que os membros de nossa comunidade de código aberto desenvolveram em seus navegadores no CodePen. Você pode clicar e usar diretamente no seu navegador:

Aprenda bem um idioma. Então aprenda um segundo.

Se você pular de uma língua para outra, não irá longe.

Para ir além do básico, você precisa aprender bem sua primeira língua. Então, seu segundo idioma será muito, muito mais fácil.

A partir daí, você pode diversificar e se tornar um desenvolvedor mais completo, aprendendo vários idiomas:

  • C é uma ótima maneira de aprender como os computadores realmente funcionam em termos de gerenciamento de memória e é útil na computação de alto desempenho
  • C ++ é ótimo para desenvolvimento de jogos.
  • Python é incrível para ciência e estatística.
  • Java é importante se você deseja trabalhar em grandes empresas de tecnologia.

Mas aprenda JavaScript primeiro.

OK, agora vou tentar o impossível - vou tentar antecipar as objeções da seção de comentários.

Objeção nº 1: Mas o JavaScript não é lento?

JavaScript é - para a maioria dos propósitos práticos - tão rápido quanto as linguagens de alto desempenho.

JavaScript (Node.js) é ordens de magnitude mais rápido que Python, Ruby e PHP.

Também é quase tão rápido quanto linguagens de alto desempenho como C ++, Java e Go.

Aqui estão os resultados da mais recente comparação entre idiomas abrangente:

Objeção nº 2: mas o JavaScript não é digitado estaticamente

Como Python e Ruby, o JavaScript é digitado dinamicamente, o que é conveniente. Mas você pode ter problemas. Aqui pretendo exampleArrayser um array. Defino seus valores e verifico seu comprimento - ou seja, o número de elementos que contém.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Mas então eu acidentalmente atribuo isso a uma string.

exampleArray = “text” -> “text” exampleArray.length -> 4

Esses tipos de erros acontecem o tempo todo em linguagens digitadas dinamicamente. A maioria dos desenvolvedores apenas implementa verificações para evitá-los e escreve os testes de acordo.

Se você absolutamente deve ter digitação estática em sua primeira linguagem de programação, ainda assim recomendo que você aprenda JavaScript primeiro. Então você pode aprender rapidamente o TypeScript.

“Texto digitado tem uma curva de aprendizado, mas se você já conhece JavaScript, será fácil.” - Alex Ewerlöf no TypeScript

Objeção nº 3: Mas eu realmente quero fazer um aplicativo móvel

Ainda recomendo aprender JavaScript primeiro.

  1. JavaScript apresenta várias ferramentas para fazer aplicativos móveis nativos, como Angular Cordova e React Native.
  2. Para que seu aplicativo móvel realmente faça algo interessante, provavelmente precisará de um back-end adequado, que você desejará construir com uma estrutura de desenvolvimento web adequada, como Node.js + Express.js.

Além disso, vale ressaltar que os melhores dias do desenvolvimento de aplicativos móveis podem muito bem ter ficado para trás.

Para começar, por mais que as pessoas usem aplicativos móveis, quase metade de todos os trabalhos de desenvolvedor são de desenvolvimento web. Compare isso com apenas 8% dos empregos que envolvem o desenvolvimento de aplicativos móveis.

A grande visão de “existe um aplicativo para isso” não se concretizou. Em vez disso, a maioria dos proprietários de smartphones parou de baixar novos aplicativos.

Claro - eles ainda usam aplicativos. Principalmente Facebook, Google Maps e vários outros. Como tal, grande parte da demanda por desenvolvedores de aplicativos móveis está concentrada em alguns grandes empregadores.

A perspectiva para esses empregos de desenvolvimento móvel é difícil de prever. Muitos aspectos de desenvolvimento, manutenção e distribuição de aplicativos móveis são mais fáceis com JavaScript. Portanto, empresas como o Facebook e o Google estão investindo pesadamente em ferramentas melhores para construí-las usando JavaScript.

A partir de 2016, praticamente todo o desenvolvimento é desenvolvimento web. Tudo toca nessa grande plataforma que é "a web". E a próxima onda de dispositivos com os quais você falará em sua casa, e carros que buscam seus filhos na escola - todos estarão conectados usando a web também.

E isso significa JavaScript.

Objeção nº 4: O JavaScript não é uma linguagem de brinquedo que foi escrita em 10 dias?

JavaScript tem uma história peculiar.

Sem dúvida, você ouvirá as pessoas fazerem piadas às custas dele.

Bem, as pessoas também adoram odiar em C ++. E, como o JavaScript, o C ++ teve sucesso apesar desse ódio, e agora também está em quase todos os lugares.

Portanto, se alguém dificultar o aprendizado de JavaScript em vez da linguagem de elite da semana, lembre-se das famosas palavras do cara que criou o C ++:

“Existem apenas dois tipos de linguagens de programação: aquelas pessoas sempre reclamam e aquelas que ninguém usa.” - Bjarne Stroustrup

Eu só escrevo sobre programação e tecnologia. Se você me seguir no Twitter, não vou perder seu tempo. ?