Eu interajo com muitos programadores e aspirantes a dev no dia a dia. Seja pelos meus cursos online, minhas aulas presenciais ou grupos que participo, estou sempre aberto a bater um papo com a galera da TI em geral. Algumas perguntas são bem recorrentes, especialmente pela galera em começo de carreira que é onde eu foco em ajudar com meus conteúdos.
Dentre elas, sempre vem à tona a pergunta de como se tornar um programador melhor, mais sênior, um dev excelente. Se você não lê o meu blog com frequência, já escrevi no passado sobre como se tornar um programador, o que seria um prequel desse.
Agora escrevo sobre o próximo nível!
Ao invés de ler, você pode acompanhar o mesmo conteúdo neste vídeo abaixo, embora no texto eu costume passar mais referências.
As dicas que você vai ler aqui são estas:
- Use o Google intensamente
- Mantenha a cabeça aberta para novidades
- Acostume-se a programar corretamente
- Macro decisões não importam tanto assim
- Use a ferramenta correta para cada trabalho
- Você não sabe tudo e errar é humano
- Seja emocionalmente inteligente
- Revise seu código antes de submetê-lo
Vamos lá!
#1 – Use o Google intensamente
Eu costumo dizer que o Google é o melhor amigo do programador.
Você precisa saber o que perguntar para o Google. Deve ser capaz de entender os códigos que encontra nos resultados de pesquisa e conseguir aplicá-los no seu próprio problema. Principalmente quando o assunto são mensagens de erro.
Mensagens de erro são comumente associadas com falha. Entretanto, bons programadores sabem que estas mensagens na verdade são pistas para chegar na solução certa. Fique feliz que o erro aconteceu com você, enquanto estava programando.
Melhor do que disparar na tela do cliente, não é mesmo?!
#2 – Mantenha a cabeça aberta para novidades
Programadores veteranos abraçam a experiência de serem eternos aprendizes, usando novas linguagens de programação e frameworks conforme a necessidade, ensinando a si mesmos enquanto desenvolvem os projetos.
É como aprender a nadar sendo atirado na piscina: não tem jeito mais rápido!
Um amigo, Daniel Salengue, fala que as pessoas deixam de aprender muitas coisas pois têm medo de se sentirem idiotas aprendendo do zero. Não seja um idiota por medo de se sentir um idiota.
Outra dica aqui é, sempre que possível, parear com alguém mais experiente que você em assuntos que deseja aprender. É um método muito eficiente e que traz menos riscos ao projeto atual do que o “ser atirado na piscina” que citei antes.
#3 – Acostume-se a programar corretamente
Não confunda isso com “é proibido errar”, mas sim que, todo código que você escrever, respeite os princípios básicos de legibilidade, código limpo, SOLID, KISS, etc. Não adianta você ler estes livros, estas teorias, advogar a respeito e…não usar.
Eu falo brevemente sobre Código Limpo neste vídeo:
Escrever código de qualidade é um hábito, resultado de disciplina e consistência, algo que só programadores excepcionais possuem. Só ficar lendo e falando, sem agir neste sentido, é como se inscrever na academia, seguir influencers fitness e achar que vai ficar sarado (sem malhar efetivamente).
Aliás, Martin Fowler diz que, “qualquer tolo consegue escrever códigos que um computador entenda. Bons programadores escrevem códigos que humanos entendem”.
#4 – Macro-decisões não importam tanto assim
Otimização prematura é um dos grandes males dos programadores. Mas desenvolvedores experientes possuem atitudes zen com relação a grandes decisões ao invés de ficar discutindo por dias e dias para definir uma arquitetura. A única constante no software é a mudança, você deve estar preparado pra ela, e não lutar contra.
Inicie com uma boa arquitetura para o problema atual e, no máximo, futuro próximo e siga em frente. Não fique semanas tentando desenhar uma arquitetura perfeita. O futuro lhe mostrará o que realmente precisa em seu software. Chamamos isso de arquitetura evolucionária, uma tendência em métodos de desenvolvimento.
Como o pessoal do Basecamp fala, estamos fazendo software, não cirurgia no cérebro!
#5 – Use a ferramenta correta para cada trabalho
Existem muitas bibliotecas, ferramentas, linguagens e frameworks por aí, e não é por acaso. Programadores experientes sabem que uma única tecnologia não soluciona todos os problemas e que deve usar para cada problema que encontra a tecnologia certa, ou sair à procura de uma (vide dica 1).
A Persistência Poliglota é um bom exemplo.
Muitos programadores, geralmente que sabem apenas uma linguagem/framework, ou um único banco de dados, se apegam a esse conhecimento acreditando que é a melhor coisa do mundo e deixam de experimentar coisas novas ignorando os defeitos da sua tecnologia atual. Outros programadores são o contrário: fazem análises superficiais de novas tecnologias e saem usando qualquer coisa que é lançada por aí e está no hype.
Não seja nenhum desses dois. Seja como o Batman, use a ferramenta certa para cada ocasião, mantendo várias em seu cinto de utilidades.
#6 – Você não sabe tudo e errar é humano
Não tem jeito mais rápido de perder muito tempo em algo inútil do que ficar negando o fato de que você não sabe o que fazer em uma situação. Não é vergonha alguma você ter anos de experiência com software e dizer um “eu não sei” para o seu chefe eventualmente.
Vergonha é não querer aprender ou procurar como se resolve o que foi pedido…
Além disso, se a sua falta de conhecimento (ou algum descuido eventual) causar problemas, assuma responsabilidade por seus erros. Erros acontecem. Especialmente quando trabalhamos em ambientes e sistemas complexos. Apenas certifique-se de aprender com cada um deles, para que não se repitam.
“Move fast and break things” é quase um mantra no Vale do Silício, lar de algumas das empresas mais inovadoras do mundo. Não deixe que a busca pela perfeição seja uma inimiga dos seus projetos. Erros são na maioria das vezes as melhores oportunidades de aprender e melhorar como profissional.
#7 – Seja emocionalmente inteligente
Inteligência emocional separa os “homens dos meninos” em qualquer profissão (com o perdão da frase patriarcal, meninas). E desenvolvimento de software não é exceção.
Primeiro, aprenda a levar críticas numa boa. Você tem de desenvolver a habilidade de reagir racionalmente quando seu trabalho é criticado, seja por você ou pelos outros. O seu código do ano passado não agradará os seus colegas este ano (e nem você!), pois estamos em constante evolução.
Segundo, aprenda a lidar com situações de pressão. Você precisa saber como lidar com situações onde tudo está “caindo” e você é o responsável por fazer que tudo volte a funcionar novamente, mesmo quando você nem saiba exatamente o que aconteceu.
Se você é o cara que “surta” ao ser pressionado ou que não tem paciência com nada nem ninguém, você não vai ir muito longe na sua carreira.
#8 – Revise seu código antes de submetê-lo
Nada é mais ridículo do que outro programador notar falhas ou má formatação no seu código que facilmente você poderia ter corrigido se tivesse revisado antes de dizer que estava pronto. É como entregar um livro para uma editora antes de ler o que você mesmo escreveu.
Existe um ditado de John Woods, que diz que “sempre codifique como se o cara que for dar manutenção no seu código fosse um psicopata violento que sabe onde você mora”…
Programação, assim como muitas coisas na vida, está mais relacionado à sua atitude e quanto esforço você aplica nas tarefas do que quanto você já sabe sobre tecnologia. Então, se você é um programador inexperiente, arregace as mangas e codifique o máximo que puder, empregando quantas dessas dicas você conseguir.
E aí, tem alguma dica que eu não tenha me lembrado?
Quer mais dicas de como se tornar sênior? Dê uma olhada no vídeo abaixo.
Olá, tudo bem?
O que você achou deste conteúdo? Conte nos comentários.
Excelente post! Obrigado!
Fico feliz que tenha gostado!