Skip links

Programação: Qual linguagem devo iniciar?

Mais importante do que isso, qual área você se identifica mais? Web, desktop, front-end, back-end, mobile, games, embarcados… Tantas áreas, tantas linguagens disponíveis, e agora?

Acredito, sinceramente, que a linguagem inicial não faça diferença. Claro, algumas linguagens podem ser mais simples em algum quesito, mais difíceis em outro. Mas o ponto principal é aprender os conceitos básicos, lógica, e estruturas. Isso fará toda a diferença…

A disputa do século: Front-end vs Back-end

Enquanto de um lado temos toda a beleza do front-end, do outro temos as funcionalidades e serviços do back-end. Beleza X Funcional; o que você enxerga X o caos de serviços e integrações que devem responder em tempo real.

Algumas pessoas preferem desenvolvimento front-end, talvez pela responsabilidade que é entregar algo atraente e que traga felicidade aos olhos de quem o vê. Outras preferem back-end e os desafios de realizar inúmeras integrações e, ainda assim, retornar uma resposta em tempo real. E, sempre há os que trabalham trafegando os dois mundos; os chamados desenvolvedores full-stack.

Na maioria das empresas de pequeno e médio porte (talvez todas), a gente se vê obrigado a transitar pelos dois lados. Particularmente, eu prefiro navegar pelos mares do back-end, mas me arrisco a brincar um pouco com html/css e, especialmente, com javascript.

Por que eu prefiro back-end? Pelos desafios que ele proporciona, tanto em tempo de respostas, integrações e funcionalidades mas, também, porque não tenho tanta paciência em ficar alinhando todos os componentes da tela e minha criatividade nessa área certamente não é bem desenvolvida.

Mas trabalhar com back-end não significa que será sempre um caos. Como o Daciano comentou em Não vou mais escrever códigos ruins, é importante ter essa consciência de que seus códigos não foram e não são os melhores, mas sempre procurar melhorar sua qualidade. Certamente um livro que vale a pena ler para melhorar sua qualidade de código é Clean Code: A Handbook of Agile Software Craftsmanship.

Tecnologias envolvidas

Caso opte por programação front-end, HTML, CSS e Javascript são tecnologias obrigatórias. Sass, Json, e um dos inúmeros frameworks javascript (especialmente Angular, React ou Vue) são importantes para o avanço nessa área.

Por outro lado, com back-end, existem inúmeras linguagens de programação e, certamente vão depender da empresa ou das necessidades. Entre as mais importantes, não necessariamente nessa ordem, temos PHP (ainda muito presente em páginas web), Java, C#, C/C++, Ruby.

Ainda há desenvolvimento Mobile, onde Java e agora Kotlin (para Android) e Swift (para iOS), ou frameworks híbridos, como React Native, Ionic, Xamarin, entre outros. No mundo de games, plataformas como Unity ou Unreal, utilizando linguagens C# ou C++. E, para sistemas embarcados, especialmente C/C++.

Por onde começar?

Antes de começar a falar de linguagens especificamente, tenha em mente que uma base bem fundamentada de lógica e algoritmos irá lhe trazer muita facilidade em aprender qualquer linguagem de programação, indiferente da primeira linguagem de programação aprendida. Maurício listou inúmeras plataformas disponíveis para aprender qualquer linguagem desejada (Self-Education – O único tipo de educação que existe!).

Portugol

Portugol não é, necessariamente, uma linguagem de programação, mas sim uma pseudolinguagem que permite aprender os conceitos de programação utilizando palavras em português (que são mais familiares do que os comandos em inglês comumente utilizados na maioria das linguagens). Certamente auxilia no raciocínio lógico e desenvolvimento de algoritmos iniciais. No entanto, não há como programar profissionalmente em portugol.

Eu aprendi algoritmos utilizando portugol (mais especificamente, um ambiente chamado Ambap). Apesar de ter sofrido um pouco ao começar a aprender posteriormente C++, o ambiente trazia uma opção de execução passo a passo (semelhante a um debug), que facilitou, e muito, meu aprendizado em algoritmos. Podendo ver a execução linha a linha, conseguia ver o que acontecia com as variáveis a cada alteração, leitura, adição…

Scratch

Plataforma/Linguagem educacional voltada ao ensino de programação para crianças e adolescentes (e por que não para adultos?!?). Apesar de não ser utilizada por empresas para programação profissional, essa plataforma ensina programação visualmente. Como isso funciona? Através de blocos que são conectados, você consegue fazer o personagem andar, se mover, emitir sons, ou outros eventos disponíveis. Dessa forma, ensinar variáveis, condicionais e laços de repetição se torna uma tarefa muito mais prazerosa.

Utilizei brevemente em algumas aulas para uma turma de Engenharia Elétrica/Mecânica para ensinar os conceitos básicos antes de codificar na linguagem utilizada na disciplina. Certamente não utilizaria apenas ela durante o semestre todo, mas é um bom ponto de partida e uma forma bem divertida de aprender programação.

C/C++

Utilizando amplamente como primeira linguagem de programação em universidades, é uma linguagem que lhe dar muito poder; você pode programar até um sistema operacional com ela. É inegável o fato de que, aprendendo C++, você já está programando em uma linguagem utilizada profissionalmente. No entanto, para alguém que está aprendendo programação, chega a ser irritante ter que se preocupar mais com a sintaxe do que com os algoritmos em si.

Muitos dos meus alunos sofreram com erros de compilação por falta de ‘;’ (ponto e vírgula), entender a necessidade dos include, definir uma função main, uso de namespace… Por mais que pedisse que ignorassem esses detalhes da linguagem, notava que eles se sentiam ‘incompletos’, sem saber tudo que estavam fazendo. Além do mais, passavam mais tempo se preocupando com a sintaxe da linguagem do que aplicando os conceitos de algoritmos.

C++ ainda é uma linguagem amplamente usada e, certamente vai levar muito tempo para que deixe (se realmente deixar) de ser utilizada como primeira linguagem. Utilizei muito para desafios de programação (maratona de programação) por sua rapidez e facilidade para desenvolver os algoritmos. Não utilizo profissionalmente, mas admiro o poder que essa linguagem dá ao programador.

Java

Java é a linguagem que mais utilizo como desenvolvedor. No entanto, não consigo ver com bons olhos sua utilização para ensino de programação. Logo no início, já vai precisar se preocupar com conceitos como Orientação a Objetos e escrever diversas linhas para iniciar um programa, sem nem saber o que elas fazem. Mas, como são necessárias, você será obrigado a escrevê-las e deve ‘ignorá-las’ até que elas sejam aprendidas em um momento futuro (disciplina de orientação a objetos, por exemplo).

Python

Python é uma linguagem mais alto nível do que C++ e Java. Por ter uma sintaxe mais simples e não necessitar escrever funções ou importar bibliotecas (ao menos não para códigos iniciais), ela acaba sendo uma ótima alternativa para aprender programação. Você se preocupa muito mais em realmente aprender algoritmos/programação, do que com a linguagem. Obviamente, ela possui uma sintaxe que precisa ser respeitada, mas é muito mais simples que C++ e Java.

Utilizei Python 3 com minha última turma de algoritmos nos cursos de Engenharia Elétrica/Mecânica e, apesar de diversos alunos ainda terem dificuldades, acredito que a experiência foi bem positiva. Muito menos problemas de sintaxe, os alunos realmente tentando resolver os problemas e não ‘brigando’ tanto com a linguagem. O grande ‘problema’ que meus alunos encontravam era a utilização da identação para os blocos condicionais ou laços. Do meu ponto de vista, essa exigência da linguagem Python beneficia os alunos a visualizarem seus códigos da maneira como são segmentados, sem ter toda a liberdade de identação que outras linguagens proporcionam.

No entanto, apesar de Python ser amplamente utilizada com Data Science, ela não é uma linguagem muito indicada para construir aplicações enormes, diferentemente de Java ou mesmo C++. Dessa forma, dependendo do teu interesse, após aprender Python, vai precisar aprender outra linguagem para seguir com a carreira de desenvolvedor.

Comentários Finais

Apresentei algumas linguagens que podem/são utilizadas para aprendizado em programação. Outras também podem ser usadas, como C#, Javascript, ou mesmo Processing. No entanto, coloco essas como mais ‘importantes’ no momento. A linguagem inicial pode depender do teu perfil e da área que deseja seguir mas, lembre-se, o importante desse aprendizado são os conceitos básicos como variáveis, condicionais, laços de repetição, funções, estruturas de dados… Com esses assuntos dominados, aprender qualquer linguagem de programação torna-se muito mais fácil.

Aprender programação pode não parecer uma tarefa fácil no início, pois é diferente de tudo aquilo que vimos na escola. No entanto, uma boa dose de estudos e a resolução de diversos exercícios irão lhe fazer compreender esses novos conceitos e se apaixonar por essa área tão importante nos dias atuais.

Leave a comment

Name*

Website

Comment