Programar é fácil, desenvolver não

Quando entrei para a faculdade, achava legal quando escrevia um código e mostrava para meus amigos e eles diziam “não entendi nada”. Achava foda escrever algo que algumas pessoas não conseguiam entender de primeira. Bom, o tempo passou, muita experiência ganhei e com o tempo aprendi que escrever código que pessoas não conseguem entender quer dizer que você escreveu uma merda de código. Existe aquela famosa frase, que todo mundo conhece:

Escrever códigos legíveis para humanos é difícil.

Pense, pense de novo… depois escreva

A parte mais importante em uma rotina bem escrita não é o código que você escreve. A solução para o problema é mais importante do que todo o resto. A solução é a ideia por trás do código, ela está muito além de métodos, classes e ifs. A solução é a base do seu código, é o motivo pelo qual você está escrevendo uma classe, um método.

Desenvolver uma solução poucos conseguem, programar uma solução quase todo mundo consegue. Para desenvolver uma solução, você precisa se envolver com ela, entender, imaginar e tentar viver aquilo. Para programar, você só precisa saber escrever um código que implemente o mínimo esperado para o problema.

Refatorar a solução é difícil

Refatorar uma solução é muito difícil. Não se trata apenas de uma classe mal escrita, ou de um “if” que poderia não existir. É um ecossistema que interage em torno de uma ideia errada. Gaste o seu tempo criando sua solução, ela é que vai fazer o seu software ter uma vida útil longa. Ela vai ser a base para evoluir seu sistema. Ela é a melhor refatoração que você pode fazer.

Se importe

Se você não se envolver com o problema, não vai conseguir criar a melhor solução. Se envolver com o que está ao redor do seu código é importante. Você já deve ter desenvolvido muitas coisas que não tem ideia de como aquilo é usado, ou pra que serve. Seguindo nessa ideia, você acha mesmo que desenvolveu uma solução? Acho que simplesmente criou código, apenas isso.

Desenvolver != Programar

Desenvolver a solução transcende o “fazer funcionar”, também não tem nada a ver com o “foi isso que pediram”. Desenvolver uma solução é imaginar, criar, testar, pensar na manutenção.

As empresas buscam cada vez mais profissionais completos. Não querem apenas um programador “Python”, elas querem um profissional que consiga ser autodidata, que tenha capacidade de aprender e resolver problemas. O desenvolvedor consegue desenvolver soluções, pensar, usar algo novo, que não conheça. O programador vai tentar programar tudo com a sua velha linhagem de “guerra”. Não seja um profissional que é denominado apenas por uma atividade ou linguagem, tente ser mais que isso. Tente ser o cara que consegue pensar mais do que digitar.

Finalizando

Não quero ser o chato que está te falando pra você chamar todo mundo de desenvolvedor a partir de agora, só quero que você reflita mais em como desenvolver as coisas. A palavra desenvolver está mais próxima do pensar, ser inteligente. Já a palavra programar parece algo que executa uma rotina sem muito senso de inteligência.

Tente pensar mais do que escrever, tente desenvolver bem suas features e entregar um valor real ao seu software, e não “apenas” uma rotina nova.