7 habilidades de um programador de sucesso

Moça desenvolvendo

Um blogueiro com o apelido SeattleDataGuy em sua coluna no Medium falou sobre sete habilidades que um bom programador deveria ter.

1. A capacidade de ler o código de outra pessoa

Todos, menos você, repugnantemente escrevem código. Portanto, uma excelente habilidade que só o beneficiará é aprender a ler o código de outra pessoa. Não importa o quão bagunçado e impensado ele pareça, você ainda precisa entendê-lo. No final, este é o seu trabalho.

Por que essa é uma habilidade útil? Em primeiro lugar, a capacidade de entender o código de outra pessoa é uma ótima oportunidade para ver o que significa um design ruim. Ao analisar o trabalho de outra pessoa, você entende o que funciona e o que não funciona. Além disso, você percebe qual código é mais fácil de entender para outros desenvolvedores e qual é o contrário.

A capacidade de ler códigos confusos também simplifica o processo de criação de atualizações, se necessário.

2. Um talento para projetos ruins

Outra habilidade importante é entender quais projetos não faz sentido desenvolver. As grandes empresas sempre desenvolvem muitos projetos, a maioria deles não chega ao fim. Existem projetos sem sentido em termos de negócios, existem projetos simplesmente com pouca liderança. Obviamente, isso não significa que você deva abandonar imediatamente a ideia se não concordar com ela. No entanto, se a gerência não puder explicar adequadamente o que fará com o resultado final, talvez seus esforços não sejam desperdiçados.

Tela de código
Tela de código

Além disso, alguns projetos às vezes se concentram tanto na tecnologia, e não na decisão, que desde o início pode ficar claro que eles não serão bem-sucedidos. Para desenvolver essa habilidade, você precisa preencher os inchaços em projetos ruins, só então você pode distingui-los.

3. Evitar reuniões

Independentemente de quem você trabalha como desenvolvedor ou analista de dados, são necessárias reuniões e reuniões, porque você precisa estar no mesmo comprimento de onda com gerentes, usuários finais e clientes. No entanto, essas reuniões tendem a assumir todo o seu horário de trabalho. Portanto, é importante aprender a evitar alguns deles.

O método mais comum é simplesmente bloquear duas horas por dia em uma agenda de reuniões. Outra maneira é chegar ao trabalho mais cedo do que qualquer pessoa, a fim de conseguir trabalhar em paz e sossego e não se distrair.

4. Capacidade de usar o Github

Alguns estudantes de ciência da computação começaram a usar o GitHub quase desde o início. Outros encontram o GitHub em seu primeiro trabalho. Para eles, parece uma floresta escura com equipes e processos estranhos. Eles nunca têm 100% de certeza do que estão fazendo.

Não importa qual sistema sua empresa use, ele se tornará um grande obstáculo se for usado incorretamente. Um simples push ou commit pode fazer com que você gaste horas tentando desvendar uma rede de vários brunches e garfos. Além disso, se você esquecer o comando pull e não atualizar a versão mais recente do repositório, precisará resolver vários conflitos de mesclagem, que dificilmente podem ser chamados de atividades interessantes.  

5. Escrevendo um código de trabalho simples

Entre os jovens engenheiros, há uma tendência: tentar implementar tudo o que eles sabem em uma solução. Há um desejo de entender a programação orientada a objetos, as estruturas de dados e as novas tecnologias e usá-las em cada parte do seu código. Mas isso não vale a pena, você apenas cria complexidade adicional e desnecessária dessa maneira.  

Há um equilíbrio entre conceitos complexos de design e código simples. Padrões de design e design orientado a objetos devem simplificar o código no esquema geral das coisas. No entanto, quanto mais o processo é abstraído, encapsulado e colocado em uma caixa preta, mais difícil é depurá-lo.

Jovem programando
Jovem programando

6. Capacidade de dizer não e priorizar

De fato, isso se aplica a qualquer postagem. Mas, em particular, parece que todo mundo precisa de algo de técnicos.

A priorização e a capacidade de dizer não são habilidades intimamente relacionadas. Definir prioridades significa gastar tempo em tarefas que terão um grande impacto na empresa. Dizer não significa evitar o trabalho que a outra equipe deve fazer.

Essa habilidade é muito difícil de aprender, especialmente se você acabou de se formar na universidade. Você não quer incomodar ninguém, por isso assume obrigações desnecessárias. No entanto, sempre há muito trabalho e você precisa aprender a dizer não.

7. Design thinking

Uma habilidade difícil de testar durante uma entrevista e difícil de estudar na universidade é a capacidade de entender como o usuário final pode usar mal o seu software.

Por exemplo, como a parte principal da programação é a manutenção, isso significa que você frequentemente precisa alterar o código confuso para outro. Mesmo uma simples mudança requer o rastreamento de todas as referências possíveis a um objeto, método e / ou API. Caso contrário, você pode acidentalmente quebrar os módulos anexados que você não sabia que existiam. Mesmo se você apenas alterar o tipo de dados no banco de dados.

Também inclui pensar em casos limítrofes e em todo o design de alto nível antes de iniciar o desenvolvimento.

Em situações mais complexas, ao desenvolver novos módulos ou microsserviços, é importante considerar cenários operacionais do que você está desenvolvendo. Pense em como os usuários futuros precisarão usar seu novo módulo quando usá-lo incorretamente, quais parâmetros serão necessários e se existe a possibilidade de outro programador precisar do seu código.

A programação é apenas parte do problema. É fácil criar software que funcione bem no seu computador. Mas existem muitas opções diferentes para o desenvolvimento de eventos quando o código de implantação pode dar errado. E na produção já é difícil dizer como será usado e que outro código será anexado a ele. Cinco anos depois, um futuro programador pode perturbar as limitações do seu código.

Fonte

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *