Qual a melhor linguagem de programação para formar um aluno iniciante ?

Recentemente tive uma discussão bem interessante no SENAI sobre tecnologias e levantamos a seguinte pergunta: Qual a melhor linguagem para formar um aluno iniciante ?

A pergunta é difícil e traz com ela mais perguntas como:

  • Linguagem tipada ou não tipada ?
  • A relevância da linguagem no mercado é importante ?
  • A stack dos professores influencia na escolha ?
  • Até que ponto a performance é importante ?

A discussão valeu muito a pena, apesar de ser um assunto disseminado, não tinha me deparado ainda com a situação e com o dever da escolha.

É difícil responder com 100% de exatidão a essas perguntas, então vou respondê-las com a percepção que tenho sobre o assunto e sobre a reunião.

Linguagem tipada ou não tipada ?

É comum alguns devs e professores discutirem sobre as vantagens e desvantagens de uma linguagem e qual delas é mais fácil de ensinar em sala de aula. Questões relacionadas ao entendimento da sintaxe, curva de aprendizado, instalação e configuração do ambiente e etc, costumam influenciar nessa decisão.

As linguagens, apesar de suas diferenças, têm coisas em comum que podem ser exploradas. Por exemplo, se você ensinar um aluno a fazer um for no Ruby, provavelmente ele consiga reproduzi-lo em outras linguagens sem grandes dificuldades. Logo, a habilidade do aluno em aprender e sua própria motivação é que vai fazê-lo efetivamente progredir.

Então a minha resposta pra essa pergunta é: o fato da linguagem ser ou não tipada, apesar de influenciar de alguma forma na escolha, não é decisivo. Será necessário avaliar outros aspectos pra que sua escolha seja mais efetiva.

A relevância da linguagem no mercado é importante ?

Ensinar uma tecnologia bastante utilizada, com jobs disponíveis, documentação bem feita e com uma comunidade grande agrega muito valor ao aluno. É uma garantia de que se ele se esforçar, conseguirá colher os frutos de seu trabalho no futuro, porque existe demanda.

A comunidade é muito importante, principalmente porque no início da carreira de Dev os bugs acontecem com mais frequência, então qualquer material/conteúdo que possa ser consultado ajuda bastante.

Mas, ainda assim, acredito que esse não é um fator decisivo. Se você escolher uma linguagem com um nível aceitável em relação às características que citei acima, ela já é suficientemente boa, porque não precisa ser a “melhor” e sim adequada para o aprendizado.

A stack dos professores influencia na escolha ?

Não dá pra colocar um professor que não sabe dar aula de um assunto pra dar aula sobre aquele assunto, né ? Não. É comum acontecer esse tipo de coisa e eu na minha vida acadêmica, sou prova disso. Quem nunca teve uma aula de UX com o professor de banco de dados ? hahaha

Não podemos excluir completamente a influência da stack dos professores, seja lá qual for a matéria, é importante que tenhamos um especialista pra falar do assunto.

Lembremos também que se trata de professores, cujas skills são variadas e a habilidade de aprender novas tecnologias é existente. Não é novidade pra ninguém que nós, profissionais de TI, precisamos estar atualizados e dispostos a aprender mais.

Então classifico esse tópico como plano Z, ou seja, caso não existam mais critérios pra justificar a escolha de uma ou outra tecnologia, é possível analisar a stack do professor que fará o curso e decidir, em cima disso, qual tecnologia utilizar.

Até que ponto a performance é importante ?

E por fim, falaremos da performance. Até que ponto ela é importante ? Aqui, nossa análise não é apenas sobre performance, mas sim a influência dela no aprendizado do aluno.

A minha resposta pra essa pergunta é não, a performance, nesse contexto, não é importante. A relevância da performance pra quem está começando é pouca. Talvez pro aluno seja importante aprender “a linguagem mais rápida”, mas sabemos que pra quem está começando, uma linguagem que aplique os conceitos que serão passados em sala de aula é suficiente para dar suporte ao aprendizado.

Com o conceito bem explicado e as aulas práticas em dia, o restante do trabalho está nas mãos do aluno. Aplicar os conceitos, estudar e praticar serão os fatores decisivos aqui.

Conclusão

Conclusão: Você vai levar alguns dias pra decidir isso hahahaha. Não existe uma melhor linguagem de programação para formar um aluno, o que existe são critérios que podem levá-lo a uma solução eficiente e concisa, segue abaixo minha solução para o problema.

O primeiro passo é analisar o mercado, a documentação e a comunidade, não necessariamente nessa ordem, depois a performance. Defendi que a performance não é importante pro aprendizado do aluno e mantenho minha opinião, mas acredito que é um diferencial que pode ser explorado. Depois disso, provavelmente você terá um conjunto de linguagens consideradas boas então é importante entender que independente da linguagem escolhida, ela terá os requisitos necessários para o aprendizado.

O último passo e o mais difícil é escolher uma linguagem entre as escolhidas. Aqui, você pode utilizar, por exemplo, o plano Z. Se vocês estão entre Ruby e Python mas a equipe inteira manja de Python, certamente é a melhor escolha. Com isso, você chega ao cenário ideal que na minha opinião é um curso de uma linguagem relevante no mercado, performática, documentada e com professores que manjam do assunto.

Percebam que não usei o quesito “tipagem” como fator decisivo, porque apesar da relevância, acho que ele atrapalha nas discussões, sempre haverá os que são contra e os que são a favor.

Acima de tudo, bom senso. Se você encontrar um critério que julgue importante, encaixe-o em sua estratégia e seja feliz.

É isso, dúvidas e sugestões são sempre bem-vindas, comentem e vamos falar mais sobre o assunto :)

Valeu, abraço !

Show your support

Clapping shows how much you appreciated Gustavo Gois Cardoso’s story.