Existem muitas discussões no meio de desenvolvimento sobre quais ferramentas são melhores, qual melhor provedor de cloud e como elevar a produtividade ao máximo.
Mas falamos pouco sobre o ponto mais importante na hora de implementar ou desenvolver uma solução, que é o conceito por trás disso.
Não há como utilizar uma IDE sem saber programar, ou uma scrumboard sem conhecer a metodologia, nem como automatizar infraestrutura sem conhecer de infra, por exemplo.
Exemplificando…
Logo que iniciei minha jornada na Zup, me deparei com um desafio interessante. Todo o provisionamento da infra do projeto era feito em Cloudformation.
Cloudformation é uma ferramenta da AWS para provisionamento e criação automatizada da sua infraestrutura na nuvem que possui um concorrente mais difundido no mercado nacional: Terraform.
Apesar de conhecer a linguagem, eu era muito mais habituado ao Terraform, até um pouco evangelista da Hashicorp. Mas não tive grandes dificuldades em mudar a linguagem e a ferramenta por um simples detalhe: Eu não aprendi Terraform, aprendi Infraestrutura como código.
Ou seja, pelo conhecimento prévio do conceito, eu já sabia o que fazer, apenas precisei mudar como executar.
Outro exemplo interessante que já me ocorreu algumas vezes: um amigo me aciona com uma dúvida sobre o Route53. Route53 é o serviço de DNS da AWS (excelente, inclusive). Em 99% dos casos, a dúvida na verdade era sobre qual tipo de registro criar, ajustar um TTL ou criar uma zona secundária.
Onde quero chegar?
As dúvidas eram sobre DNS, não sobre o Route53. Faltava o conceito, não havia deficiência alguma na ferramenta.
Tecnologia vs Teoria
Passeando por tópicos em fóruns e comunidades, é possível encontrar pessoas interessadas em aprender diversas tecnologias, como Oracle, Docker, Java, AWS.
É possível estruturar uma VPC na AWS sem conhecer redes ou criar uma estrutura de herança em Java sem conhecer Programação orientada a objetos? Podemos trabalhar bem com Docker sem conhecer o básico de Linux e como funciona um servidor web?
Estudar tecnologias é bacana, conforme evoluímos e as coisas começam a funcionar, sentimos uma imensa satisfação.
Porém, este caminho será menos árduo, com muito menos tentativa e erro, se antes da tecnologia gastarmos um tempo para entender o conceito por trás de tudo.
Ainda me lembro de uma aula da disciplina de sistemas operacionais na época da faculdade, onde o grande professor Marco Antônio nos explicou como trabalhava um processador, utilizando o escalonamento de processos e registradores.
Aquela explicação me ajudou durante diversas situações na carreira e nunca mais tive dúvidas sobre o Load Average do processador.
Obviamente não é necessário fazer um curso superior para aprender isto. Alguns dos melhores profissionais que conheço não fizeram ou terminaram a faculdade, mas para mim funcionou bem.
O meu ponto é que algumas vezes, parar para estudar a teoria pode parecer perda de tempo mas, acredite, este tempo será recuperado na hora de implementar a tecnologia.
Um jornada inesperada
Antigamente seria possível separar as bases conceituais entre as áreas de infraestrutura e desenvolvimento, porém como tudo vem convergindo cada vez mais para o mesmo ponto (DevOps), acho que é importante para termos noções de:
- Linux (ou Sistemas Operacionais, se quiser ir mais longe)
- DNS
- Redes
- Servidores de aplicação
- Containers
- Estrutura de dados
- Orientação a objetos
- Teoria de banco de dados
- Arquitetura
- Lógica de programação
Certamente esta não é uma lista completa, muito menos definitiva, mas são os conceitos que foram importantes para mim e pode ser relevante pra você.
Importante frisar que não é necessário saber tudo dessa lista ou ser sênior em todas as áreas. Filtre os assuntos de acordo com os seus objetivos de carreira e monte sua própria lista de conceitos base.
Conclusão
Minha intenção com este artigo é, além de tudo, estimular o estudo e a busca por novos conhecimentos. Quanto mais fora da caixa pensarmos, mais diferenciados ficamos e melhores ficam nossos resultados.
Lembrando que nem sempre nossa jornada dentro da área de tecnologia será fácil, mas com certeza é recompensadora. Leve o seu próprio tempo e não pule etapas, não valerá a pena.
Me conta o que acha sobre o assunto nos comentários? Essa troca é importantíssima para nossa comunidade!
Vagas em tecnologia
Aqui na Zup, nós acreditamos em profissionais fora da curva e que querem crescer exponencialmente. Você gosta de desafios? Veja nossas vagas em tecnologia.