Qualquer um pode programar?

Desde o TK 85, mais de 30 anos atrás, programar é o amor da minha vida e o ato ao qual me dedico inteiramente (das formas mais variadas). O ato de projetar e construir software é na minha opinião o nosso ápice intelectual. Talvez você nunca tenha se dado conta, mas quando está programando na realidade o vislumbre de boa parte da história da filosofia é realizado diante dos seus olhos.

Então, se programar é tão importante pra mim por que será que quando escuto o papo de que "qualquer um pode programar" me sinto tão incomodado? Se considero o nosso ápice cultural, não seria contraditório este meu sentimento, visto que quanto mais gente programando, melhor?

Primeiro me incomoda por que geralmente escuto esta história de quem está vendendo cursos/treinamentos ou mesmo de um mercado que está sedento por profissionais que possam se dedicar ao ofício (e que preferencialmente sejam baratos). Se programar é para todos, por que o mercado sente tanta falta de mão de obra? Não deveria existir muita gente programando hoje?

Já te adianto minha conclusão: qualquer um pode aprender a programar, mas muito poucos devem ou conseguirão de fato se profissionalizar.

Primeiro: programar é (muito) difícil

Quando digo programar não estou me referindo à configuração do seu DVD player ou a cozinhar: falo a respeito da criação de software (binário, que vai executar em um computador). É algo muito complexo e quem te diz o contrário está mentindo para lhe vender alguma coisa ou não faz a menor ideia a respeito do que fala.

Você precisa conhecer lógica de programação, algoritmos,  é bom saber como um computador funciona, o que é uma linguagem de programação, o que ela faz, como você a usa, e, indo além: também precisa ter ciência de que a época na qual precisávamos de apenas uma linguagem para escrever nossos sistemas acabou já faz mais de uma década (os tempos do VB6, Clipper, Delphi, PowerBuilder...).

(e não, você não vai escrever seus sistemas apenas com JavaScritpt também)

Precisa saber como seu software irá interagir com outros sistemas, tais como SGBDs, servidores, sistema operacional, rede, arquivos, memória. Precisa entender que são diversas abstrações, umas sobre as outras e que seu ferramental é enorme (o que é lindo): inúmeros frameworks, bibliotecas, ambientes de desenvolvimento e execução, paradigmas de desenvolvimento...

A coisa não acaba no seu primeiro "hello world" ou seu sisteminha web meia boca. Não: você precisa estar sempre melhor. Nem digo conhecer as últimas tecnologias, mas sim se aprimorar tecnicamente a cada dia. Tem que olhar pro seu código anterior e o achar um verdadeiro lixo perto do que está escrevendo agora.

Detalhe: tem de escrever código que possa ser mantido por outras pessoas também e talvez por um longo período de tempo.

(sempre fico maravilhado quando penso na complexidade envolvida ao implementar qualquer bobagem)

E esta é a parte fácil da coisa: o difícil é ter proatividade educacional, ou seja, realmente se interessar por isto. Ler, ir a eventos, se atualizar, ter pelo menos um super herói (tenho vários) na área, aprender coisas novas semanalmente (quiçá diariamente).

Vai por mim: a animação após ter conseguido escrever o primeiro programa dura muito pouco se este ânimo contínuo de querer sempre saber mais a respeito do ofício não durar. Sabe como chamo esta animação inicial? "ilusão de poder". Especialmente se você estiver empregado na área.

Você realmente acredita que pode realizar muitas coisas após ter escrito o seu primeiro programa, mas se não tiver proatividade no seu aprendizado, acredite, vai dar com a cara na parede muito rápido e uma vida de frustração será iniciada.

Então o papo de que "qualquer um pode programar" baseado na ilusão de que é fácil está desmontado neste primeiro ponto, sigamos ao próximo.

Segundo: a responsabilidade envolvida

Você se sentiria seguro sabendo que qualquer um pode operar a sua mãe? Se sentiria bem sabendo que qualquer um projetou o viaduto sobre o qual seu carro está passando neste momento? Então por que qualquer um pode programar os sistemas que você precisa?

Por que não dizem por aí que qualquer um pode ser médico ou engenheiro, mas programador sim? Por que há um mercado que precisa de pessoas que saibam programar, independente do quão bem saibam (que sejam baratas) e que não se responsabiliza pela qualidade do que entrega (ainda). E também há outro mercado que vende cursos que precisa de novos alunos sempre, especialmente hoje, uma época na qual programar não tem mais o mesmo charme que tinha antes (muito poucos programadores milionários, né?).

E agora te faço uma pergunta direta: se você não está preparado e entregou seu primeiro sistema, você realmente dorme bem? Ok, qualquer um pode programar e você entrou na categoria "qualquer um", pergunto: você deveria estar programando profissionalmente?

Terceiro: o custo

"Programar é maravilhoso, por que você pode criar um imenso valor a partir de quase nada". Já escutei isto algumas vezes e minha resposta é a seguinte: "vai à merda amiguinho".

O que chamam de "quase nada" na realidade são anos de estudo dedicados ao ofício: incontáveis horas de bunda na cadeira, páginas lidas, resumos, exercícios realizados, experimentos, participação em eventos e comunidades... É ter errado inúmeras vezes e conseguido se reerguer e ainda sair melhor ao fim de cada experiência. Isto é "quase nada" pra você?

E aqui pergunto: você estaria disposto a pagar este preço que mencionei acima? Aprender a programar não sai barato. Pode até existir materiais de baixo custo, mas o tempo que você irá investir no aprendizado não tem preço (e se você for casado, tiver filhos ou ter um emprego não relacionado à área, sabe muito bem do que estou falando).

Quarto: programar não é apenas difícil, está ficando mais difícil também

Mencionei no início deste post que houve uma era na qual era possível escrever sistemas usando uma única linguagem: Clipper, VB, Delphi, PowerBuilder, C/C++, etc. Conheço excelentes programadores do passado que aprenderam tudo o que precisavam em um único livro ou arquivo de ajuda da linguagem (também pelo fato de não terem tanto acesso à informação quanto hoje), será que isto se aplicaria hoje?

E se programar estivesse realmente ficando mais fácil com o tempo, já não deveria ter surgido tecnologias realmente eficientes que gerassem código pra nós? Por que programadores ainda existem? Cadê a bala de prata? Surgiram ferramentas que tornaram parte do desenvolvimento mais fácil (pense em Ruby on Rails, Grails, Node.js), mas o problema principal, que é justamente resolver problemas, continua complexo e possivelmente bem mais por que o próprio mundo ficou mais complexo.

(e sabe estas ferramentas que citei? São normalmente abstrações sobre algo muito mais complexo por baixo dos panos, e o conhecimento sobre este "algo muito mais complexo" normalmente diferencia as crianças dos adultos)

Faça uma experiência: chame um programador de décadas atrás para programar hoje e lhe pergunte o que acha. Talvez ele prefira o ferramental de hoje, mas o restante, duvido muito.

Então quer dizer que só uma elite deveria programar?

Tal como disse no início deste post, pra mim programar é um dos (talvez O) maiores exercícios intelectuais que a humanidade já construiu. Acredito que programar te torna uma pessoa melhor por causa de toda a complexidade envolvida na coisa, talvez te torne inclusive mais inteligente.

Como hobby recomendo a todos, inclusive para crianças (fui uma destas crianças nos anos 80 introduzidas à programação). Talvez este hobby inclusive sirva para que você cheque se realmente este é o caminho que deseja trilhar como ofício para sua vida.

Agora, profissionalmente, sabendo dos riscos, da responsabilidade e da dificuldade envolvida, creio que infelizmente minha visão é bem menos democrática. Sim, é para a elite que consegue superar os desafios que mencionei e ainda por cima continuar gostando da coisa e se aprimorando a cada dia.

Não me vejo fazendo outra coisa na vida e sou extremamente feliz por ter escolhido este caminho. Foi um dos meus maiores acertos sem sombra de dúvidas e mesmo hoje, mais de 20 anos depois ainda amo cada dia e cada linha que escrevo.

Me desculpe se joguei um balde de água fria sobre seus sonhos, mas é importante que alguém lhe diga das dificuldades envolvidas (especialmente neste mundo em que vivemos  com cada vez mais fábricas de doces).

(por mais estranho que pareça creio que as dificuldades tornam tudo mais interessante)

E sobre aqueles que dizem que "qualquer um pode programar", bom: vocês estão desvalorizando o ofício, simples assim.

26