14 hábitos de programadores altamente produtivos
A partir da leitura do livro “14 hábitos de programadores altamente produtivos” resolvi fazer um resumo breve desta leitura com tópicos dos melhores hábitos adotados por desenvolvedores de grandes empresas e startups. O intuito deste artigo é auxiliar tanto programadores iniciantes, como programadores seniores na sua trajetória para se tornar um profissional de sucesso.
Obs: No final do artigo há uma frase que me motivou a criar este post e que irá motivá-lo também.
Obs 2: Há uma lista de TODOs após o detalhamento do hábito 14. Cada TODO se refere ao hábito do seu respectivo número, por exemplo: TODO 1 se refere ao Hábito 1, TODO 2 se refere ao Hábito 2. E assim por diante.
Hábito 1 — Procure os sinais
Neste primeiro hábito abordado no livro, o autor faz a menção de dois termos utilizados na língua inglesa, FOMO (the fear of missing out) ou “O medo de estar perdendo algo” e JOMO (the joy of missing out) ou “A alegria de estar perdendo algo”. Em FOMO ele aponta como nós sempre estamos em busca de aprender novas tecnologias ou frameworks, trocar de sistemas operacionais ou softwares somente porque estão na moda ou dizem que existem ferramentas melhores e que as atuais vão se depreciar com o tempo. Para Zeno Rocha (autor) não existe a melhor ferramenta, devemos praticar JOMO e estar feliz se contentando com o que cada um de nós já sabemos, mas obviamente não nos contentarmos com tudo que já aprendemos. Devemos praticar diariamente a arte sutil de dizer ‘não’. Não à nova biblioteca. Não àquela plataforma mais sofisticada. Diga mais ‘não’ para poder dizer ‘sim’ ao que realmente importa para você.
Hábito 2 — Foco nos fundamentos
Os fundamentos é muito importante pra qualquer atividade, e com desenvolvimento e programação não é diferente. Se você decidir se tornar um ótimo desenvolvedor, é importante entender os principais conceitos, como algoritmos, lógica, redes, acessibilidade, segurança e experiência do usuário. Conhecer tudo isso vai te ajudar a criar os próximos dez aplicativos complexos que você criará no futuro.
Hábito 3 — Ensinar é igual a aprender
A partir de certo momento da minha vida comecei a perceber que quanto eu ensinava algo às pessoas, mais eu abstraía sobre os assuntos abordados, e a leitura deste capítulo fortificou ainda mais isso em minha mente. Acredite, este é o meu primeiro artigo e criei por pura motivação da leitura deste capítulo, onde o autor relata sua experiência como palestrante tendo mais de 100 palestras em seu portifólio e como isso o ajudou a adquirir sucesso em sua carreira. Se você realmente quer aprender algo, precisa ensinar. Seja em artigos, blogs, aulas, palestras, ou apenas um review de código. Todo tipo de ensinamento é garantia de certeza que você aprenderá mais do que se tiver aprendendo sozinho sem a transmissão de tal conhecimento a alguém.
Hábito 4 — Seja sem graça
Neste capítulo o autor fala inicialmente sobre o esforço que devemos aplicar em nossas tarefas cotidianas para nos tornarmos melhores a cada dia que passa. Um programador melhor é aquele que está em constante evolução e trabalhando sempre na busca da sua melhora como um profissional, constância!!. Neste hábito “Seja sem graça” ele enfatiza por meio da analogia de que desenvolvimento é um jogo infinito, ou seja, um jogo que nunca termina e cheio de novas variantes a todo momento dentro de padrões de atividades constantes que devemos encarar (Figura abaixo). Sendo assim programadores que jogam o jogo infinito, estão menos preocupados com a intensidade e mais focados na consistência.
Jogo infinito
Hábito 5 — Faça para o seu futuro eu
Quem nunca passou pela sensação de escrever um código e após 6 meses olhar aquele código e ficar se perguntando: “Por que raios eu fiz isso?” ou “Nossa, por que não fiz isso de tal jeito?”, isso é normal e acontece, pois depende muito do ambiente ou momento que a gente está lidando no momento daquela codificação, pode ser por conta de estarmos inseridos em um ambiente tóxico de trabalho, ou por uma pressão do gerente de projetos para entrega rápida da feature. Embora a gente passe por essa sensação, sempre temos que ter em mente que da vez que a gente começar a desenvolver devemos fazer a seguinte pergunte: “O futuro eu entenderá a intenção deste código?”. Abaixo uma figura de como a qualidade do ambiente de trabalho influencia na qualidade do nosso código.
Qualidade de código
Hábito 6 — Seu 9 às 5 não é suficiente
Se você acha que trabalhar em projetos do seu emprego das 9 às 5 é o suficiente para se tornar um ótimo programador, sinto lhe dizer mas você está enganado. Nosso trabalho provavelmente não é o suficiente para mostrar todo nosso potencial, teremos que estudar e se possível levar nosso problema do trabalho pra nossa casa (pensando em como soluciona-lo por exemplo). Não digo que devemos apenas focar no trabalho e estudos, é extremamente possível e muito importante que devemos tentar manter o equilíbrio entre trabalho, estudos e família. Sempre que possível estudar sobre problemas cotidianos do trabalho e em quais skills podemos melhorar.
Hábito 7 — Domine o lado sombrio da força
A programação por si só é algo poderosíssimo, mas nada é mil maravilhas rsrs. Para um software realmente fazer sentido, se tornar útil para os usuários e entregar produtividade para a equipe, ele deve estar alinhado totalmente com os problemas que o negócio enfrenta, aí que entra as regras de negócio. Elas servem para orientar e restringir as operações dentro da empresa e são dessas regras de negócio que surgem os softwares e os sistemas empresariais.
Muita das vezes um funcionário que tem um conhecimento amplo da regra de negócio de uma determinada empresa tem muito mais valor do que alguns funcionários de cargos importantes, pelo simples fato de resolverem problemas rapidamente ou por terem uma solução melhor. Ser um bom desenvolvedor é importante, mas saber o funcionamento das regras de negócio é fundamental para o desenvolvimento de softwares.
Sabendo como funciona a regra de negócio da sua empresa, será possível:
1 — Economizar seu tempo encontrando os problemas da sua empresa. Quanto melhor você entender do negócio, melhor será para resolver esses problemas.
2 — Evitar códigos complexos e aplicar soluções simples para os problemas. Em muitas das vezes queremos desenvolver códigos extremamente abstratos ou flexíveis, mas nem sempre será necessário. Saber sobre as regras de negócio ajuda bastante nisso.
3 — Priorizar melhor as microdecisões, que consequentemente te irá te ajudar a encontrar funcionalidades críticas, a apontar onde você deve gastar maior parte do seu tempo e provavelmente irá possibilitar que você escreva um código de alta qualidade, impedindo de refatorações futuras.
“Lembre-se, uma pessoa que sabe programar é poderosa, uma pessoa que sabe programar e sabe como os negócios funcionam é imparavel.”
Hábito 8 — Projetos paralelos
Sabia que o Twitter, o Craigslist e o Slack surgiram a partir de projetos paralelos? Os projetos paralelos não são algo a observar apenas como uma oportunidade de nova solução inovadora ou o seu futuro empreendimento, eles são uma grande oportunidade para aumentar seu portifólio, para criar um currículo e mostrar suas habilidades, além disso serve para você poder colocar a mão na massa para experimentar e aprender metodologias ou abordagens que no seu emprego atual não são possíveis de implementar. Como se trata de projetos pessoais não existe pressão, horários ou especificações impostas por ninguém, o que significa que você pode usar toda sua criatividade e se divertir fazendo isso.
Assunto que você gosta x habilidade que quer aprender = Projetos paralelos
Perguntas a se fazer para ajudar a escolher um projeto pessoal:
- Eu realmente gosto deste assunto, campo, tipo de trabalho?
- Estou disposto a passar pelo menos cinco anos trabalhando nesta ideia?
- Posso executar esta ideia completamente sozinho?
- Essa ideia em particular é melhor do que outras que eu tive no passado? Existe alguma outra ideia que poderia usar melhor o meu tempo?
- Tenho esse problema pessoalmente ou estou resolvendo para outra pessoa? (Essa pergunta irá ajudar a conhecer melhor o público para quem você está construindo a solução).
- Por que estou animado com essa ideia agora?
É crucial entender sua motivação. Você quer aprender uma nova tecnologia? quer fazer dinheiro? ou está apenas se distraindo de outros problemas? Seja honesto com você mesmo.
Hábito 9 — Mario ou Sonic?
Mario e Sonic fez parte da infância de muita gente. Eles eram heróis na mesma época só que em consoles diferentes. Ambos eram grandes heróis em seus respectivos “mundos”. Mario vivia pulando de um lugar para o outro, já Sonic está sempre disposto a enfrentar os maiores desafios que pode encontrar.
Quando estamos começando na carreira costumamos a mudar de emprego constantemente em um curto período de tempo. Não há nada errado nisso, porém isso nos transforma um profissional com muitas habilidades superficiais. Por outro lado, quanto mais tempo gastamos em um projeto, mais oportunidades teremos para adquirir um grande impacto a longo prazo na nossa carreira.
Ambos (Mario é Sonic) são incríveis e no final das contas ambos têm potencial de salvar o mundo. Mas se você tivesse que escolher entre esses dois, seja constante e resiliente como Sonic.
Hábito 10 — Ouvir ativamente
Lidar com cliente no mundo dos negócios é muito complicado, pois em muitos casos eles não sabem muitas vezes o que realmente querem, o que dificulta bastante as decisões de nós desenvolvedores. Em algumas empresas os desenvolvedores nem sempre tem contato direto com o cliente para levantamento de requisitos, significando que esses requisitos chegarão através de outra pessoa (analista ou gerente de projetos) podendo dificultar no entendimento e na transmissão dessas informações, porém não é só no levantamento de requisitos que pode implicar no mal entendimento de ideias, esse mal entendimento também pode acontecer entre os desenvolvedores na tentativa de auxiliar quem precisa de algum suporte para esclarecimento de dúvidas para desenvolvimento de uma feature específica. Por isso é de extrema importância que devemos apenas ouvir outras pessoas ativamente, somente assim poderemos obter um entendimento sobre qualquer informação valiosa e absorver detalhes críticos para solucionar os problemas de uma aplicação complexa.
Independentemente da conversa que estiver tendo, pratique o hábito de ouvir ativamente. Não apenas ouvir para responder , quero dizer realmente ouvir, realmente tentando entender o que a outra pessoa está tentando transmitir. Todo mundo que você conhece está travando uma batalha que você não conhece. Seja gentil sempre.
Hábito 11 — Não subestime
“Só vai levar 5 minutos.” — Todo desenvolvedor do planeta
O maior problema nas entregas atrasadas de sprints é a estimação errada do tempo para conclusão da tarefa. Sabe por que somos tão ruins em estimativas de software? pelo seguinte:
- Queremos impressionar os outros com a nossa agilidade ou habilidade de codificar e entregar soluções rapidamente.
- Esquecemos que não se trata apenas de código e que devemos lembrar de todo o ciclo de vida de desenvolvimento de um software como por exemplo: compilar um código, escrever testes, documentar correções, resolver conflitos e participar de reuniões diárias.
- Não nos concentramos em apenas uma coisa e dividimos nossa atenção em vários projetos ao mesmo tempo. Nossa mente só tem uma Thread e só funciona melhor utilizando-a para execução exclusiva para apenas uma tarefa específica.
- Acreditamos que todos são iguais, sendo que na verdade cada um pensa de um jeito e trabalha de um jeito diferente. Sendo assim cada um tem seu próprio tempo para conclusão de uma tarefa específica.
- Não conseguimos lidar com a pressão, esquecendo que as vezes o problema não está relacionado diretamente com a gente e que a pressão que chega até nós pode ser fruto de um efeito dominó vindo de cargos mais altos.
Na próxima vez que estiver de estimar uma duração para uma tarefa, duplique ou triplique este tempo estimado, é melhor estimar uma longa data e entregar antes do prazo do que entregar atrasado e decepcionar seu gestor.
Hábito 12 — Especialista vs. Generalista
Devo ser um especialista em um determinado assunto ou generalista e saber o necessário para resolver qualquer tipo de problema? A resposta vai depender de uma autoanálise. Você precisa conhecer a si mesmo, olhar para dentro e pensar quais tipos de tarefas o motivam mais durante o seu dia de trabalho. Dê uma olhada na lista a seguir e veja com quem você mais se identifica.
Especialista — Prós
- Você pode conseguir um salário muito bom em um campo específico.
- Você normalmente vai ser reconhecido como uma autoridade técnica em determinado assunto.
- Você precisa se manter atualizado(a) em apenas uma plataforma/linguagem
- As empresas estão sempre procurando pessoas especializadas em um campo específico.
Especialista — Contras
- Pode ser difícil encontrar uma posição se sua especialização for muito limitada.
- Se a tecnologia escolhida correr o risco de se tornar ultrapassada, é possível que você tenha que começar de baixo novamente e isso vai ser difícil.
- É possível que o seu conhecimento seja muito dependente da empresa, o que dificultará a aplicação das mesmas habilidades em outro lugar.
- Se houver necessidade urgente de usar outra tecnologia, provavelmente você vai demorar mais para concluir uma determinada tarefa.
Especialista — Oportunidade de trabalho
- Cargos sênior, especialmente em grandes empresas.
- Projetos de pesquisa em universidades.
- Freelancer em um campo específico.
Agora, vamos dar uma olhada em como essas listas se comparam às mesmas de um generalista.
Generalista — Prós
- Você está acostumado a aprender novas tecnologias rapidamente.
- Existe uma grande variedade de oportunidades que você pode buscar em diferentes setores.
- Se você precisar de um novo emprego, é mais flexível e facil de fazer a transição.
- Se você precisar mudar o contexto para um tipo diferente de tarefa, há chance de encontrar uma solução mais rápido.
Generalista — Contras
- É difícil se manter atualizado em várias linguagens e tecnologias diferentes.
- É possível que você demore muito para resolver problemas complexos e específicos da tecnologia.
- É difícil alcançar uma posição de liderança se você estiver mudando de campo constantemente.
- Embora seja mais fácil encontrar uma nova posição, pode ser difícil mostra que você é o melhor candidato.
Generalista — Oportunidades de Trabalho
- Startups/Empresas em estágio inicial.
- Oportunidades de consultoria.
- Começar seu próprio negócio.
Hábito 13 — Controle suas variáveis
“A única coisa sobre a qual você às vezes tem controle é a sua perspective. Você não tem controle sobre sua situação. Mas você tem a escolha sobre como vê-la.” — Chris Pine
Pare de perder tempo com variáveis que estão fora de seu controle. Concentre-se nas variáveis que você póde controlar.
Variáveis que você PODE controlar:
- Seus pensamentos
- Quem são seus amigos
- O que você come e bebe
- Como você gasta seu dinheiro
- O que você faz com o seu tempo
- Como você trata seu corpo
- Quanto você aprecia as coisas que você já tem
Variáveis que você NÃO PODE controlar:
- O clima
- A economia
- A saúde pública
- Como as pessoas tratam você
- O que as pessoas pensam sobre você
- O que as pessoas gostam ou não
- O que aconteceu no passado
Hábito 14 — Pare de esperar
Sempre ninguém está satisfeito com a vida. Pode reparar, dos mais pobres aos mais ricos, sempre existe algo faltando para conquistar ou algo para reclamar.
“Este país é horrível, preciso me mudar o mais rápido possível…”
“Eu tenho uma ideia incrívell, preciso colocar em prática…”
Não há nada de errado nisso. Desejar um futuro melhor para si mesmo é um princípio básico do ser humano. O problema é o que sucede essas frases.
“… mas eu não sei outro idioma.”
“…mas eu não tenho tempo.”
Apenas algumas pessoas tem coragem e determinação para engrentar esses desafios. A única coisa que impede você de conseguir algo é você mesmo.
Você quer investir em uma ideia? Então quantas horas você está se dedicando a este projeto? Você pode acordar 1 hora antes? Você pode dormir 30 minutos depois? E o tempo de almoço, você pode diminuir?
/********Mensagem que mencionei no inicio*************
Você acabou de ler este resumo. Você pode fechar ele e continuar com sua vida, ou pode tentar adotar esses hábitos a partir de hoje e se tornar um desenvolvedor PHODA. Então o que você vai fazer? O que você está esperando?
**********************************************************/
Fonte: https://14habits.com/br