Por qual Linguagem de Programação Começar? – Parte I

Tempo de leitura: 8 minutos

Escolher uma linguagem para iniciar os estudos de programação é uma questão fundamental para todas as pessoas que querem começar uma carreira como desenvolvedor de software.

A resposta a esse questionamento não é uma resposta simples, fechada em uma afirmação categórica.

Mas é bastante razoável que possamos simplificar o processo decisório analisando mais de perto o problema e evitando a resposta padrão que é oferecida ao iniciante por todo mundo que tem mais experiência: “Ah, isso depende… “.

Claro que a escolha de uma linguagem para estudar pode depender de muitos fatores e circunstâncias como por exemplo a oferta e demanda de oportunidades no momento em que se está começando uma carreira de desenvolvedor.

A atratividade de uma linguagem específica pode realmente flutuar ao longo do tempo, mas essencialmente é necessário descobrir:

Qual é o seu objetivo?

Qual o caminho você quer seguir?

Pensar de outra maneira seria colocar a carroça na frente dos bois e dependendo da resposta a essas perguntas uma linguagem pode ser melhor do que outra ou mais recomendada do que outra.

Claro que muitas vezes você pode usar mais de uma linguagem para o mesmo objetivo.

Mas a melhor coisa a fazer é organizar as principais opções que o mercado oferece para uma especialização como desenvolvedor.


Internet da Coisas

Criação e Desenvolvimento de Jogos

Desenvolvimento Mobile

Machine Learning e Inteligência Artifical

Aplicações Desktop

Desenvolvimento Web


Vamos considerar essas seis opções para começar a aprender programação pode ter como programador e a partir delas montar alguns cenários e analisar as linguagens mais populares para cada uma delas

E fique tranquilo se ainda assim ficarem muitas dúvidas. Afinal, você sabe, tudo pode ter solução. Sempre.

Vamos começar pela Internet das Coisas.

Internet das Coisas

Se você tem interesse em trabalhar com internet das coisas você vai precisar de uma linguagem de programação que seja mais baixo nível.

O que isso que dizer?

Isso que dizer que você precisa controlar o comportamento do hardware.

Veja que uma coisa é você mandar o seu código imprimir na impressora uma mensagem qualquer, como por exemplo a data de hoje usando o Javascript.

Outra coisa completamente diferente é colocar a tinta ou o toner corretamente no papel.

Ou seja, tem que existir um programa rodando nos chips da impressora que controle a cabeça de impressão para produzir os caracteres impressos.

Para fazer isso, o programador que fez o código que está rodando na impressora usou uma linguagem de baixo nível.

Uma linguagem que consiga controlar diretamente o hardware, como por exemplo a linguagem C++.

Por isso o nome baixo nível.

Diferente das linguagens de programação mais amigáveis para os desenvolvedores, as chamadas linguagens de alto nível que fazem completa abstração do hardware utilizado para fazer a impressão.

Tanto faz se a impressora é uma laser ou uma jato de tinta.

Uma linguagem de alto nível não toma conhecimento desse fato.

Mas voltando ao nosso tema original, com a internet das coisas você vai controlar o comportamento de coisas no mundo físico: apagar luzes, ligar e desligar equipamentos, disparar alarmes, detectar intrusos, perceber o aumento ou diminuição de temperaturas, falhas de sistemas, abrir portas, controlar válvulas e motores, e muitas outras coisas.

Normalmente são comportamentos ligados à automação residencial, comercial, predial, rural ou industrial.

Podemos ainda pensar nos sistemas conhecidos como embarcados.

Geralmente de funcionamento complexo, esses sistemas controlam funções importantes em aeronaves, plataformas de petróleo, usinas nucleares, trens e hoje em dia a maioria dos carros adota em maior ou menor grau dispositivos eletrônicos de controle comandados por software.

Por outro lado, está cada vez mais difícil imaginar um equipamento, mesmo que seja de uso doméstico,  que não tenha algum software de controle para suas funções, ainda que o dispositivo não esteja integrado em uma rede que permita o envio e o recebimento de mensagens de informação e/ou controle.

Em uma residência moderna, seria interessante monitorarmos o consumo de energia elétrica e podermos ser avisados por uma mensagem enviada para o smartphone se o consumo de algum aparelho está fora do padrão.

