Skip to content

Qual linguagem de programação devo escolher?

Last updated on 21/02/2024

Uma das dúvidas mais frequentes dos grupos de Facebook que participo é sobre qual linguagem de programação um iniciante na área deve aprender primeiro. Neste artigo irei explicar o básico de como o mercado funciona e ajudar você a escolher por qual linguagem de programação iniciar os estudos.

Resposta rápida: Python ou PHP ou JS (Node.JS) são excelentes opções para quem deseja iniciar no mundo da programação.

Resposta completa: Caso você queira entender melhor o mercado e de fato qual linguagem aprender conforme a área que deseja seguir, então leia o resto do artigo!



Linguagens de programação

Existem mais de 1000 linguagens de programação, no entanto o mercado de trabalho se limita a usar cerca de 20 linguagens em sua grande maioria, por isso, se sua intenção é entrar no mercado de trabalho é melhor aprender uma dessas 20 linguagens. Lembrando que linguagem de programação é apenas ferramenta, não se apeguem a uma linguagem. Com o tempo, se você realmente entrar na área, vai acabar usando várias ao longo dos anos…

Para quem tem curiosidade nas diversas linguagens que existem, segue um grafo das linguagens de programação agrupadas conforme o paradigma: https://zoom.it/6rJp

Um desenvolvedor/programador/engenheiro de software pode atuar em diversas áreas, algumas como:

  • Web
  • Mobile
  • Desktop
  • IoT (Internet of Things)
  • Games
  • Ciência de Dados e Análise de Dados
  • Sistemas embarcados
  • Realidade Virtual (VR) / Realidade Aumentada (AR)
  • Inteligência Artifical (AI) / Machine Learning (ML)
  • Entre outras…

Neste artigo vou focar no mercado Web, e um pouco de Mobile, já que hoje em dia são os dois mais populares, e também pelo fato deles estarem basicamente conectados.


Desenvolvedor Web

O mercado web basicamente se define pela criação de sites, aplicativos e serviços que são acessados através de um dispositivo conectado a internet, geralmente por um navegador (como o Internet Explorer, Microsoft Edge, Google Chrome, Mozilla Firefox, Opera, etc).

Esses sistemas podem ser divididos da seguintes formas:

  • Front-end
  • Back-end
  • Infraestrutura

Neste outro artigo aqui no blog, eu explico com mais detalhes as diferenças de frontend e backend: Série: Desenvolvedor web. Parte 2: Front-end vs Back-end


Front-end

Front-end dentro do contexto web, é a parte responsável pelo que o usuário do sistema acessa, ou seja, a parte visual do site/sistema.

No front-end temos:

  • HTML – estrutura do documento
  • CSS – estilização 
  • JS – manipulação do DOM (HTML/CSS) na tela do navegador
  • WebAssembly (ainda não difundido em larga escala, vai permitir usar algumas linguagens de programação alem do JS no frontend também).

Então se você quer se tornar um desenvolvedor web front-end, você precisa saber pelo menos essas 3 linguagens: HTML, CSS e JS.

Lembrando que nem HTML (HyperText Markup Language – ou – Linguagem de Marcação HiperTexto) e nem CSS (Cascade Style Sheets – ou – Folhas de Estilo em Cascata) são consideradas linguagem de programação, mas são essenciais para o desenvolvimento frontend web. 


Back-end

No back-end, parte responsável pela comunicação do sistema com o banco de dados, ou com outros sistemas (através de APIs) existem dezenas de linguagens de programação disponíveis, entre elas, temos as mais populares como:

  • PHP
  • JS (Node.JS)
  • C# .NET
  • Java
  • Rust
  • Go
  • Python
  • Ruby
  • C++
  • C
  • Lua
  • F# .NET
  • VB .NET

Dentre essas linguagens temos algumas que são mais faceis para aprendizagem como é o caso do PHP, do JS (Node.JS) ou do Python.
Essas 3 linguagens são ótimas para quem quer começar a aprender a parte do backend.

É de conhecimento geral que de todas essas linguagens, Pyhton é a mais fácil de aprender, porém ela é a mais complicada de se encontrar emprego para nível iniciante/aprendiz.  A maioria das vagas de Python são para sêniores, ou são para área de dados e não para desenvolvimento web. Se você deseja iniciar sua jornada com Python, excelente, só não espere arrumar um emprego com ela, até porque além das poucas vagas, vão existir muito mais candidatos que sabem Python dada facilidade de aprender. Uma dica que deixo aqui é, use Python para começar e entender como tudo funciona, e quando já estiver em um nível confortável, aprenda uma segunda linguagem que possibilite você adentrar o mercado (se esse for seu objetivo é claro).

Empresas menores costumam usar PHP ou JS (Node.JS) enquanto que empresas maiores tendem a usar C# ou Java. Isso não é uma regra, é apenas um padrão observado ao longo dos anos.

Eu por exemplo comecei a programar em PHP em 2007, o Node.JS só foi criado em 2009 e o Python quase não era conhecido na época, muito menos para web. Quando consegui meu estágio em 2011 eu programava em PHP, ASP Classic, VB .NET além da paret frontend.
Se eu fosse começar a programar hoje, provavelmente iria de JS (Node.JS) visto que o JS funciona tanto no frontend (navegador), como no backend (Node.JS), além de ser possível criar software desktop (usando Electron ou outras ferramentas similares) e aplicativos mobile.


Infraestrutura

Dependendo da empresa onde você vá trabalhar pode existir um time dedicado responsável pela infraestrutura ou pode ser responsabilidade do desenvolvedor gerir sua própria infraestrutura.

Algumas empresas possuem os times de SRE (Site Reliability Engineer) ou Dev(Sec)Ops ou Platform, outras não.

Caso tenham interesse em entender melhor as diferenças desses times (conteúdo em inglês):

Atuando na parte de infraestrutura, é bem comum usar algumas linguagens de script para automatizar tarefas ou mesmo IaC (Infrastructure as Code).

Entre as linguagens mais usadas neste contexto nós temos:

  • Python
  • Go
  • Bash
  • PowerShell
  • Groovy
  • JavaScript
  • YAML

Uma analise mais detalhada sobre este tópico pode ser encontrada neste link (em inglês): Best Programming & Scripting Languages for DevOps Engineers


Desenvolvedor Mobile

No desenvolvimento mobile existem basicamente 4 formas de criar aplicativos:

  • Nativo
  • Cross-Platform
  • PWA (Progressive Web Apps)
  • Híbrido

Nativo

No nativo você desenvolve direcionado para cada plataforma (iOS ou Android).
Para o desenvolvimento nativo temos as seguintes opções:

  • Swift ou Objective-C para iOS
  • Kotlin ou Java para Android

Geralmente, os projetos mais recentes acabam usando Swift e Kotlin para iOS e Android respectivamente.


Cross-Platform

O desenvolvimento cross-platform consiste em ter apenas um codebase para múltiplas plataformas, hoje em dia temos as seguintes tecnologias para este fim:

  • React Native (JavaScript / TypeScript)
  • Flutter (Dart)
  • Xamarin/.NET MAUI (C# .NET)
  • Ionic (HTML/CSS/JS)

A maioria das empresas que atuei nos últimos 5 anos preferem usar o desenvolvimento nativo com Swift/Kotlin ou cross-platform com Flutter.


Progressive Web Apps (PWA)

PWA são aplicações web, desenvolvidas em HTML, CSS e JS que tem como objetivo executar dentro de um navegador, seja online ou offline (de acordo com a funcionalidades de cada aplicativo).


Híbrido

Uma aplicação híbrida geralmente consiste em uma junção de um aplicativo nativo ou cross-platform + um PWA (através de uma webview). Onde é feita a instalação do aplicativo no dispositivo do usuário, porém as funcionalidades são entregues através de uma interface web dentro do aplicativo, pelas chamadas web views. Neste caso, acaba se usando as linguagens citadas anteriormente para o desenvolvimento nativo/cross plataform e PWA. 

Este tipo de aplicação geralmente é usada quando se quer ter uma melhor experiência do usuário, com um aplicativo instalado e ao mesmo tempo economizar tempo, reaproveitando um PWA/sistema web que já existe. Enquanto isso pode-se desenvolver funcionalidades diretamente no app em substituição as funcionalidades do PWA/web.


Published inCareerCoding

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *