O caminho do iniciante

O pior momento na carreira de dev é o início onde você não sabe para onde quer ir e provavelmente irá perder muito tempo fazendo algo que no momento você acha que é o caminho certo, mas daqui alguns meses notará que foi apenas uma perda de tempo. Essa é minha tentativia de te poupar esse tempo explicando por onde começar.

O primeiro passo é a faculdade, e eu já tenho um texto sobre isso, esse é o segundo.

Qual melhor linguagem para começar?

A principal dúvida dos iniciantes. Serei curto e grosso igual meu pé, a melhor linguagem para começar é a que você iriá seguir carreira. Por exemplo, não faz sentido aprender uma linguagem fácil e depois aprender a que você quer, isso é total perda de tempo. E tem até uns animais que já vi sugerir começar pela mais difícil e depois ir para sua principal.

Deixe-me justificar minha ideia. Quando você aprende uma linguagem de programação, você não vai aprender apenas a linguagem, também é necessário aprender o ecossistema. O que eu quero dizer com isso? Aprender a linguagem e as tecnologias adjacentes, frameworks, libs, etc. Tendo em vista isso, quanto antes você focar em um ecossitema melhor.

Dito isso...

Como escolher minha linguagem?

Eu vejo três principais caminhos para escolher uma linguagem de programação:

  • Interesse
  • Mercado
  • Sênior

Área de interesse

Aprenda o que te interessa. Eu acredito também que essa seja o caminho mais gratificante de aprendizado. Mas não é todo mundo que tem o privilégio de procurar uma linguagem apenas por interesse, né? É algo mais voltado para quem ainda é adolescente, para quem ainda está no ensino médio, não ingressou de fato numa faculdade, nem no mercado de trabalho, ainda está experimentando.

Eu acho que escolher a linguagem de programação com base em interesse é muito legal e também muito gratificante. Mas aí entra outra questão, interesse em que exatamente? No caso, seria interesse em áreas. Ah, se tu quer aprender sobre machine learning, aprendizado de máquina, o mais indicado aí é estudar o famoso Python.

Ah, mas meu interesse é, por exemplo, low level, linguagem de baixo nível, tu vai procurar sobre C, vai procurar sobre Zig, vai procurar aprender Rust. Seria com foco em interesse.

Mercado

Mas aí tem aquele ponto, né? Nem todo mundo tem esse privilégio. Às vezes, a pessoa tem que entrar no mercado o quanto antes. Aí, não pode olhar tanto a parte de interesse, né?

Tu poderia escolher tua linguagem de programação com base no mercado, com base, por exemplo, no que está em alta.

É ir no Google, procurar o que é que está em alta de linguagem de programação. Linguagens em alta, aí vamos ver aqui no Google. Aqui é uma pesquisada rápida no Google.

As mais populares: Rust, Go, Java, JavaScript, Kotlin, TypeScript. Enfim, por aqui você já tira, né? Com base em mercado. Olhando as linguagens que estão em alta, daí tu já consegue achar um norte para seus estudos. Outra fonte muito boa é procurar pela vaga que lhe interessa no LinkedIn e busca pelas palavras que se repetem nas vagas.

Mas ainda tem uma ressalva nessa questão de escolher linguagem com base no que está em alta. Seria basicamente o que está em alta hoje, pode não estar em alta amanhã.

Essas daqui foram as linguagens em alta para agora, 2026. amanhã, em 2027, já pode ser outra, em 2028 pode ser outra. Enfim, isso muda.

Obviamente que tu não vai ficar preso a uma linguagem só, né? Tipo, uma linguagem é uma ferramenta. Tu vai se adaptar conforme a necessidade, conforme o mercado, conforme o projeto que tu estiver fazendo. Tu vai se adaptar, obviamente.

Mas, principalmente para a primeira linguagem de programação, tem uma curva de aprendizado muito grande. Enquanto para a tua segunda, tua terceira linguagem, já começa a perceber muitos padrões, tu fica mais fácil o aprendizado, tu pega as coisas mais rápido. Sem contar que algumas algumas linguagens também têm suas particularidades. Por exemplo, o Java é um bom exemplo. É uma linguagem fortemente tipada, enquanto o JavaScript não é fortemente tipado. Enfim, todas elas tem suas particularidades. Aí eu acredito que para a primeira linguagem deveria ser uma escolha, assim, bem feita com calma, entendeu? Porque você tem que levar em consideração vários fatores.

Sobre mercado, ainda tem outro ponto. Você também poderia, ainda dentro de mercado,escolher uma linguagem com base no segmento, no setor de atuação.

Então, os principais setores que eu lembrei aqui rapidamente foram esses, o setor bancário, mobile, web, embarcados. O setor bancário é muito forte o Java. Se tu quiser trabalhar e em banco, por exemplo, o Itaú, Nanobank, banco no geral, banco, fintech, é bom tu focar em Java.

Já se tua ideia é ir para o mobile, pô, aí tu vai para o Kotlin, que é um filho do Java. Tu vai para o Swift, se for o desenvolvimento para iOS. Também tem o React Native para o desenvolvimento, para ambas as plataformas, né, o desenvolvimento Android e desenvolvimento iOS.

Para o web, muito forte na web é o JavaScript, o TypeScript, né, e também o PHP. Se tu quer ir para a web, não tem muito o que fugir, tipo, sempre vai andar nessa linha aqui.

Setor de embradados. Quem é grande nos embarcados é a família do C: C, C++, que são grandes para embarcados.

Para a parte de jogos, C#, Unity. Tem o C# em grandes partes dos jogos. Se tu tá escolhendo a linguagem com base em mercado, eu não acho que jogos não seria o melhor segmento para tu seguir profissionalmente, eu acho que jogos eu acabaria enquadrando ali dentro de interesses também, o segmento de jogo é muito ruim no Brasil.

Sênior

A terceira via que eu imagino, seria tu escolher tua linguagem com base num sênior. Aí o que seria isso, exatamente? Por exemplo, tu tem um amigo que ele já é desenvolvedor, ele já trabalha com programação, e te passa o caminho das pedras.

Por exemplo, ele trabalha com o Java no setor bancário, aí tu começando com o Java, ele já pode te passar as dicas do caminho a ser trilhado com o Java, porque cada linguagem meio que tem ali seu conjunto de ferramentas, frameworks, e no começo, às vezes, tu vai perder muito tempo pensando nesse caminho, tá entendendo?

Tem vários frameworks do Java, eu vou citar aqui o Spring Boot e eu vou citar o Quarkus, esses dois frameworks são os principais para Java. Aí tu lá, iniciante, aí pode ser que tu acabe fazendo uma escolha entre aspas erradas, né, de ir pro Quarkus, enquanto o que tem mais adesão de mercado é o Spring Boot. Quando tu tiver interesse em ir pro mercado, tu tem um pouco mais de dificuldade, compreende?

Então por isso eu acredito que também seria um bom caminho tu escolher uma linguagem de programação com base num sênior, não necessariamente um sênior, mas um amigo, uma pessoa próxima que já tem experiência prévia com alguma coisa e que possa te passar o caminho das pedras, ao invés de tu ter que ir lá do zero, pesquisar tudinho qual é melhor framework pra tal linguagem, com quais ferramentas aprender, a pessoa já pode ir te passando os toques.

Ele vai te guiar com base num que é mais aceito pelo mercado, porque também é uma pessoa com mais experiência e tem mais visão.

Tabela

Irei te apresentar algumas subáreas que você pode ser como dev. Muito comum no início sequer imaginarmos que há essa diversidade.

