Começando na programação, qual linguagem devo aprender?

Emerson Braun
4 min readMay 27, 2020

--

Quando se “entra” no mundo da programação, logo você se depara com uma sopa de letrinhas interminável (SOAP, SOLID, SQL, JSON, NGinx, Redux, DevOps…) e uma infinidade de linguagens (C, C++, C#, Dart, PHP, Node, Deno, R, Rust, Python…) e cada assunto que entra você se depara com mais termos e coisas relacionadas (Nomes de Tags HTML, Propriedades CSS, Libs, Frameworks…), isso normalmente causa um questionamento:

“Como vou aprender tudo isso?”

A resposta é NÃO VAI (a menos que você seja um Robô ou algo do tipo), mas isso não é um problema, conforme for necessitando de soluções, os novos termos buscados irão se agregando aos poucos no seu conhecimento.

“mas então qual linguagem devo aprender?”

Para saber qual linguagem escolher, primeiramente você deve saber em quais “tipos de desenvolvimento” existem, logicamente existem mais áreas que irei elencar, mas o intuito dessa postagem é poder “limitar” um pouco esse vasto mundo da programação.

Programação WEB — Backend

Também encontrado com hífen (back-end), seu trabalho é mais abstrato, lida com a parte lógica da aplicação que conecta com o banco de dados, salvando as informações e trazendo dados solicitados, fazem a autenticação dos usuários e garantindo a segurança dos dados enviados, algumas linguagens usadas no backend são:

PHP, C, C++, Node.js, Python, Java

e alguns Frameworks backend (Estruturas de código, que auxiliam na criação de aplicações, não precisando “reinventar a roda”) são:

Laravel, Django, Ruby on Rails, Spring

Programação WEB — Frontend

Também encontrado com hífen (front-end), seu trabalho é mais visual, lida com a parte que o usuário interage diretamente, desenvolvendo código para a parte gráfica, não deve ser confundido com designer, o frontend trabalha com a lógica e programação, atuando entre o usuário e o backend, já o designer trabalha entre o frontend e o usuário, refinando a experiência do usuário, Algumas linguagens/tecnologias utilizadas no frontend são:

HTML, CSS, Javascript

e alguns Frameworks/Bibliotecas frontend (Bibliotecas também são estruturas de código, não vou me aprofundar nas diferenças, mas melhor colocar a diferenciação para não me criticarem que tecnologia X é uma biblioteca e não framework) são:

JQuery, Angular, React, Vue

Programação WEB — Fullstack

Basicamente é o programador que trabalha tanto como Backend quanto Frontend.

DevOps

É o profissional que trabalha com o a infraestrutura para o desenvolvimento de software, criando soluções para o processo de integração contínua (garantir que as mudanças adicionadas não “quebrem” o que já está funcionando), além de processos de automatização de tarefas, entre outras atividades relacionadas. Coloquei nessa listagem pois é uma área que também envolve programação, algumas ferramentas/linguagens utilizadas por DevOps:

Docker, Jenkins, Fluentd, Shell script

Programação Mobile

É a parte do desenvolvimento com foco nas aplicações para celular, com a “extinção” do Windows Phone, atualmente se tem a linguagem swift para celulares Apple e Java/Kotlin para celulares Android, essas são as linguagens nativas dos celulares, também é possível usar os Framework React Native ou Flutter, escrevendo nas linguagens Javascript e Dart, respectivamente, e depois transpilando (convertendo o código fonte) nas devidas linguagens nativas.

Além dessas soluções nativas, existem também as híbridas, que são escritas usando HTML, CSS e JavaScript, que usam uma WebView, ou seja um navegador mas com a aparência de aplicativo nativo, inclusive conseguindo acessar câmera, acelerômetro, GPS, contatos ou SMS, sendo Ionic, Quasar e PhoneGap, algumas das soluções nesse formato.

Programação Desktop

Envolve as aplicações que são instaladas na máquina (incluindo o navegador que você está usando para ler isso), C++, Delphi, VB, Java são algumas linguagens utilizadas para esse fim, também sendo possível aplicações híbridas usando HTML, CSS e JavaScript com Framework Electron.js.

Essencial: Algoritmos

Mesmo restringindo sei que é bastante coisa para quem está começando, mas fique tranquilo todas linguagens tem a base no conceitos de algoritmos ou seja entendendo bem os conceitos é necessário apenas adaptar as particularidades da linguagem.

E a resposta?

Respondendo a pergunta do título, sua escolha deve ser feita baseado em qual área pretende atuar, caso não tenha certeza faça experimentações nas linguagens, veja qual parte você melhor se adapta, escolha alguma entre as listadas ou relacionada a área que pretende atuar, veja superficialmente algumas, mas se aprofunde em uma, o conhecimento aprofundado vai te ajudar caso precise mudar de linguagem, por exemplo você saberá que a linguagem Javascript e Python usam a função chamada split para transformar cadeia de caracteres em lista, precisando fazer o mesmo em PHP vai descobrir que a função que faz o mesmo se chama explode, mas o conceito é o mesmo.

O intuito desse post é que você saiba que realmente o começo é difícil, mas não desista, cada conhecimento que você for adquirindo na jornada não vai ser totalmente descartada, e mesmo que mudem as linguagens e frameworks os conceitos permanecem os mesmos.

Caso queira aprender algoritmos recomendo o Curso em vídeo do professor Gustavo Guanabarra, me ajudou no começo e creio que possa te ajudar também.

Obs: Não recomendo começar o aprendizado diretamente usando Frameworks, pois o começo exige a necessidade de desenvolver nossa lógica de conhecermos o funcionamento, entender os passos necessários para a aplicação funcionar, para que não tenha futuramente problemas para resolver problemas simples que o Framework não tenha implementado, mas é apenas minha opinião.

--

--

Emerson Braun

Emerson Braun is a Graduated Software Engineer, Senior Developer, Trainer, and Content Producer, with over 10 years of IT experience.