Todo programador é um filósofo em potencial

Caloni, 2008-09-12 essays philosophy blog

Tivemos uma conversa muito frutífera hoje durante o almoço ao conhecer uma professora que sentava ao nosso lado, exímia conhecedora da mente humana e amante das artes nobres como a filosofia e a lógica. O importante dessa colóquio foi ter encontrado um motivo muito mais forte para gostar de programação do que qualquer outro que já me surgira na cabeça desde que mexo com essas coisas: O computador não deve dar ordens ao homem e este repeti-las como uma máquina. O homem, como ser pensante, deve dizer ao computador o que fazer, e este responder-lhe diligentemente.

Para resumir desde o começo essa conclusão, um exemplo paupável: quando fazemos um curso de treinamento, uma especialização, uma faculdadeZINHA ou qualquer outro evento de "aprendizado" que nos propõe a digitar comandos sem fim, repetidamente para um computador, para no final ganharmos um comprovante de que sabemos digitar aqueles comandos decorados e repetitivos como ninguém, isso quer dizer que as coisas vão mal, se e quando tudo se resume a isso.

Por outro lado, ao aprendermos, por nós mesmos ou pelos outros, a usar o computador como a ferramenta que vai fazer de nossas idéias realidade, e nossas criações se materializam de uma forma inimitável, então, somos criadores e comandantes da máquina, e não uma cópia de uma máquina que repete comandos. Então, nesse caso, temos um motivo para viver: criar sempre coisas novas e interessantes que surgem em nossas cabeças.

E ser feliz é isso: achar significado para o que fazemos. É criar. Pura e simplesmente. Quem está sempre criando está sempre satisfeito com sua vida. Pois dá sentido a ela todo santo dia. Isso vale para qualquer profissão interessante o suficiente. Não precisa fazer código. Pode construir móveis, ensinar pessoas ou desenhar uma nova peça de roupa.

Criar é pensar. Programadores pensam em coisas novas todos os dias e as executam. Quando encontram algo repetitivo, organizam o código para não terem que repetir mais a mesma baboseira e voltam a fazer coisas interessantes e originais. Se existe um processo enfadonho e chato, o programador inventa um jeito para o computador fazê-lo, e não ele. E a vida do programador sempre gira em torno desse ciclo: dispensa as coisas chatas mandando o computador fazer e se dedica a fazer coisas novas.

A discussão não parou por aí, pois me levou a entender o vazio que eu sinto ao estudar coisas que não uso nunca. Porque aprender por aprender não vai me levar a lugar algum. Pode até ser perigoso ler livros longos, ricos em detalhes e que fazem perder o fio da meada ao terminá-lo. Faz parecer inútil.

Também me mostra que mais vale a pena aprender a pensar, ou pensar melhor, do que aprender uma nova tecnologia em um livro recém-lançado de 1500 páginas. Quando aprendemos a pensar resolvemos os problemas por nós mesmos, e não por uma formulazinha mágica tirada do saite favorito de bricabraques.

Ser programador é criar. Criar é bom. Criar nos faz felizes.

E é por isso, realmente, que amo o que eu faço.

// Comments

2008-09-14 A. F.:

Caloni,

Como saber que nunca usaremos algo? ;-)

Realmente temos que estudar aquilo que nos dá prazer, aquilo que nos satisfaz mas sem nos preocupar se iremos utilizar ou não, pois o futuro é uma nebulosa e por mais previsível que ele pareça não custa estar preparado para o imprevisível. Porém não podemos forçar a utilização do novo aos nossos clientes e empregadores a serem early adopters. Devemos ter o foco na melhor solução, o que nem sempre significa utilizar a mais nova tecnologia, mas quando o novo é adequado ter a noção de como empregá-la é sensacional.

Concordo que ser programador é ser criador ou como o Sílvio Meira afirma - num mundo onde cada vez mais convivemos com mais dispositivos programáveis - esta é a profissão da nova era, a era da infosfera. Por isto mesmo que o programador não deve prender-se a um universo limitado, eventualmente ele deve transcender aos meta e multiversos. E estudar assuntos que a princípio pareçam exotéricos - como Erlang, OCAML, DSL, Haskell, HLA, C-INTERCAL, whatever - podem ser muito úteis seja para a compreensão ou para inspirar a inovação. Ser especialista é excelente, mas transcender o trivial também.

Já previa Seth Lloyd (que afirma que o mundo não é feito de átomos mas de q-bits) que o homem ainda programaria o computador quântico universal, mas ainda estamos longe disto, porém já começamos a fazer nossas primeiras experiências de programação do computadores orgânicos que nos cercam. Portanto ser programador é o grande barato do momento e do futuro, mas esta é uma atividade para os vocacionados assim como todas as outras.

Realmente os livros simples, curtos e claros são os melhores! Principalmente para um primeiro contato, mas você há de convir que certos assuntos podem tranquilamente transcender as 1.000 páginas...

E por fim discordo que todo programador é um filósofo em potencial, pois muitos são operários de códificação, construtores de código limitados tão enquadrados em seu universo exato que podem ser facilmente substituídos por geradores de código, ou não. Mas concordo que todo programador deve ser um filósofo em potencial. Assim como todo programador merece o seu hackerspace e não uma baia apertada em uma fábrica de software, como já dizia Paul Graham.

Meus parabéns por esta abordagem diferenciada neste post, aprecio seu estilo e este post foi uma grata surpresa.

[ ]s

A.F.


2008-09-12 Anderon Carubelli:

Perfeito Caloni!

vc soube explicar de forma unica o por que gostamos de programar

parabens pelo post!

[]´s

Anderson


2008-09-12 Michel:

Realmente ser programador é pensar todos os dias uma forma de deixar as coisas mais simples.

Parabéns pela explicação!


2008-09-12 Caloni:

Obrigado pelos elogios, colegas. Essa é uma coisa difícil de explicar, e tenho certeza que cada um tem o seu conto pra contar =)

[]s


2008-09-15 Caloni:

Olá, Alberto.

Como sempre, enriquecendo meus artigos com seus pensamentos instigantes e provocativos =)

E é exatamente sobre isso que eu estava falando.

Assim como você, com certeza outros programadores devem ter opiniões diversas sobre esse tema, e é esse questionamento que me faz acreditar na filosofia como um grande forte de nossa "raça".

Exatamente como eu disse, somos filósofos "em potencial". Não quer dizer que todos nós temos essa liberdade ou pré-disposição em nossos ambientes de trabalho, mas quer dizer que temos a chance de enxergar as coisas de outra maneira.

E a propósito da discussão livros pequenos x livros gigantes, posso afirmar que foi de fato uma opinião pessoal, discutível e argumentável. Cada um tem suas capacidades, e garanto que a minha não é leitura dinâmica. Não pretendo gastar boa parte da minha vida lendo temas técnicos que "quem sabe irei usar", pois sinto a necessidade de ler sobre outras coisas, inclusive ficção.

[]s e obrigado pelo enriquecimento do assunto.

[reuna_seus_comandos_mais_usados_no_windbg_com_cmdtree] [bug_no_retorno_do_pathisdirectory]