Também poderíamos ser avisados de qualquer evento que quiséssemos, tais como “o assado ficou pronto”, “o nível e a temperatura da água da banheira estão perfeitos” e, ainda mais importante, “Vazamento de gás na cozinha!!!”.

Esses exemplos são apenas alguns poucos para ilustrar a aplicação do que estamos falando.

Se você pretende começar a aprender sobre a internet das coisas é uma boa idéia você iniciar programando plataformas de desenvolvimento como Raspberry Pi  ou Arduino.

E nesse caso, para ter mais poder de controlar o hardware, a linguagem que seria uma boa opção para investir nos seus estudos seria a linguagem C.

A linguagem C é a mais simples do mundo especialmente para começar, mas é uma linguagem muito poderosa porque vai te dar muito controle sobre os dispositivos.

E tem um bônus: quem consegue dominar o C, depois consegue aprender com muita facilidade qualquer outra linguagem.

Criação e Desenvolvimento de Jogos

A segunda opção que comentaremos pode ser o hobby e a diversão de muita gente.

Estamos falando de criação e desenvolvimento de jogos.

Em desenvolvimento de jogos a gente quer uma linguagem que seja tenha funções otimizadas para trabalhar com cálculos matemáticos e gráficos de uma forma bem veloz, mas que também seja amigável para o programador e que tenha outras funcionalidades como, por exemplo, a capacidade de lidar com orientação a objetos.

Isso vai facilitar um pouco na hora da criação e da implementação.

Nesse caso a linguagem mais apropriada provavelmente seria C++, mas nesse ponto devemos fazer algumas observações já que a escolha da linguagem pode ser influenciada pelo tipo de jogo que você quer criar.

Por exemplo, se você vai utilizar alguma plataforma como a Unity. Na Unity utiliza-se C# que passaria a ser a sua opção.

E nesse você vai ter que se adequar às ferramentas que você vai utilizar para criação dos seus jogos, mas graças a Deus que elas existem…

De outra forma, se você sonha com jogos para web, talvez o Javascript seja uma boa opção.

Mas e se a gente quisesse criar jogos para celular,

qual é a melhor linguagem?

Podemos também utilizar a estratégia Unity, mas vamos estender essa discussão para podermos incluir o desenvolvimento de aplicações mobile em geral.

Desenvolvimento Mobile

Se a gente está falando de desenvolvimento para celular, a primeira decisão que se precisa tomar é se essa gente quer desenvolver para Android, IOS ou para os dois sistemas operacionais.

Antigamente era necessário optar pela linguagem baseando-se na escolha do sistema operacional, o que significava Java para o Android e Objective-C para o IOS.

Como tudo que existe em tecnologia da informação, as coisas evoluíram e apareceu o Kotlin para o Android como uma alternativa.

Mesmo porque a Oracle, desenvolvedora e proprietária do Java, começava a dar sinais de que iria exigir licenciamento para o uso da linguagem, ou seja, o uso do Java deixaria de ser livre.

Nesse momento já poderíamos escolher entre java ou Kotlin para o Android, mas veio também o Swift para o IOS. 

Então podemos também escolher entre Objective-C e Swift para criar aplicações nativas para IOS.

Isso parece que ficou muito bom, ter essas opções de escolha, mas observer que ainda estamos falando em aprender duas linguagens diferentes para poder desenvolver para os dois ambientes das duas plataformas.

Hoje em dia, existem outras soluções como o Flutter e o React Native.

O Flutter utiliza uma linguagem chamada DART e é uma iniciativa do próprio Google, o que a torna uma linguagem muito interessante de se aprender, considerando que o próprio Android foi feito pela Google. 

Já o React Native é uma iniciativa do Facebook e utiliza Javascript para criar aplicações nativas.

O que é realmente muito bom nessa história: uma vez que você cria o seu aplicativo no Flutter ou no React Native, você poderá ter basicamente o mesmo código rodando tanto no Android quanto no IOS.

Então a dica é se você decidir seguir para o desenvolvimento mobile, considere ir para a DART se você quiser utilizar o flutter ou o Javascript para usar o React Native.

Continue lendo esse artigo em “Por qual Linguagem de Programação Começar? – Parte II”.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *