Nos últimos tempos, a área de desenvolvimento passou a ser muito procurada, devido a alguns motivos que nos acostumamos a ouvir por aí: “bons salários”, “alta demanda”, “possibilidade de trabalho remoto”, entre outras coisas.

No entanto, não é só chegar e sair “codando”. É necessário entender como funcionam as áreas que envolvem desenvolvimento para saber onde podemos focar os estudos e até mesmo se especializar.

No artigo de hoje, vamos falar sobre algumas áreas que envolvem desenvolvimento, o que elas englobam e algumas das tecnologias utilizadas. Vamos focar em web e mobile, que é o que mais entendo.

Mas existem outras áreas que você pode atuar, essa, inclusive, é uma das partes legais do desenvolvimento!

Antes de tudo, você precisa saber que existem muitas linguagens de programação e diferentes áreas. Tentar aprender tudo de uma vez não parece ser uma escolha muito sensata. 😉

Em desenvolvimento, estudamos muita coisa durante muito tempo e, quanto mais pudermos focar em algumas poucas tecnologias que se complementam para o trabalho que devemos executar, fica muito mais fácil. Não adianta muito, no começo você querer aprender 10 linguagens diferentes e não saber onde elas podem ser aplicadas, ou quais problemas resolvem.

Cada linguagem tem um propósito e um motivo para ser utilizada, com experiência você entenderá esses contextos, não esquenta!

Dito isso, vamos para as áreas que gostaríamos de apresentar:

Front-End – Manipula dados no client

Basicamente, quando falamos de front-end em web, estamos nos referindo aos elementos que as pessoas que utilizam nossos sistemas web podem interagir. Seja um link, um botão, um menu, um texto, uma imagem etc. No caso da web, o client é o navegador.

Imagem exibindo o front-end do site da Locaweb

As tecnologias utilizadas no front-end são basicamente três:

HTML, CSS e JavaScript (embora seja possível utilizar outras linguagens para desenvolver front-end, o padrão da web é esse).

O HTML é uma linguagem de marcação. Basicamente, você usará a linguagem para montar os elementos que estarão no seu front-end, definindo uma semântica entre eles. Bem como, declarar as dependências diretas (importar os arquivos JavaScripts e CSS), definir meta tags, aplicar SEO e outras coisas.

O CSS é uma linguagem para aplicar estilos em um código HTML. Com o CSS, você pode ajustar as cores dos elementos HTML, ajustar tamanho de fonte, criar animações com os elementos, definir o tamanho de cada elemento, como eles se posicionam dentro do sistema e coisas desse tipo.

O JavaScript é uma linguagem para fazer a manipulação dos elementos HTML. Com essa linguagem, você pode modificar os valores dos elementos, modificar o comportamento deles quando uma ação é executada, criar e deletar elementos de forma dinâmica, consumir dados de APIs e de outros scripts, entre muitas outras coisas.

Como dev front-end, é interessante você estudar bem essas 3 linguagens, além de entender como desenvolver interfaces web, consumir APIs, manipular elementos HTML, estilizar com CSS, estudar sobre usabilidade, responsividade e acessibilidade.

Para facilitar o trabalho das pessoas desenvolvedoras front-end, existem alguns frameworks e bibliotecas (ferramentas desenvolvidas na linguagem para abstrair o desenvolvimento de algumas funcionalidades, entregando mais rapidez e padronização no seu código). Entre os frameworks CSS temos: Bootstrap, Foundation, Bulma, Tailwind CSS. Já em frameworks JS e bibliotecas para front-end, os mais utilizados são: React, Angular e Vue.js.

Um projeto bem legal, que mostram os caminhos interessantes a seguir, para devs que estão começando, é o roadmap.sh. Nele, você pode procurar a área que gostaria de seguir e visualizar o conteúdo que seria relevante entender mais. O site está em inglês, mas há uma versão em português que está no github.

Aqui, você pode encontrar o roadmap padrão (em inglês) para front-end.

Existe também uma versão em português.

Quando falamos de back-end, estamos falando do que a pessoa que utiliza nosso sistema não pode interagir diretamente, mas que é uma parte essencial do projeto. Por exemplo: o envio e consulta de dados em um banco de dados, envio e leitura de e-mails por protocolos como POP, IMAP e SMTP, criação de arquivos pdf, processamento de formulários, desenvolvimento de APIs, entre outras coisas.

Back-end – Manipula os dados no servidor

Diferente do front-end, onde temos apenas algumas tecnologias que dominam o mercado. Temos uma gama de tecnologias para trabalhar com back-end web, entre elas: PHP, Java, Ruby, Python, C#, Kotlin, Elixir, Go, JavaScript etc.

Aqui, reforço a importância de entender o contexto de cada linguagem, para saber onde cada uma se encaixa no tipo de problema que você precisa resolver.

Como dev back-end web, é interessante entender os tipos de dado que a linguagem que você desenvolve trabalha, entender como criar APIs, como funcionam as requisições na web, entender o negócio que está desenvolvendo, como criar CRUDs, autenticação e autorização, entre outros.

Para facilitar o trabalho de quem desenvolve em back-end, a maioria das linguagens também possuem frameworks para abstrair tarefas complexas em alguns trechos de código. Temos, por exemplo: Symfony para PHP, Spring para java Ruby on Rails para Ruby, Flask para Python, Phoenix para Elixir etc.

Aqui, você pode encontrar o roadmap padrão (em inglês) para back-end. Existe também uma versão em português.

Mobile

Quando falamos em mobile, estamos falando sobre desenvolvimento de apps para celulares, tablets e outros dispositivos móveis. Por exemplo, os aplicativos para Android e iOS.

O desenvolvimento mobile é basicamente dividido em duas categorias: nativo e híbrido.

No desenvolvimento nativo, você desenvolverá em uma linguagem específica para cada tipo de dispositivo. Por exemplo:

java ou kotlin (padrão atual) para Android e objective-c ou swift (padrão atual) para iOS.

Utilizando essas linguagens é possível aproveitar de maneira otimizada todos os recursos do dispositivo. E, no desenvolvimento híbrido, você poderá, basicamente, usar o mesmo código tanto para Android quanto para iOS, por meio de plataformas como:

Flutter (linguagem dart), Xamarin (linguagem C#), React Native (linguagem JavaScript) e algumas outras ferramentas que, em geral, utilizam JavaScript como linguagem principal.

É interessante uma pessoa desenvolvedora mobile estudar sobre criação de interfaces mobile, como consumir APIs, como funcionam os dispositivos móveis, APIs de cada sistema mobile, fluxos de uso, otimização de recursos etc.

No roadmap.sh está apenas disponível o roadmap para desenvolvimento Android nativo e tem também uma versão em português no github.

DevOps – Cultura de automação

Antigamente, a área de sysadmin (administração de sistemas e servidores – infraestrutura) era dominada por scripts shell (scripts que executam comandos específicos do sistema operacional), que rodavam de tempos em tempos nos chamados (crons).

Porém, nos últimos anos, essa área tem se adaptado para a cultura DevOps, onde as práticas de criação de infraestruturas como código estão cada vez mais comuns. Então, utilizando linguagens de back-end, podemos automatizar tarefas de modo muito mais fácil.

Quando falamos de DevOps, estamos nos referindo a processos de automação, geralmente envolvendo ambientes de desenvolvimento e produção (ambiente de produção é onde os sistemas disponíveis às pessoas usuárias se encontram).

Ferramentas para criação de servidores, automação de sincronização de código, automação de gerenciamento de código, observabilidade (geração de métricas de desempenho e status do sistema), entre outros.

Para quem for trabalhar utilizando a cultura DevOps é interessante estudar sobre o funcionamento de sistemas operacionais, containers, automação de tarefas, ferramentas DevOps, fluxo de deploy, comandos de terminal, linguagem das ferramentas que for utilizar, observabilidade e monitoramento.

O roadmap.sh para DevOps em inglês e em português.

DBA – Administração de Banco de Dados

Outra área que envolve código. Nessa, além de códigos back-end que podem ser utilizados, de acordo com o banco de dados que você for explorar, a linguagem SQL é bem importante.

O trabalho de uma pessoa DBA é manter o banco de dados utilizável, performático e estável, mesmo com as aplicações crescendo dia a dia.

É interessante, para quem for trabalhar com isso, entender as diferenças entre bancos de dados relacionais e não relacionais, compreender como funcionam os armazenamentos de cada engine (motor) dos bancos de dados, como funcionam os backups de dados, comandos e ferramentas para otimização de queries (consultas) e níveis de permissão de usuários para os bancos.

Dentre os bancos de dados mais conhecidos, temos:

Oracle, SQL Server, mySQL, PostgreSQL, MongoDB, Cassandra, Neo4J, sqlite, entre outros.

Caso você queira se especializar em Postgres, sugiro o estudo do roadmap para DBA PostgreSQL.

Existem muitas outras áreas e profissões que envolvem código. Tais como:

Testers e QA, Data Science, IoT & Makers e tantas outras. Podemos falar delas em outra oportunidade.

Desejamos que o conteúdo ajude a entender um pouco mais sobre a área e onde você pode focar dentro do universo do desenvolvimento.

Um grande abraço e até a próxima!