Áreas Linguagens mais relevantes Principais aplicações
Desenvolvimento Web (Front-end) JavaScript, TypeScript Interfaces web, SPAs, SSR, aplicações modernas
Desenvolvimento Web (Back-end) JavaScript (Node.js), TypeScript, Java, C#, Go, PHP, Python APIs, microsserviços, sistemas web
Desenvolvimento Mobile (Android) Kotlin, Java Aplicativos nativos para Android
Desenvolvimento Mobile (iOS) Swift Aplicativos nativos para iPhone e iPad
Desenvolvimento Mobile Multiplataforma TypeScript (React Native), Dart (Flutter) Apps para Android e iOS com uma única base de código
Inteligência Artificial / Machine Learning Python, R, Julia IA, Deep Learning, Ciência de Dados
Ciência de Dados / Análise de Dados Python, R, SQL Análise estatística, visualização e processamento de dados
Engenharia de Dados Python, Java, Scala, SQL ETL, Big Data, pipelines de dados
Computação em Nuvem (Cloud) Python, Go, Java, TypeScript Automação, infraestrutura, microsserviços
DevOps / Automação Python, Bash, Go Scripts, CI/CD, infraestrutura como código
Cibersegurança / Pentest Python, C, C++, Bash Ferramentas de segurança, análise e automação
Sistemas Embarcados / IoT C, C++, Rust Microcontroladores, firmware, dispositivos eletrônicos
Sistemas Operacionais C, C++, Rust Kernel, drivers e software de baixo nível
Sistemas Militares e Aeroespaciais Ada, C, C++, Rust Sistemas de defesa, aviônica, radares, mísseis, satélites e software de missão crítica
Programação de Baixo Nível C, C++, Assembly, Rust Hardware, sistemas críticos e otimização
Desenvolvimento de Jogos C# (Unity), C++ (Unreal Engine), GDScript (Godot) Jogos 2D, 3D e engines de jogos
Blockchain / Web3 Solidity, Rust, Go, JavaScript Smart contracts, DeFi, criptomoedas
Finanças / Bancos / Fintechs Java, Kotlin, C#, Go Sistemas bancários, meios de pagamento e alta disponibilidade
Desktop C#, Java, C++, Electron (JavaScript/TypeScript) Aplicações para Windows, Linux e macOS
Automação de Testes (QA) Java, Python, JavaScript, TypeScript Testes automatizados e qualidade de software
Low Code / No Code JavaScript, TypeScript (para extensões), Power Fx Power Platform, OutSystems, Mendix e automações
Computação Científica Python, Julia, MATLAB, Fortran Simulações, pesquisa e cálculos científicos
Robótica C++, Python, Rust Robôs industriais e autônomos
Visão Computacional Python, C++ Reconhecimento de imagens e vídeos
Processamento de Linguagem Natural (NLP) Python Chatbots, tradução e IA de texto
Realidade Virtual (VR) e Aumentada (AR) C#, C++ Experiências imersivas
Computação Gráfica C++, C#, GLSL Renderização e motores gráficos
CAD / Engenharia C++, C#, Python Softwares de engenharia e modelagem
Bioinformática Python, R Genômica e análise biológica
Saúde / Tecnologia Médica Java, C#, Python, C++ Sistemas hospitalares e equipamentos médicos
Telecomunicações C, C++, Erlang, Go Redes, centrais telefônicas e protocolos
Sistemas Distribuídos Go, Java, Rust Serviços escaláveis e alta disponibilidade
Computação de Alto Desempenho (HPC) C++, Fortran, Julia Supercomputadores e simulações
Automação Industrial C, C++, Structured Text (IEC 61131-3), Python PLCs, fábricas inteligentes e controle industrial
Trading Algorítmico Python, C++, Java Robôs de investimento e mercado financeiro
Desenvolvimento de Compiladores C++, Rust, OCaml Compiladores, interpretadores e ferramentas de linguagem
Bancos de Dados SQL, PL/SQL, T-SQL Administração e otimização de bancos de dados
Engenharia Reversa C, C++, Python, Assembly Análise de binários e softwares
Sistemas em Tempo Real Ada, C, C++, Rust Controle industrial, defesa e dispositivos críticos
Comentários