Ps.: Se você não entender a brincadeira do texto, vou deixar claro que: O objetivo do texto é promover a reflexão dos programadores para sair de suas zonas de conforto e estudar e adquirir conhecimentos complementares a suas atividades e não apenas ser um “pedreiro digital” que executa ordens.

É, amigo, se você achava que ser programador é ser um semideus e criar projetos absurdamente complexos em grandes empresas fodonas de tech, saiba que essa é a realidade de menos de 1% dos devs do mundo, em sua grande maioria os programadores são apenas “pedreiros digitais”.

Seja mais do que apenas um garoto que escreve programa

Existe uma linha de corte no mercado onde são separados os meninos dos homens. Simplesmente saber escrever códigos não te torna especial, dá para ensinar programação para crianças e animais. Saber mais de uma linguagem só te torna um pedreiro eficiente, você pode até ganhar um pouco mais de dinheiro, pois vai conhecer diversas formas de “subir paredes” mais rápido e vai trabalhar em várias empreitadas ao mesmo tempo, já que tem uma facilidade especial de trabalhar remoto. De fato, acho que esse é o único fator em que os programadores realmente se diferem dos pedreiros, “bater massa” precisa de presença física, fazer um “for”, não.

Está achando estranha essa comparação? Procure em grandes empresas os cargos em aberto e você vai ser que todos os cargos de gestão (ou alguma função muito específica) vão ter salários exponencialmente maiores do que dos programadores. E isso tem um motivo bem específico: programadores não entendem (e não se importam em entender) sobre o negócio, somente dos processos do código que estão escrevendo, apenas cospem linhas intermináveis com padrões bonitos e realizam testes automatizados, na esperança de que seu pull request seja aceito por uma equipe de QA.

Contextualizando

Nos anos 2000, quando trabalhei em empresas de terceiros, a minha função e de vários outros era receber uma documentação contendo casos de uso e transformar todos os processos num sistema que automatizasse a vida de uma determinada demanda. Por exemplo: precisamos de um sistema para organizar e acompanhar processos judiciais, criando relatórios de andamento dos processos, controle de agenda dos advogados e ferramentas que possam auxiliar na redação de peças judiciais, realizando buscas automáticas de jurisprudências e doutrinas na internet referentes a um tema específico do processo, utilizando Inteligência artificial para classificar os melhores materiais de complemento. Certeza absoluta que 99.9% dos programadores que tentarem fazer o código do exemplo não vão fazer a mínima ideia nem de por onde começar, mas vão optar pelo uso de Python por que tem o nome “inteligência artificial” no briefing, depois vão definir que vão usar TDD e Solid, com o framework x, linguagem y.

Resumindo, eles vão escolher o tipo de argamassa, a marca da enxada, chamar o irmão para ajudar na obra, para criar um prédio que ele não tem nem ideia de como vai ser o formato. No final vai sair alguma coisa próxima de um dos prédios do Niemeyer, sem muita função, em um formato esquisito, que só artista entende.

A melhoria do cocô

Não satisfeito, vem a brilhante ideia de se tornar cada vez mais técnico, com conhecimento e certificações em diversas linguagens. Adoro da frase do Waldez Ludwig “Quando se põe a qualidade antes da estratégia, acaba fazendo-se ‘a melhoria do cocô‘”. Saber mais de uma linguagem não te qualifica para fazer sistemas melhores, assim como tempo de serviço não faz do pedreiro um engenheiro civil.

Você precisa sair da caixa e adquirir conhecimento complementares, se aprofundar no microuniverso da sua empresa, saber um pouco de financeiro, contabilidade e, por que não, jurídico? Vai doer a cabeça? Empreendedorismo, liderança, trabalhar em equipe, participar de palestras, eventos que não sejam somente os de programação, aprender a lidar com gente, por pior que possa ser. Sem isso você nunca vai deixar de ser um pedreiro digital, por mais bem remunerado que possa ser.

Não seja um jacaré ou ninja

Com o tempo o ego do programador vai crescendo, a ponto de se achar capaz de tomar decisões e ser o guru da sabedoria de como as coisas precisam ser feitas. Não é só por que leu 500 páginas do livro azul de SOLID e assistiu às palestras do Uncle Bob, que você é capacitado para tomar decisões, me desculpe mas sua função é subir a porra do muro calado. A realidade não é o que você acha e sim como deve ser. Se não fosse assim, você estaria na cadeira de CEO da empresa mas, como não esta, volte pra Terra e entenda a limitação da sua visão das coisas, pare com essa arrogância medíocre pois o máximo que vai conseguir será uma demissão.

O que mais vejo por ai são programadores jacaré: tem a boca grande para cuspir um monte de verdade de como a vida funciona e o braço curto pra entregar resultados consistentes. Essa galera dá um puta prejuízo para as empresas por que gostam de fazer discursos longos de como suas técnicas são as melhores, que seu guru, Eric Evans, falou x e y, mas na hora de produzir códigos razoáveis passam bem longe, não é mesmo?

O outro tipo também velho conhecido, o tão famoso programador ninja é adorado pelos RH’s por ai. Então, pessoal, o ninja é aquele que, quando o circo está pegando fogo, joga uma bomba de fumaça e some. Conhece alguém assim? O sistema cai na sexta-feira às 17h59, ele pega as coisas e vai embora por que tem um chopp marcado com os amigos. Desliga o celular no final de semana e acha um absurdo o chefe ligar, quem nunca, né?

Responsabilidade e consistência

Mais importante do que conhecimentos técnicos ou até mesmo de liderança, negócios, etc., existem os cargos de confiança. Um cargo de diretoria, como um Diretor de Tecnologia, exige um nível de responsabilidade, comprometimento e dedicação que muitas vezes é melhor deixa a empresa sem ninguém no cargo do que arriscar ter alguém sem a capacidade de ocupá-lo. Eu já fui CTO algumas vezes e já tive alguns CTOs em minhas empresas e deve ser de longe um dos cargos mais difíceis de preencher, fora que tem muito CTO que não deveria ter esse título.

Hoje eu respeito muito mais consistência e disponibilidade do que qualidades técnicas. Existem dezenas de programadores geniais, altamente inteligentes, rápidos, que nunca deixaram de ser programadores por que negligenciaram todo o resto. E normalmente, quanto melhor o cara é, mais instável e imprevisível. Eu não me considero genial como alguns programadores que conheço, mas tenho qualidades que poucos tem como resiliência, consistência e responsabilidade fora da média, motivos pelos quais considero ter tido mais sucesso do que a maioria.