A jornada da maioria das pessoas rumo ao aprendizado de programação começa com uma única busca noturna no Google.
Geralmente é algo como “Aprender ______”
Mas como eles decidem qual linguagem pesquisar?
“Eles sempre brincam sobre Java em Silicon Valley. Acho que devo aprender isso.”
Ou:
“Haskell. Está tão em alta agora. Haskell.”
Ou:
“Aquele gopher do Go é tão adorável.”
E então, há o resto de nós.
Provavelmente vamos buscar algo como: “Qual linguagem de programação devo aprender primeiro?”
Poucas perguntas são tão frequentemente feitas que recebem um tratamento completo em infográficos. Mas esta é uma delas:
Decidir sua primeira linguagem de programação pode ser um processo divertido — meio como um daqueles quizzes de personalidade “Qual personagem do Quentin Tarantino você é?”.
Mas antes de você sair correndo para aprender Ruby porque gostava de brincar com Play-Doh quando era criança, deixe-me lembrar: as apostas são bastante altas aqui.
Levará centenas de horas de prática para você se tornar minimamente competente com 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 para a linguagem
- quão fácil a linguagem é de aprender
- quais projetos você pode construir enquanto aprende (e compartilhar com amigos para se manter motivado)
Cada ano traz novas linguagens de programação, e com elas, novos artigos acadêmicos. E novas tirinhas na web.
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 buscas mais comuns no Google relacionadas ao aprendizado de programação, nos últimos 12 anos:
Java teve seus altos e baixos.
Python gradualmente se tornou a escolha mais popular.
Mas escondido abaixo dessas está a Pequena Locomotiva que Poderia, subindo lentamente em popularidade ao longo dos últimos anos. E essa locomotiva é JavaScript.
Antes de eu falar sobre essas linguagens de programação, deixe-me esclarecer:
- Não estou argumentando que uma linguagem é objetivamente melhor que a outra
- Concordo que os desenvolvedores deveriam eventualmente aprender mais de uma linguagem
- Estou argumentando que primeiro eles devem aprender uma linguagem bem. E — como você 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 é atualmente ensinada nas escolas.
Ciência da Computação 101
As universidades tradicionalmente ensinaram programação sob a égide da ciência da computação, que muitas vezes é vista como uma extensão da matemática, ou uma conexão com um diploma em engenharia elétrica.
Claro, como você pode ter ouvido até agora:
“A educação em ciência da computação não pode tornar ninguém um programador especialista mais do que estudar pincéis e pigmento pode tornar alguém um pintor especialista.” — Eric S. Raymond
Muitas universidades ainda tratam a programação como se fosse ciência da computação, e a ciência da computação como se fosse matemática.
Como resultado, muitos cursos introdutórios de programação se concentram em linguagens de baixo nível de abstração, como C, ou linguagens com foco matemático, como MATLAB.
E os chefes de departamento geralmente permanecem firmes, apontando para classificações anuais de linguagens de programação, como o Índice TIOBE, ou este da IEEE:
A maioria dessas classificações parece virtualmente idêntica a como eram há 10 anos.
Mas mudanças acontecem. Até mesmo na academia.
Em 2014, Python superou Java como a linguagem de instrução mais popular nos principais programas de Ciência da Computação dos EUA.
E outra mudança está prestes a… eventualmente… acontecer.
Porque se você olhar para as linguagens realmente usadas pela força de trabalho, a imagem é bem diferente:
JavaScript é, de longe, a linguagem mais popular entre os 49.397 desenvolvedores que responderam à Pesquisa do Stack Overflow.
Mais da metade de todos os desenvolvedores usam JavaScript. É vital para o desenvolvimento front-end e cada vez mais relevante para o back-end. E está se expandindo rapidamente para áreas como desenvolvimento de jogos e Internet das Coisas.
As ofertas de emprego também mencionam JavaScript mais do que qualquer outra linguagem de programação, exceto Java:
Dados do maior agregador de anúncios de emprego do mundo, [Indeed.com]
Não é por acaso que construímos o currículo da 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 como desenvolvedor.
Não estou defendendo o JavaScript porque o ensino. Ensino JavaScript porque é o caminho mais seguro para um primeiro emprego como desenvolvedor.
Mas o JavaScript é certo para você? Vale a pena 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 este fator. Mas se você — como a vasta maioria das pessoas que aprendem a programar — deseja usar essa habilidade para conseguir um emprego, isso é uma consideração importante.
Como mencionei anteriormente, Java é mencionado em mais anúncios de emprego do que qualquer outra linguagem de programação. JavaScript é um segundo lugar próximo.
Mas aqui está a questão sobre o JavaScript: embora esteja por aí há 20 anos, só recentemente se tornou uma ferramenta séria com a qual empresas como Netflix, Walmart e PayPal construiriam aplicações inteiras.
Como resultado, muitas empresas estão contratando desenvolvedores JavaScript, mas simplesmente não há tantos no mercado de trabalho.
Dados do [Indeed.com]
Existem 2,7 desenvolvedores Java competindo para cada vaga aberta de Java. A competição por empregos em PHP e iOS é igualmente feroz.
Mas para cada vaga aberta de JavaScript, há apenas 0,6 desenvolvedores JavaScript. É, de fato, um mercado favorável para desenvolvedores com habilidades em JavaScript.
Fator #2: As perspectivas de longo prazo
O projeto médio de JavaScript recebe o dobro de pull requests em comparação ao projeto médio de Java, Python ou Ruby. E além disso, JavaScript está crescendo mais rápido do que qualquer outra linguagem popular.
As linguagens de programação mais amplamente utilizadas em projetos do GitHub, que é um bom indicativo da popularidade geral das linguagens
O ecossistema do JavaScript também se beneficia de um grande investimento de dinheiro e talento em engenharia de empresas como Google, Microsoft, Facebook e Netflix.
Por exemplo, TypeScript (um superconjunto de JavaScript tipado estaticamente) tem mais de 100 contribuidores 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 através da aquisição da Sun Microsystems — frequentemente processa empresas que tentam expandir suas funcionalidades.
Fator #3: Dificuldade de aprendizado
Esta é uma paródia de uma [tirinha do XKCD]
A maioria dos programadores concordaria que linguagens de script de alto nível são relativamente fáceis de aprender. JavaScript se encaixa nessa 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 isso
É aqui que o JavaScript realmente brilha. JavaScript roda em qualquer dispositivo que tenha um navegador, diretamente no navegador. Você pode construir basicamente qualquer coisa com JavaScript e compartilhá-la em qualquer lugar.
Devido à onipresença do JavaScript, o co-fundador do Stack Overflow, Jeff Atwood, criou sua famosa lei:
“Qualquer aplicação que pode ser escrita em JavaScript, será eventualmente escrita em JavaScript.”
E a cada mês que passa, a Lei de Atwood se mantém firme.
O Java também prometeu rodar em qualquer lugar. Você pode se lembrar dos Java Applets. A Oracle os descontinuou oficialmente no início deste ano.
O Python enfrenta problemas muito semelhantes:
“Como posso dar este jogo que fiz para o meu amigo? Melhor ainda, há uma maneira de colocar isso no meu celular para que eu possa mostrar para as crianças na escola sem que elas precisem instalar? Hum.” — James Hague em A aposentadoria do Python como linguagem de ensino
Em contraste, aqui estão alguns aplicativos que membros da nossa comunidade de código aberto construíram em seus navegadores no CodePen. Você pode clicar e usá-los diretamente em seu navegador:
Jogo Simon no estilo dos anos 70
Busca na Wikipedia temática de Star Wars
Um jogo de dungeon crawler estilo roguelike
Aprenda uma linguagem bem. Depois aprenda uma segunda.
Se você continuar pulando de linguagem para linguagem, não irá muito longe.
Para avançar além do básico, você precisa aprender bem sua primeira linguagem. Então, sua segunda linguagem será muito mais fácil.
A partir daí, você pode diversificar e se tornar um desenvolvedor mais completo aprendendo várias linguagens:
- C é uma ótima maneira de aprender como os computadores realmente funcionam em termos de gerenciamento de memória e é útil em computação de alto desempenho.
- C++ é excelente para desenvolvimento de jogos.
- Python é incrível para ciência e estatísticas.
- Java é importante se você quiser trabalhar em grandes empresas de tecnologia.
Mas aprenda JavaScript primeiro.
Ok, agora vou tentar o impossível — vou tentar antecipar objeções da seção de comentários.
Objeção #1: Mas o JavaScript não é lento?
JavaScript é — para a maioria dos propósitos práticos — tão rápido quanto 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 do benchmark mais abrangente recente entre linguagens:
Objeção #2: Mas o JavaScript não é tipado estaticamente?
Assim como Python e Ruby, o JavaScript é tipado dinamicamente, o que é conveniente. Mas você pode se meter em problemas. Aqui, pretendo que exampleArray
seja um array. Defino seus valores e depois verifico seu comprimento — ou seja, o número de elementos que contém.
exampleArray = [1, 2]
-> [1, 2]
exampleArray.length
-> 2
Mas então, acidentalmente, atribuo a ele um valor de string.
exampleArray = “texto”
-> “texto”
exampleArray.length
-> 4
Esses tipos de erros acontecem o tempo todo em linguagens tipadas dinamicamente. A maioria dos desenvolvedores apenas implementa verificações para evitá-los e escreve testes de acordo.
Se você realmente precisa de tipagem estática na sua primeira linguagem de programação, ainda assim recomendo que você aprenda JavaScript primeiro. Depois, você pode rapidamente aprender TypeScript.
“TypeScript tem uma curva de aprendizado, mas se você já conhece JavaScript, será uma transição suave.” — Alex Ewerlöf sobre TypeScript
Objeção #3: Mas eu realmente quero fazer um aplicativo móvel
Ainda recomendo aprender JavaScript primeiro.
- O JavaScript possui diversas ferramentas para criar aplicativos móveis nativos, como Angular Cordova e React Native.
- Para que seu aplicativo móvel realmente faça algo interessante, ele provavelmente precisará de um back-end adequado, que você vai querer construir com um framework de desenvolvimento web apropriado, como Node.js + Express.js.
Além disso, vale a pena destacar que os melhores dias do desenvolvimento de aplicativos móveis podem muito bem ter ficado para trás.
Para começar, embora as pessoas usem bastante aplicativos móveis, quase metade de todos os empregos de desenvolvedores está ligada ao desenvolvimento web. Compare isso com apenas 8% de trabalhos que envolvem o desenvolvimento de aplicativos móveis.
Desenvolvedores por ocupação, de acordo com a Pesquisa Stack Overflow 2023. Esta pergunta teve 76.872 respostas de desenvolvedores que participaram da pesquisa, portanto, é bastante representativa.
A grande visão de “existe um aplicativo para isso” não se concretizou. Em vez disso, a maioria dos proprietários de smartphones deixou de baixar novos aplicativos.
Claro — eles ainda usam aplicativos. Principalmente Facebook, Google Maps e alguns outros. Assim, 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 do desenvolvimento, manutenção e distribuição de aplicativos móveis são mais fáceis com JavaScript. Portanto, empresas como Facebook e Google estão investindo pesadamente em melhores ferramentas para construir esses aplicativos usando JavaScript.
Praticamente todo o desenvolvimento é desenvolvimento web. Tudo se conecta a essa grande plataforma que é “a web.” E a próxima onda de dispositivos com os quais você conversará em casa, e carros que buscam seus filhos na escola — todos eles também estarão interconectados através da web.
E isso significa JavaScript.
Objeção #4: O JavaScript não é uma linguagem de brinquedo que foi escrita em 10 dias?
O JavaScript tem uma história peculiar.
Você certamente ouvirá pessoas fazerem piadas a seu respeito.
Bem, as pessoas também adoram criticar o C++. E, assim como o JavaScript, o C++ teve sucesso apesar desse ódio, e agora está praticamente em todos os lugares.
Então, se alguém algum dia te criticar por aprender JavaScript em vez da linguagem de elite da semana, apenas lembre-se das famosas palavras do criador do C++:
“Existem apenas dois tipos de linguagens de programação: aquelas que 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 não vou desperdiçar seu tempo. ?
O conteúdo deste artigo foi traduzido do artigo original.