Em meu primeiro contato com programação, tive o privilégio de ser guiado por bons professores em um curso técnico, que além de ter me propciado um ótimo ambiente para o aprendizado, me ensinou a gostar do que faço atualmente.
Para aqueles que caem de paraquedas nesta área ou desejam migrar de outras áreas, aqui está minha colaboração de alguém com alguns anos na linha de frente. Pela internet se encontra com certa facilidade diversos conteúdos em texto e vídeo sobre, porém, para acompanhar alguns deles é necessário o inglês ou algum conhecimento prévio de termos técnicos que podem ser desafiadores para iniciantes.
Para começar precisamos ver a lista de empregos que mais contratam e pagam atualmente, e abaixo deixei um link para análise de alguns números que encontrei em uma rápida pesquisa.
https://www.cio.com/article/230935/hiring-the-most-in-demand-tech-jobs-for-2021.html
Se formos analisar de uma forma simplista, os cargos no topo da lista irão se resumir a Desenvolvedores, Administradores de banco de dados, Administradores de redes/infraestrutura. Diversos outros sites possuem conteúdos extremamente parecidos, e entre os empregos mais requisitados também costumam adicionar áreas relacionadas a segurança da informação, desenvolvimento de aplicativos móveis e claro Inteligência Artificial, como no caso abaixo.
https://medium.com/@ironhack/2025-tech-job-market-in-demand-roles-and-skills-d901eab1aad9
Vamos detalhar algumas delas que são comentadas com mais frequência nas oportunidades de emprego comumente vistas. E ao fim, deixo especialmente o tema de Desenvolvimento de Software, a área para qual tenho me dedicado a tantos anos.
Área de Dados
Dentre as áreas que considero mais comuns na minha vivência em tecnologia, podemos começar falando do Administrador de Banco de Dados, ou DBA (Database Administrator). Esse profissional antecede áreas de inteligência de dados que temos com mais frequência atualmente, e reúne conhecimentos sobre a administração e uso da base de dados também, frequentemente atuando próximos a desenvolvedores, ajudando a analisar lentidões em consultas na base de dados de uma aplicação, auxiliando na construção de uma estrutura mais correta para armazenar os dados, entre outras funções.
“Um administrador de banco de dados, ou DBA, é responsável por manter, proteger e operar bancos de dados e também garante que os dados sejam armazenados e recuperados corretamente.”
https://www.oracle.com/database/what-is-a-dba/
Como a referência também nos revela, a área de dados também sofreu com a transformação para ambientes em nuvem, e por isso gostaria de aproveitar o tópico de dados para pontuar outras carreiras mais comuns que se desdobraram dessa transformação.
1. Engenheiro de BigData
“Engenheiros de Big Data são semelhantes aos analistas de dados, pois transformam grandes volumes de dados em insights que as organizações podem usar para tomar decisões comerciais mais inteligentes.”
2. Arquiteto de Dados
“Esses profissionais projetam a estrutura de frameworks de dados complexos e constroem e mantêm esses bancos de dados.”
3. Modelador de Dados
“Esses profissionais transformam grandes volumes de dados em insights, como micro e macrotendências, que são reunidos em relatórios de negócios.”
https://graduate.northeastern.edu/knowledge-hub/highest-paying-big-data-careers/
Esses profissionais utilizam softwares gráficos de manipulação de estruturas relacionais, dados relacionais, para bancos que utilizam desse formato, ou aplicações de BI (Business Inteligence, ou inteligência de dados) com PowerBI. Para cenários de big data aplicações como Apache Hadoop podem ser de extrema utilidade, entre outras opções que usam conceitos similares porém em nuvem, oferecidas pelas nuvens públicas.
https://estuary.dev/blog/data-management-tools
https://www.coursera.org/articles/big-data-technologies
Infraestrutura
A área de infraestrutura costuma ser bem ampla e também muito importante no mundo tecnológico, afinal, o que seriam dos grandes softwares se não existissem aqueles que os disponibilizam para os usuários finais.
Nessa lista estão inclusos engenheiros SRE e DevOps, duas das principais funções nesse meio, vou me abster de comentar sobre engenheiros de redes por conta dessa função ser mais extremamente ampla e contar sua própria bolha de áres e subáres correlatas.
Os engenheiros SRE (Site Reliability Engineer) são profissionais que garantem a confiabilidade e estabilidade dos sistemas que são utilizados pelos usuários. Comumente definem processos de monitoria, e resposta a incidentes em produção para manter o sistema o mais estável possível.
Um exemplo de metas que um SRE pode seguir são os cinco noves de disponibilidade em um sistema, que requer 99,999% de disponibilidade (5 minutos máximo de indisponibilidade por ano). https://cloud.google.com/blog/products/gcp/available-or-not-that-is-the-question-cre-life-lessons
Esses profissionais irão utilizar ferramentas para ler métricas e compartilhá-las entre sistemas distribuidos, como uma forma mais fácil de interpretar eventos de tantas origens diferentes, facilitando a monitoria e a velocidade na atuação em caso de incidente.
https://signoz.io/comparisons/sre-tools
Já dos profissionais de DevOps costumam ter uma lista de responsabilidades mais ampla, como o próprio nome sugere, agrupa conhecimentos de desenvolvimento e operações, além de auxiliar em processos de integração e entrega contínua, muito comum no dia-a-dia do desenvolvimento de software.
“Um engenheiro de DevOps é um generalista de TI que deve ter amplo conhecimento de desenvolvimento e operações, incluindo codificação, gerenciamento de infraestrutura, administração de sistemas e cadeias de ferramentas DevOps.”
https://www.splunk.com/en_us/blog/learn/devops-roles-responsibilities.html
https://openupthecloud.com/cloud-roles-explained/
Dentre as ferramentas mais utilizadas, diversas delas serão as mesmas que os SRE’s ou Desenvolvedores utilizam, porém com outro objetivo, de integrar o conteúdo produzido até as ferramentas de publicação.
https://www.invensislearning.com/info/devops-tools
Experiência do Usuário
Além do contexto ao redor das aplicações que dizem respeito a detalhes técnicos de produzir e entregar um sistema para o usuário, existem empregos onde pessoas focam em entender como um usuário tende a interpretar os sistemas e quais são os formatos mais simples, intuitivos e até convincentes de apresentar dados em uma interface. Esses profissionais normalmente são referenciados como Desenvolvedor UI/IX costumam se dividir em duas responsabilidades, o UI (User interface) que projeta os detalhes de uma tela se preocupando com o layout, as cores e a tipografia, e o UX (User experience) que foca em simplificar a vida do usuário garantindo que a disposição de itens em tela e suas descrições facilitem sua jornada.
https://www.geeksforgeeks.org/blogs/roles-and-responsibilities-of-ui-ux-developer
A lista de ferramentas que esses profissionais utilizam são mais específicas para esse fim, diversas ferramentas vão possibilitar criar mockups e protótipos com extrema facilidade. Desde desenhos mais básicos para a demonstração ou teste de viabilidade de uma aplicação, até para documentação de design dos softwares de uma grande empresa, e como os desenvolvedores devem seguir os padrões visuais.
https://maze.co/collections/ux-ui-design/tools
Desenvolvedor
Esta é certamente a área mais comentada a respeito do mundo de tecnologia. A arte do desenvolvimento une diversas habilidades multidisciplinares e com diferentes propósitos para criar aplicações úteis ao dia-a-dia do usuário, seja para produtividade ou lazer.
As subáreas do desenvolvimento são vastas e atinge toda a gama de profissionais que codificam de alguma forma, visando criar aplicações de baixo nível para microcontroladores por exemplo, alto nível com desenvolvimento web, produção de jogos, analistas de infraestrutura que produzem IaC (Infraestrutura como código). Podemos ver o desenvolvimento na realidade como uma hardskill e não uma posição na área técnica apenas. Mas para aqueles que buscam a posição profissional em um mercado crescente, vou comentar sobre as duas áreas que mais tenho contato e posso ver uma alta na disponibilidade de vagas, o desenvolvimento web e o desenvolvimento mobile.
Caso queira ver outras subáreas disponíveis ou ter segundas opiniões, o site roadmap.sh reúne caminhos de estudo para as mais famosas áreas do saber e outras não tão famosas, a comunidade pode criar novos caminhos a todo momento portanto é uma ferramenta importante neste começo.
Desenvolvedor Web
Após muito tempo trabalhando nesta área de desenvolvimento, pude notar a importância desses profissionais, com o advento da globalização movido por avanços tecnológicos fortes, não só gadgets foram introduzidos em escala na nossas vidas, mas também as aplicações que rodam nestes gadgets. Muitos deles possuem arquiteturas diferentes a ponto de nem sempre ser possível a criação de aplicações nativas a todos esses, porém é quase certo que um dispositivo com acesso a internet, terá um navegador ou suporte para ambientes de execução que utilizam navegadores como base para aplicação.
É nesse momento que o desenvolvedor web irá atuar, utilizando de tecnologias que abusam do HTTP em sua maior parte, fazendo comunicação entre servidores de dados, grandes máquinas com os recursos necessários, e o cliente, navegadores com a capacidade de produzir interfaces a partir de arquivos de texto.
Antes de começar a falar sobre as divisões do mundo web é importante saber que, como comentado anteriormente, as aplicações web não serão somente utilizadas por navegadores convencionais em celulares e computadores, também é possível produzir aplicações desktop por exemplo.
Para entender como isso é possível precisamos falar das divisões de uma aplicação web, comumente divida de forma simplista em Cliente, Servidor e Banco de dados. Entre eles podem existir diversos outros pontos que outras áreas do conhecimento em tecnologia irão atuar, mas vamos nos concentrar nestas.
https://www.softkraft.co/web-application-architecture
O cliente é o consumidor da aplicação, irá apresentar a interface utilizando um kit de arquivos HTML + CSS + JavaScript. Ele fará a comunicação entre o usuário e o servidor, e pode ser um aplicativo nativo utilizando uma WebView, um PWA, um site, ou outras formas de processar os arquivos comentados em interface para que haja a interação. Como vimos anteriormente, UX/UI podem trabalhar nesta parte da aplicação web, desenvolvedores front-end, e designers também.
O servidor fica em uma nuvem, pública ou privada, e acessível para a internet, com segurança adequada para entregar os dados somente a quem pode receber. Irá se comunicar com o banco de dados para saber o que entregar ao cliente. Desenvolvedores back-end, analistas de sistemas e desenvolvedores full-stack irão comumente preencher vagas que desenvolvem para esta parte do sistema web.
O banco de dados reúne as informações necessárias em um lugar só, ou múltiplos, se preocupando em manter a resiliência, disponibilidade e atomicidade das informações, para que o servidor possa requisitar conforme necessário. Como vimos em outras áreas do saber, profissionais em cargos diferentes normalmente estruturam e mantém esta aplicação, o desenvolvedor apenas precisa aprender a lidar com o SQL, uma linguagem comum de consulta aos dados nos bancos mais utilizados.
Desenvolvedor Mobile
Esta é outra subárea da tecnologia muito comentado nos tempos atuais. Para construirmos um aplicativo móvel existem algumas diferentes possibilidades, mas vamos nos concentrar em três: WebView, PWA e Nativo.
O desenvolvimento em WebView, irá utilizar os conhecimentos comentados anteriores na seção de desenvolvedor web, para criar uma aplicação que será colocada em um aplicativo nativo, essa aplicação nativa tem somente um navegador embutido capaz de executar o código web. É uma opção que garante flexibilidade para entregar apps web e mobile, e possui uma atualização e manutenção do código mais tranquila, porém com menos acesso à recursos nativos, ou que exigem mais conhecimento.
O desenvolvimento de apps PWA utiliza de um conceito similar ao anterior, porém com a conversão para app nativo feita de forma mais invisível para o desenvolvedor, que precisa apenas aprender a lidar com o arquivo de manifesto, utilizado como referência no momento da instalação.
“Um dos aspectos que definem uma PWA é que ela pode ser instalada no dispositivo e em seguida aparecer para os usuários como uma aplicação específica da plataforma”
https://developer.mozilla.org/pt-BR/docs/Web/Progressive_web_apps
Este modelo de desenvolvimento também garante flexibilidade e facilidade na manutenção, mas conta com a mesma desvantagem de aplicações WebView.
https://brainhub.eu/library/progressive-web-apps-advantages-disadvantages
Por fim, temos o modelo de desenvolvimento nativo, que depende da plataforma que irá executar. Dispositivos baseados em android, podem por exemplo, executar códigos produzidos em Java ou Kotlin, utilizando Android Studio, celulares android, smart tvs e smart watches se beneficiam com frequência desse método. Enquanto dispositivos baseados em iOS dependem da linguagem Swift produzida através do XCode para conseguir executar em equipamentos Apple.
https://www.techtarget.com/searchsoftwarequality/definition/native-application-native-app
Esse modelo de desenvolvimento costuma ser escolhido por times multidisciplinares que podem atuar no desenvolvimento de duas bases de códigos distintas em prol de um aplicativo extremamente parecido ou igual em muitos dispositivos, ou então por times que produzem aplicativos extremamente dependentes de recursos nativos, seja por segurança ou experiência melhorada para o usuário.
Algumas tecnologias permitem o cross-compile, porém com certas limitações em cada caso. Pode ser uma boa saída quando se quer aplicações confiáveis, performáticas e sem muitos recursos nativos, utilizando uma base de código unifica que pode ser atualizada constantemente por um time mais enxuto.
https://www.jetbrains.com/help/kotlin-multiplatform-dev/native-and-cross-platform.html
Conclusão
A área de tecnologia é vasta e possui muitas opções para quem quer se aventurar, exige determinação e paciência no início dos estudos pois certamente possui um primeiro degrau no aprendizado muito desafiador. Porém com o tempo é notável que as tecnologias tendem a ser extremamente parecidas. Além disso um bom profissional na área irá conhecer um pouco de muitas diferentes ferramentas, isso irá o auxiliar não só a produzir uma aplicação ou automação, porém também manter ela estável, segura, e escalando conforme a necessidade do produto.