
Você não é realmente um desenvolvedor. Mais cedo ou mais tarde, as pessoas perceberão que você não entende do que está falando. Você não é experiente o suficiente.
Talvez você tenha esses pensamentos, de uma forma ou de outra. Ninguém disse que você não é um desenvolvedor, mas você fica pensando nisso. Talvez você esteja pensando assim agora.
Vou revelar um segredo sobre esse sentimento. Pronto?
Todos os desenvolvedores, em um grau ou outro, pensam e se sentem assim. Isso ocorre com tanta frequência que se tornou um caminho bem trilhado que todos nós seguimos.
Mesmo o melhor de nós - veteranos experientes e recém-chegados muito talentosos - é dominado por experiências desagradáveis semelhantes. Todos nós julgamos mal nossas habilidades de desenvolvimento.
Além disso, esses pensamentos podem ser prejudiciais. Eles nos forçam a guardar nossas idéias para nós mesmos. Eles forçam as pessoas a se recusarem a participar de projetos. Eles estreitam nossas perspectivas e destroem o potencial. Eles drenam força e nos limitam. Eles nos privam de pessoas.
Hoje vamos falar sobre sentimentos . Pelo que? Porque os desenvolvedores são pessoas, não máquinas. Nossos sentimentos afetam a qualidade e o prazer de nosso trabalho.
Este artigo é dedicado a todos que, pelo menos uma vez, sentiram que não podiam se candidatar a esta profissão. Qualquer pessoa que esteja insatisfeita com suas habilidades de programação ou que não se considere um desenvolvedor bom o suficiente . Se você já se sentiu desconfortável ao se chamar de "desenvolvedor", este artigo é para você.
Definindo um desenvolvedor
Vamos começar com a definição principal. Pronto?
Um desenvolvedor é a pessoa que escreve o código.
E é isso! Não existe nenhum Conselho Sagrado que lhe dá o título de desenvolvedor quando você atinge um determinado nível. Ninguém lhe envia um certificado em pergaminho com assinaturas ornamentadas e selo de folha de prata. Não há nenhum exame oficial que você precise passar para finalmente, finalmente, você ter o direito de ser chamado de desenvolvedor.
Às vezes, eles julgam o que significa ser um desenvolvedor com base em critérios artificiais. Isso é chamado de filtração (gatekeeping), e
Se você escreve código, então você é um desenvolvedor.
Não importa se você escreve profissionalmente ou nas horas vagas. Isso pode ser feito na CLI, IDE, web ou dentro de outro aplicativo. Pode ser código do lado do cliente, do lado do servidor, incorporado, baseado em nuvem, local, remoto ou algum outro. Se for um código, você é membro do clube.
Síndrome do Impostor
A síndrome do impostor é um estado em que você se sente um trapaceiro: eles dizem, você não é bom o suficiente e alguém vai entender isso no final, ou você não pertence a este lugar. A maioria dos desenvolvedores se sente assim em algum ponto. Não acredita em mim? David Walsh escreveu um excelente artigo sobre suas experiências como esta.
Em nosso setor, muitas vezes parece que existem super especialistas - pessoas no auge do profissionalismo que sabem tudo e têm respostas para tudo. É difícil não se comparar com eles e não sentir suas deficiências. Mas essa sensação é apenas percepção , não realidade. Aqui está uma boa ilustração :

Pode parecer que todos sabem mais do que você, mas eles não são. Todo um tesouro de conhecimento está armazenado em você. Em vez de sofrer por não saber de algo, pense no que você pode fazer e compartilhe com outras pessoas. Isso não apenas os enriquecerá, mas também fortalecerá sua compreensão do conhecimento que você possui.
Treinamento de taco de hóquei
Quando você começa a codificar, as coisas são proibitivamente complicadas. Conforme as habilidades aumentam, fica mais fácil. E, no final, você para de pensar no código e começa a pensar no problema que está sendo resolvido. É como dirigir: depois de certa prática, você já pedala inconscientemente. Alguém chama esse estado de fluxo .
Mas isso leva tempo . Não há nada de errado se, mesmo após anos de esforço, você não tiver entrado no estado de fluxo. Cada nova porção de conhecimento traz você um passo mais perto dele. Cada vez que você ouve um novo recurso de linguagem enorme ou documentação pesada (ou apenas aprende o jargão do grok e do grep ), você fica um pouco mais perto do fluxo. Mas, na realidade, a curva de aprendizado é mais parecida com um taco de hóquei.

Quando você vai no meio do caminho, você cai em uma armadilha.
Ser desenvolvedor não significa subir ao topo do conhecimento. Isso significa subir até o topo, curtir um pouco a vista e, então, começar a escalar até o próximo cume.
É perfeitamente normal sentir que tem muito a aprender. Todo mundo tem esse sentimento . Para a maioria dos desenvolvedores, esse sentimento não vai embora. Aqui está uma das minhas citações favoritas de John Archibald Wheeler:
À medida que nossa ilha de conhecimento cresce, também crescem as margens de nossa ignorância.
Quanto mais aprendemos, mais entendemos o quanto mais precisa ser aprendido.
Mentalidade de crescimento
Em seu excelente livro, Mindset , Carol Dweck explica por que as pessoas adotam uma de duas maneiras de pensar à medida que aprendem.
A primeira imagem é fixa : uma pessoa acredita que suas habilidades ou conhecimentos nesta área são inatos e imutáveis. Não é que eles não estejam melhorando - eles estão melhorando - mas a pessoa está confiante de que suas habilidades são limitadas. E sua produtividade exemplifica sua maneira de pensar. O problema com essa forma de pensar se manifesta em situações difíceis: as pessoas tentam evitar as dificuldades porque podem ameaçar sua autoimagem.
A segunda maneira de pensar é a mentalidade para o crescimento. Isso implica que a observação é uma habilidade que pode ser desenvolvida. As dificuldades são percebidas como uma oportunidade de aprender coisas novas. A inteligência não é estática, é móvel e mutável.
Pessoas com uma mentalidade construtiva quase sempre superam as pessoas com uma mentalidade fixa ao longo do tempo. Sim, existem exceções. Mas se você olhar a situação como um todo, a tenacidade geralmente prevalece sobre o talento.
Não há vergonha em ter uma mentalidade fixa. Cada um de nós adere a um desses tipos de pensamento em relação a diferentes situações e fenômenos. Mas a principal conclusão da pesquisa de Dweck é que é fácil alternar entre os dois.
O truque é reformatar sua atitude em relação a um tópico. O desenvolvimento de software é uma habilidade, não uma habilidade inata. É preciso paciência e prática para aprender.
Portanto, da próxima vez que você pensar em uma tarefa difícil, tente vê-la como uma oportunidade de melhoria.
Qual é o ponto?
O que tudo isso significa? Que você é um desenvolvedor . Bem-vindo à comunidade de desenvolvedores.
Pare de avaliar sua posição, você não precisa. Os sentimentos típicos da síndrome do impostor são apenas percepções. Seja paciente com seus estudos. Mude sua maneira de pensar. Esse processo leva tempo e todos estamos aprendendo.
E o mais importante: vá em frente e escreva o código .