segunda-feira, 13 de maio de 2013

Ter um filho, escrever um livro e...


Plantar uma árvore! Há um ditado popular que diz que para ter uma vida realizada basta "ter um filho, escrever um livro e plantar uma árvore". Não necessariamente nesta ordem, já que o que importa é o conjunto da obra. Filhos já tenho dois, e finalmente escrevi o primeiro livro. A árvore ficará para depois...

Confesso que achei que seria mais fácil. Escrevi o livro a convite do EAD do CESUMAR para a disciplina de Banco de Dados. Banco de Dados não é exatamente a minha área de atuação, mas é algo com que inevitavelmente acabo trabalhando no cotidiano.

Inúmeras horas de esforço, muitas noites dormindo muito pouco e várias palavras depois surgiu o resultado. A quem teve a oportunidade de lê-lo, espero que tenha sido proveitoso. Sempre fica a sensação e o desejo de ter feito um trabalho melhor. Infelizmente a pressão do tempo me obrigou a termina-lo, mas ainda bem que foi assim: caso contrário nunca teria fim.

Este foi um livro que os meus compromissos profissionais me obrigaram a produzir; mas com esta experiência espero poder ainda este ano ao menos iniciar um outro projeto: escrever um livro por puro prazer. Aos poucos venho desvencilhando-me de várias outras atividades para tentar fazer algo que há anos está no meu desejo. Espero que consiga. Quem sabe daqui a um ano posso ter algo melhor pra compartilhar com vocês.

terça-feira, 7 de maio de 2013

Eu não acredito (mais) em super heróis...


Há cerca de 3 anos tenho passado pelo momento profissional mais delicado da vida até então. Muita coisa aconteceu, muitas reflexões se passaram e agora que a trajetória volta a se tornar uma ascendente posso compartilhar um pouco das duras experiências que tive.

Durante muito tempo acreditei que para ter sucesso em algo bastava ser muito bom naquilo. O sucesso seria consequência. Entretanto, ser bom naquilo que faz pode te ajudar muito sim, mas de nada vai lhe adiantar se ninguém souber disso. Descobri que tão importante quanto ser bom é permitir que os outros saibam o quão bom você é. Não que eu o seja, mas como diz o ditado, "galinha que não põe ovo vai pra panela". O importante é cacarejar. Mesmo que o seu ovo não seja lá essas coisas...

Senti também que o meu idealismo sobre software livre, métodos ágeis, código bem feito, artesanato de software etc poderiam transformar o mundo. E, tolo ou não, continuo acreditando nisso. Mas descobri que sou humano, e para atender minhas necessidades mundanas preciso de algo chamado dinheiro. Percebi que enquanto eu não tiver dinheiro suficiente para sustentar o meu mundo, não conseguirei mudar o mundo de ninguém.

Sinto-me também um perfeccionista. Mas ser perfeccionista é muito diferente de ser perfeito. E dói muito descobrir pela experiência que quanto mais vivo, menos "perfeito" eu me torno. Também não que um dia eu o tenha sido, mas perceber que a distância entre você e o seu ideal aumenta não é algo agradável. Acredito também que não tenha me tornado pior: só a visão da realidade é que se tornou menos embaçada.

Durante um bom tempo também me senti um hipócrita. Por conveniência, falta de dinheiro ou de tempo muitas vezes disse SIM quando deveria ter dito NÃO. E continuo afirmando que dizer NÃO é bom, pois as vezes em que o fiz valeram a pena. Também prometi prazos que não pude cumprir, criei código do qual não me orgulho, atualizei sistemas sem os devidos testes... E sofri as consequências de cada uma destas atitudes. Já me auto-flagelei e sofri o suficiente com isso. Hoje não mais.

Hoje não acredito (mais) em super heróis. Hoje ainda tenho as pessoas que admiro, mas não acho que alguém possa ser um "super herói". Pelo menos não o tempo todo. Hoje creio que todos, por melhor que sejam, precisam de um "alter-ego" humano. E como todo humano, erram. Eu, particularmente, erro demais. Novamente não que possa ser herói de qualquer coisa, apenas tenho minhas convicções e ideais. Nestes, continuo acreditando. E os continuarei defendendo e divulgando. E errando muito mais.

Aprendi que a vida não é decidida entre o certo e o errado. E que ninguém pode estar "certo" o tempo todo. Se vocês acreditam que fazendo software melhor, estarão participando de um mundo melhor, parabéns. Vocês já estão na jornada do artesão de software. E mais do que dar os passos certos, o importante é estar no rumo certo. E se vocês fraquejarem e errarem pelo caminho, não se sintam mal. Vocês não estarão errando sozinhos..

Boa jornada! Mas tenham dinheiro pelo menos para as passagens, caso contrário não chegarão a lugar algum...

sábado, 4 de maio de 2013

Não, o problema não é a linguagem. O problema é você.

Sim, o problema é você.
Nos últimos meses tenho lido e presenciado um volume considerável de programadores reclamando das linguagens de programação com que trabalham. Acho justo, já que como disse Bjarne Stroustrup, existem somente dois tipos de linguagens de programação: aquelas das quais as pessoas reclamam, e aquelas que ninguém usa. ("There are only two kinds of languages: the ones people complain about and the ones nobody uses").

Mas darei nome aos bois: tem muito programador Java por aí querendo migrar para linguagens como Ruby ou Scala só porque em Java "é muito difícil fazer isso ou fazer aquilo". Nada contra migrar de linguagem. Eu até gosto de estimular a diversidade, pois considero que na jornada para se tornar um artesão de software é necessária essa ecleticidade de conhecimento. O problema é o motivo.

Ruby (ou Scala, ou coloque sua linguagem favorita aqui) tem closures. Java não tem (ainda, diga-se de passagem). Ou qualquer outro motivo parecido. Daí eu pergunto: você realmente sabe o que é uma closure? Sabe usar e pra que serve? E estas perguntas valem também pra qualquer motivo.

É uma questão de bagagem. Ao invés de tentar procurar uma linguagem melhor, o verdadeiro objetivo é como conseguir ser um programador melhor. Perdoem-me, mas muitos dos quais ouvi essas coisas programam mal. Muito mal. E não é "achismo". É a experiência de ter programado junto. Outra parte não posso afirmar que programa mal, pois não tenho esta experiência. Mas onde há fumaça...

Escolha uma linguagem e fique com ela. Até ficar bom. Não importa qual. Quão bom? Bom o suficiente pra perceber suas limitações em saber o que realmente está fazendo. Afinal de contas, pense como empregador: você prefere alguém que é ruim em várias linguagens ou alguém que é no mínimo "meia-boca" numa única? Vale uma reflexão, mesmo que seja pequena...

Pois no final de tudo uma linguagem de programação é apenas uma ferramenta que lhe permite expressar suas ideias. Se você não possui ideias (ou possui ideias ruins) e não sabe expressá-las corretamente, qualquer linguagem serve: Algol, Fortran, Cobol, C, Java, C#, Ruby, Scala ou Clojure. Você não vai conseguir usar nenhuma mesmo...