Para se tornar um profissional melhor na área de desenvolvimento, muitas vezes é necessário algumas qualidades que dificilmente serão adquiridas somente estudando e programando códigos, são habilidades que começam a aparecer com anos de experiência. Porém, o post do Fred Wu, desenvolver de software há duas décadas, traz várias dicas importantes para se tornar um profissional completo:

Mentalidade

Tenha uma mentalidade de crescimento

Espero que este seja óbvio, se você ainda não ouviu falar, leia mais aqui .

Tenha uma mentalidade de StarCraft

Em essência, é uma mentalidade que exige que você sempre considere as coisas ao seu redor e o obriga a pensar além da sua tarefa restrita na mão.

Reconhecer o efeito Dunning – Kruger

Certa vez, entrevistei um desenvolvedor de nível médio que se classificou como 9,9 em 10. O efeito Dunning-Kruger é essencialmente o oposto da Síndrome do Impostor , ambos muito comuns em nosso campo.

Agile não é um processo, é uma mentalidade

Algumas pessoas são excessivamente obcecadas com os processos de “ser ágil”. Na verdade, toda organização, todo projeto e toda equipe são diferentes, não há sentido em seguir um conjunto de processos que podem atrasá-lo e não agregar valor. Descubra o que ser ágil significa para sua equipe, seu projeto e sua organização é um esforço contínuo e deve ser tratado como tal.

Diferentes organizações exigem diferentes abordagens de engenharia

Alguns projetos e organizações exigem que decisões baseadas em tecnologia sejam tomadas antecipadamente, outras, por outro lado, requerem decisões baseadas em produtos. Saber como sua organização opera e o que ela valoriza desempenha um papel fundamental na compreensão de como o desenvolvimento de software deve ser abordado.

Um senso de direito apenas leva você até agora

Sejamos honestos, como desenvolvedor de software, temos muita sorte de estar em um campo de alta demanda. Como resultado, muitos começaram a criar um senso de direito – alguns ex-colegas até se queixaram da falta de caixas de lenços de papel no escritório. Iniciar e administrar um negócio é um trabalho extremamente difícil, vamos todos apreciar o que temos antes de fazer uma birra.

9-5 não é mau, nem horas de trabalho loucas

De vez em quando vejo conflitos entre pessoas que compartilham diferentes filosofias sobre o que trabalho e carreira significam para elas. Devemos adotar as diferentes maneiras pelas quais as pessoas preferem gastar seu tempo e energia, em vez de impor nossa própria ideologia. Descobrir e conhecer a diferença entre trabalhar em uma corporação gigante e trabalhar em uma pequena start-up é a chave da nossa felicidade.

Dor e ganho, sempre há uma troca

Uma extensão das 9-5 horas de trabalho malucas e malucas: ajuste sua expectativa com base no esforço que você faz. Você não pode ter tudo, priorizar a vida familiar em detrimento da carreira é 100% certo, desde que você saiba o que está dando em frente, vice-versa. Na faixa dos 20 anos, muitos de meus amigos e colegas de idade semelhante saíam e se divertiam depois do trabalho e nos fins de semana, enquanto eu estava na frente do meu computador desenvolvendo projetos de código aberto, é um exemplo de uma troca consciente que fiz.

Velocidade vs Qualidade

Internalizar a necessidade de velocidade e a qualidade deve sempre estar em nossa mente. Buscar apenas a qualidade ou a velocidade limitará significativamente sua capacidade de resolução de problemas e a progressão na sua carreira.

Pense, então faça

É um equilíbrio – não pense demais , mas também não fique sem pensar primeiro. Em caso de dúvida, peça conselhos e orientações a pessoas mais experientes.

Técnico

Evite a síndrome do segundo sistema

Eu vi a Síndrome do Segundo Sistema repetidas vezes ao longo da minha carreira. Algumas pessoas sempre assumem que a reescrita é uma abordagem muito melhor do que as alternativas, mas, na maioria das vezes, não é o caso.

Os microsserviços não são novos nem o Santo Graal

Há um debate de longa data da arquitetura monolítica versus micro-serviços, e a SOA (Arquitetura Orientada a Serviços) existe há décadas. Cada um tem seus próprios prós e contras, não se deixe enganar porque um post do blog diz isso, ou um produto e empresa em particular consideraram o sucesso. Use a ferramenta certa para o trabalho certo.

TDD (Test-Driven Development) não é o Santo Graal

Assim como os microsserviços, o TDD não é o santo graal e não deve ser tratado tanto. Perseguir o sonho do TDD sem conhecer seus prós e contras é tão contraproducente quanto não fazer o TDD quando necessário.

Code Aesthetics Matter

Muitas pessoas tratam a codificação como um esforço científico: elas se concentram puramente nos algoritmos e nos resultados. O desenvolvimento de software para mim é um esforço criativo, e geralmente uso espaços em branco e a aparência geral da base de código para determinar o quão bem organizado é um projeto – código profundamente aninhado e funções longas, por exemplo, são maneiras óbvias de determinar o código potencial cheiro.

Todos vocês já ouviram falar dos princípios do SOLID , mas já ouviram falar dos princípios do CRAP ?

Leia o máximo de código possível

Não me interpretem mal, escrever código é importante, praticar é importante, mas, uma e outra vez, me deparo com desenvolvedores que claramente têm pouca exposição a padrões e convenções estabelecidos.

A exposição e a diversidade da pilha tecnológica são sempre uma coisa boa

Não importa se você está em um campo altamente especializado ou é um generalista, sempre é bom ter exposição a diferentes pilhas e paradigmas de tecnologia – ele amplia seu campo de visão e aumenta os limites de seu entendimento técnico. Não seja o cara ou a garota conhecida como “um desenvolvedor do <insert tech stack> “.

Tenha uma ajuda técnica mais profunda

Isso é estritamente “um prazer ter”, mas perdi a conta do número de candidatos que entrevistei que afirmavam ser um especialista em Ruby , mas ainda não conseguem explicar o modelo de objetos Ruby e nunca ouviram falar de autoclasses ou desenvolvedores seniores que não conseguem explicar o problema. diferença entre git mergegit rebase. Claro, talvez você não precise de um entendimento profundo para fazer seu trabalho, mas certamente ajudará!

Pessoas

Sempre assuma incompetência em relação à malícia

Se você não tiver, leia mais sobre isso aqui . Sabendo disso, e associado a uma mentalidade de crescimento, você deve, portanto, ser incentivado a ensinar, educar e influenciar, em vez de ficar na defensiva e participar de “nós x eles”.

Verdade = Visibilidade x Tolerância

 Se você se encontrar regularmente insatisfeito com as informações que recebe, pergunte-se: quais informações estão e não estão disponíveis para você e tem certeza de que tem estômago para tolerar as novas informações?

O rapport e a produtividade são criados com o tempo

Algumas pessoas assumem que a produtividade de uma equipe é determinada em grande parte pela capacidade individual dos membros da equipe, outras também assumem que um engenheiro de 10x é um reflexo da capacidade técnica de cada um. Não é. A produtividade evolui com o tempo – a construção de relações com quem está ao seu redor geralmente é o herói desconhecido da produtividade.

Campeão Equipe Mais Campeão Individual

Espero que este seja óbvio, mas eu apenas tenho que enfatizar sua importância. Por favor, se você luta para trabalhar com sua equipe, peça ajuda! Se você tem um colega de equipe difícil de trabalhar, procure e ajude-o!

Pensamentos finais

O desenvolvimento de software está evoluindo rapidamente, porém alguns fundamentos são sempre úteis e relevantes. Espero que você ache este artigo útil.

Fonte: Hacker News