Que Linguagem de Programação Devo Aprender Primeiro em 2021? ʇdıɹɔsɐʌɐɾ :ɹǝʍsuɐ

A viagem da maioria das pessoas para aprender a programar começa com uma única pesquisa Google tardia.

Usualmente é algo como “Aprender ______”

Mas como decidem qual a linguagem a pesquisar?

“Eles brincam sempre com Java no Vale do Silício. Acho que devia aprender isso.”

Or:

“Haskell. Tão quente neste momento. Haskell”

Or:

“That Go gopher is just so gosh-darn cute.”

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

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

Poucas perguntas são tão vulgarmente feitas que se obtenha o tratamento infográfico completo. Mas esta é uma delas:

Image credit

Decidir sobre a sua primeira linguagem de programação pode ser um processo divertido – como um daqueles “Que personagem Quentin Tarantino é você?”, mas antes de fugir para aprender Ruby porque gostava de brincar com Play-Doh quando era criança, deixe-me lembrar-lhe: as apostas aqui são bastante altas.

Levar-lhe-á centenas de horas de prática para se tornar mesmo remotamente competente com a sua primeira linguagem de programação.

Por isso deve considerar os seguintes factores:

  • o mercado de trabalho para a língua
  • as perspectivas a longo prazo para a língua
  • como é fácil aprender a língua
  • que projectos pode construir enquanto aprende (e partilhar com os amigos para se manter motivado)
  • p>Todos os anos traz novas linguagens de programação, e com elas, novos trabalhos académicos. E novas histórias em quadrinhos da web.

    Seriamente. Veja esta gema do mês passado:

    Quando se trata de escolher uma primeira linguagem de programação, não há falta de opções. Para a reduzir um pouco, aqui estão as pesquisas mais comuns no Google relacionadas com programação de aprendizagem, nos últimos 12 anos:

    Java teve os seus altos e baixos.

    Python tem subido gradualmente para se tornar a escolha mais popular.

    Mas escondido abaixo destes está o Pequeno Motor Que Podia, lentamente, escolher em popularidade ao longo dos últimos anos. E esse motor é JavaScript.

    Antes de falar sobre estas linguagens de programação, deixem-me esclarecer:

    • Não estou a argumentar que qualquer linguagem é objectivamente melhor do que qualquer outra
    • Concordo que os programadores devem eventualmente aprender mais do que uma linguagem
    • Estou a argumentar que primeiro eles devem aprender bem uma língua. E – como pode provavelmente adivinhar pelo texto de cabeça para baixo no meu cabeçalho – essa linguagem deveria ser JavaScript.

    P>Vamos dar o pontapé de saída ao explorar como a programação é actualmente ensinada na escola.

    Computer Science 101

    Universidades têm tradicionalmente ensinado programação sob o guarda-chuva da informática, que por sua vez é muitas vezes vista como uma extensão da matemática, ou uma ligação a um diploma de engenharia eléctrica.

    Of curso, como já deve ter ouvido falar:

    “A educação em informática não pode fazer de ninguém um programador especialista, tal como o estudo de pincéis e pigmentos pode fazer de alguém um pintor especialista”. – Eric S. Raymond

    As de 2016, muitas universidades ainda tratam a programação como se fosse informática, e a informática como se fosse matemática.

    Como resultado, muitos cursos introdutórios de programação centram-se em linguagens de baixo nível de abstracção como o C, ou linguagens com foco matemático como o MATLAB.

    E as cadeiras de departamento geralmente permanecem no curso, apontando para quadros superiores anuais de linguagem de programação como o Índice TIOBE, ou este do IEEE:

    p> A maioria destes quadros superiores parecem virtualmente idênticos ao que eram há 10 anos atrás.

    Mas a mudança acontece. Mesmo no meio académico.

    Em 2014, Python ultrapassou Java como a linguagem de ensino mais popular nos principais programas de Informática dos EUA.

    E mais uma mudança está destinada a… eventualmente… acontecer.

    Porque se olharmos para as línguas efectivamente utilizadas pela força de trabalho, pinta uma imagem muito diferente:

    JavaScript é de longe a língua mais popular utilizada pelos 49.397 programadores que responderam ao Inquérito Stack Overflow 2016.

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

    As postagens de trabalho também mencionam o JavaScript mais do que qualquer outra linguagem de programação que não Java:

    Data from the world’s largest job posting aggregator, Indeed.com

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

    p> Não estou a defender o JavaScript porque o ensino. Eu ensino JavaScript porque é o caminho mais seguro para um primeiro emprego de programador.

    Mas será o JavaScript ideal para si? É digno de ser a sua primeira linguagem de programação? Vamos explorar os factores que mencionei anteriormente.

    Factor #1: O mercado de trabalho

    Se está a aprender a programar puramente por curiosidade intelectual, sinta-se à vontade para saltar este factor. Mas se – como a grande maioria das pessoas que estão a aprender a programar – quiser usar esta habilidade para obter um emprego, esta é uma consideração importante.

    Como mencionei anteriormente, Java é mencionado em mais anúncios de emprego do que qualquer outra linguagem de programação. O JavaScript é um segundo próximo.

    Mas eis a questão do JavaScript: embora já exista há 20 anos, só recentemente se tornou uma ferramenta séria que empresas como a Netflix, Walmart, e PayPal construiriam aplicações inteiras.

    Como resultado, muitas empresas estão a contratar programadores de JavaScript, mas não há assim tantas no mercado de trabalho.

    Data from Indeed.com

    Existem 2.7 programadores Java a competir por cada posição Java em aberto. A competição por trabalhos em PHP e iOS é igualmente feroz.

    mas para cada posição JavaScript aberta, existem apenas 0.6 programadores JavaScript. É muito um mercado de vendedores para programadores com competências em JavaScript.

    Factor #2: As perspectivas a longo prazo

    O projecto JavaScript médio recebe o dobro dos pedidos que o projecto médio Java, Python, ou Ruby. E ainda por cima, o JavaScript está a crescer mais rapidamente que qualquer outra linguagem popular.

    Source: O estado do Octoverso de 2016 do GitHub

    JavaScript’s ecosystem also benefit from a heavy investment of money and engineering talent from companies like Google, Microsoft, Facebook, and Netflix.

    Por exemplo, o TypeScript (um super conjunto de JavaScript de tipo estático) tem mais de 100 colaboradores de código aberto, muitos dos quais são funcionários da Microsoft e do Google a serem pagos para trabalhar nele.

    Este tipo de cooperação entre empresas é mais difícil de encontrar com Java. A Oracle – que efectivamente possui Java através da sua aquisição da Sun Microsystems – processa frequentemente empresas que tentam expandi-la.

    Factor #3: Dificuldade de aprendizagem

    Esta é uma paródia de uma banda desenhada XKCD.

    A maioria dos programadores concordariam que as línguas de scripting de alto nível são relativamente fáceis de aprender. O JavaScript insere-se nesta categoria, juntamente com Python e Ruby.

    P>As universidades ainda ensinam linguagens como Java e C++ como primeiras linguagens, são consideravelmente mais difíceis de aprender.

    Factor #4: Projectos que se podem construir com ele

    É aqui que o JavaScript brilha realmente. O JavaScript corre em qualquer dispositivo que tenha um navegador, mesmo ali no navegador. Pode construir basicamente qualquer coisa com JavaScript, e partilhá-lo em qualquer lugar.

    Por causa da ubiquidade do JavaScript, o co-fundador do Stack Overflow Jeff Atwood cunhou a sua agora famosa lei:

    “Qualquer aplicação que possa ser escrita em JavaScript, será eventualmente escrita em JavaScript.”

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

    Java uma vez prometeu correr para todo o lado, também. Pode lembrar-se de Java Applets. Oráculo matou-os oficialmente no início deste ano.

    Python sofre de muitos dos mesmos problemas:

    “Como posso dar este jogo que fiz ao meu amigo? Melhor ainda, há alguma forma de colocar isto no meu telefone para o poder mostrar às crianças na escola sem que elas tenham de o instalar? Hum.”. – James Hague em Retiring Python as a Teaching Language

    Por contraste, aqui estão algumas aplicações que os membros da nossa comunidade de código aberto construíram nos seus navegadores no CodePen. Pode clicar e utilizar estas à direita no seu navegador:

    1970s style Simon game
    Conway’s Game of Life
    Star Wars-pesquisa temática Wikipedia Search
    Um jogo de masmorra roguelike crawler

    Aprender bem uma língua. Depois aprenda uma segunda.

    Se continuar a saltar de língua em língua, não irá longe.

    Para ir além do básico, precisa de aprender bem a sua primeira língua. Então a sua segunda língua será muito, muito mais fácil.

    A partir daí, pode ramificar-se, e tornar-se um programador mais completo aprendendo muitas línguas:

    • C é uma óptima maneira de aprender como os computadores funcionam realmente em termos de gestão de memória, e é útil em computação de alto desempenho
    • C++ é óptimo para o desenvolvimento de jogos.
    • Python é fantástico para a ciência e estatística.
    • Java é importante se se quiser trabalhar em grandes empresas tecnológicas.

    Mas aprender JavaScript primeiro.

    OK, agora vou tentar o impossível – vou tentar antecipar as objecções da secção de comentários.

    Objecção #1: Mas o JavaScript não é lento?

    JavaScript é – para fins mais práticos – tão rápido como 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 como as linguagens de alto desempenho como C++, Java, e Go.

    Aqui estão os resultados da mais compreensiva referência cruzada recente:

    Objecção #2: Mas o JavaScript não é tipado estaticamente

    Like Python e Ruby, o JavaScript é tipado dinamicamente, o que é conveniente. Mas pode arranjar problemas. Aqui pretendo que exampleArray seja uma matriz. Eu defino os seus valores, depois verifico o seu comprimento – o que significa o número de elementos que contém.

exampleArray = -> exampleArray.length-> 2

Mas depois atribuo-lhe acidentalmente uma string.

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

Estes tipos de erros acontecem a toda a hora em linguagens dinamicamente dactilografadas. A maioria dos programadores limita-se a colocar verificações para os evitar, e a escrever testes em conformidade.

Se tem absolutamente de ter a digitação estática na sua primeira linguagem de programação, então ainda assim recomendo que aprenda JavaScript primeiro. Depois pode rapidamente pegar em TypeScript.

“Typescript tem uma curva de aprendizagem, mas se já conhece JavaScript, será uma curva suave”. – Alex Ewerlöf em TypeScript

Objecção #3: Mas eu realmente quero fazer uma aplicação móvel

Eu ainda recomendo aprender JavaScript primeiro.

  1. JavaScript apresenta várias ferramentas para fazer aplicações móveis nativas, tais como Angular Cordova e React Native.
  2. Para que a sua aplicação móvel possa realmente fazer algo interessante, provavelmente precisará de um back end adequado, que desejará construir com uma estrutura de desenvolvimento web adequada, como Node.js + Express.js.

Também, vale a pena salientar que os melhores dias de desenvolvimento de aplicações móveis podem muito bem estar por trás disso.

Para começar, tanto quanto as pessoas usam aplicações móveis, quase metade de todos os trabalhos de desenvolvimento são desenvolvimento web. Compare isto com apenas 8% dos trabalhos que envolvem o desenvolvimento de aplicações móveis.

As profissões de 49.525 programadores, com base nas respostas ao inquérito Stack Overflow de 2016.

A grande visão de “há uma aplicação para isso” não se concretizou. Em vez disso, a maioria dos proprietários de smartphones deixaram de descarregar novas aplicações.

Sure – eles ainda utilizam aplicações. Principalmente o Facebook, Google Maps, e um punhado de outros. Como tal, grande parte da procura de criadores de aplicações móveis está concentrada em alguns grandes empregadores.

A perspectiva para esses trabalhos de desenvolvimento móvel é difícil de prever. Muitos aspectos do desenvolvimento, manutenção, e distribuição de aplicações móveis são mais fáceis com o JavaScript. Assim, empresas como o Facebook e o Google estão a investir fortemente em melhores ferramentas para as construir utilizando JavaScript.

As de 2016, praticamente todo o desenvolvimento é desenvolvimento web. Tudo toca naquela grande plataforma que é “a web”. E a próxima vaga de dispositivos com que falará em sua casa, e carros que vão buscar os seus filhos à escola – todos eles serão canalizados juntos usando a web, também.

E isso significa JavaScript.

Objecção #4: O JavaScript não é uma linguagem de brinquedos que foi escrita em 10 dias?

JavaScript tem uma história peculiar.

Vai sem dúvida ouvir as pessoas a contar piadas à sua custa.

As pessoas adoram odiar em C++, também. E tal como o JavaScript, C++ foi bem sucedido apesar deste ódio, e agora também está praticamente em todo o lado.

Por isso, se alguém alguma vez lhe der dificuldades para aprender JavaScript em vez de elite-língua da semana, basta lembrar as famosas palavras do tipo que criou C++:

“Há apenas dois tipos de linguagens de programação: aquelas pessoas queixam-se sempre e aquelas que ninguém usa”. – Bjarne Stroustrup

Eu só escrevo sobre programação e tecnologia. Se me seguirem no Twitter, não vou perder o vosso tempo. ?

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *