FullStack @ OLX — Parte 2

Alicia Zavalis
5 min readApr 24, 2019

Este artigo é resultado da palestra que eu e Daniela fizemos em eventos de tecnologia voltado para mulheres: WoMakersCode, TDC4Women e OLX Talks.

No post anterior, foi possível notar a ascensão da carreira fullstack no mundo da tecnologia, a abrangência desse perfil dentro da OLX e os motivos pelos quais nós consideramos um diferencial ser fullstack. (se você ainda não leu, corre lá!)

Definimos um profissional fullstack como:

"Alguém que trabalha com QUALQUER TECNOLOGIA.

Uma pessoa generalista e não especialista, focada em resolver problemas e construir produtos."

Antes mesmo das skills técnicas, é preciso que um profissional fullstack tenha comportamentos e atitudes que inspirem esse perfil.

Será necessário aprender o tempo todo e se sentir confortável atuando em tarefas que você nunca fez igual ou em tecnologias que você ainda não domina. Dessa forma, é preciso que esse profissional tenha criatividade para utilizar conhecimentos e experiências anteriores em um novo contexto. É indispensável saber administrar a pressão e a ansiedade de aprender rápido para prosseguir, não ter medo de buscar ajuda e de errar. E, principalmente, é essencial manter um aprendizado contínuo.

Com esse mindset, já é um grande passo para o sucesso!

Mas não é só isso, claro. É preciso o aspecto técnico.

Ninguém nunca vai conseguir saber tudo.

A dica é focar naquilo que é comum entre as tecnologias, nos fundamentos e nos princípios.

Ao nosso ver, um princípio fundamental é o Raciocínio Lógico. No universo da tecnologia, a lógica de programação consiste na capacidade de fazer um código ter o fluxo de execução esperado. Os comandos que se escreve em um algoritmo seguem uma certa ordem de execução e você tem que garantir que isso está correto do ponto de vista das regras de negócio.

Para validar o funcionamento, utilizamos casos de uso que poder ser testados mentalmente. Porém, pensando em um fluxo de trabalho constante, testar todos os fluxos mentalmente e a cada iteração é inviável. Por isso, é recomendável escrever testes que tornem essa verificação automática e mais segura!

Está dando pra notar como buscamos técnicas e conceitos independentes da tecnologia para nos ajudar no processo de desenvolvimento e aprendizado?

É importante se basear nos Conceitos da Ciência e da Programação. As linguagens e tecnologias se apoiam em fundamentos e, focando em aprendê-los, trabalhar com algo fora da sua zona de conforto será uma questão de estudar uma sintaxe específica e aplicar o conceito em novo contexto.

Podemos citar conceitos como: Estrutura de dados, Paradigmas de programação, Análise de algoritmos, Modelagem de banco de dados, Arquitetura de Software, Protocolos e camadas da web, Sistemas operacionais, Sistemas distribuídos e muitos outros! Esses são alguns conceitos presentes em disciplinas de faculdade de Computação.

Não é obrigatório que você faça uma faculdade pra aprender tudo isso, mas sabemos a importância do aprendizado deles e não dá para negar que precisamos dominá-los. Todo esse conteúdo é extenso e vai demandar horas de estudo. A ideia não é virar noites estudando todos os assuntos (é impossível saber tudo, lembra?), mas tentar equilibrar o aprendizado com algum desafio do dia-a-dia. Dessa forma, diante de um novo assunto deve-se evitar ao máximo a atitude do "copy and paste". Utilize esse momento para entender como aquele trecho de código funciona e os fundamentos que estão por trás. O domínio desses conceitos vão evoluindo com a prática e ao longo de sua carreira.

O processo de aprendizado é constante, aproveite as oportunidades!

Além dos conhecimentos técnicos, a nossa experiência mostrou que quando temos um código que segue boas práticas facilita muito o aprendizado e o desenvolvimento propriamente dito.

Já pensou precisar mexer em uma tecnologia que você não domina e ainda ter um código difícil de entender?

"Se é fácil de ler, é fácil de escrever." ― Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship

No livro Clean Code, Robert Martin, afirma também que a proporção de leitura vs escrita de código é de 10:1, deixando claro que a nossa produtividade está totalmente ligada a qualidade do código que trabalhamos e contribuímos.

Nós, como desenvolvedoras, sabemos que ver o nosso código funcionando como esperado nos traz uma sensação incrível! Mas será que se precisarmos voltar nele um mês depois, vamos conseguir entender de forma clara e rápida o que aquele trecho está fazendo?

Existem técnicas simples e poderosas que ajudam a escrever código limpo, como:

  • Ser consistente na escrita do código. Não importa se você usa tabs ou spaces, importante é seguir um padrão (de preferência o da linguagem). Configure o seu editor de texto para auxiliar no desenvolvimento, use as ferramentas de desenvolvimento a seu favor!
  • Tenha cuidado na hora de dar nomes. Expresse exatamente o que uma variável, classe ou método querem dizer. Seja claro. Facilite a leitura do seu código expressando exatamente o que ele é.
  • Evite repetição de código. Isole o trecho de código em um método. Além do código ficar mais limpo, a manutenção é muito mais fácil e em um só lugar!
  • Evite métodos muito grandes. Além de melhorar a legibilidade, pois os métodos terão nomes claros expressando o que eles fazem, facilita também a de criação testes! A lógica implementada ficará isolada e mais segura para modificações posteriores.
  • Evite comentários. Comentários não são proibidos, mas podem ser fortes indícios de que seu código precisa ser melhorado. Quando sentir necessidade deles, observe se não existe espaço para melhorias. Busque tornar o código tão claro que os comentários tornem desnecessários!

Não escreva código só para você, escreva o código que você gostaria de ler!

Programar é uma arte. Aprecie e o seu código e permita que os outros façam isso também!

Não podemos negar, ser fullstack engloba muitos desafios!

Mas também nos dá oportunidades de estar sempre em contato com o novo, de testar diferentes soluções e tecnologias, de oferecer alternativas e de propor solução criativas! Mas lembre-se que "com grandes poderes, vêm grandes responsabilidades!"

Esperamos que esses artigos tenham ajudado você a saber mais sobre a carreira fullstack e a decidir seus próximos passos ;)

Até a próxima!

--

--