AkitaOnRails, Retrospectiva 1985-2007

2007 August 12, 02:02 h - tags: biography off-topic insights

Alguns leitores comentaram que eu deveria fazer uma “auto-entrevista”. Realmente, falar de mim mesmo é estranho. Mas, pensando melhor, falsa-humildade nunca foi meu forte. Mas em vez de uma entrevista resolvi fazer uma retrospectiva. Nem de longe é uma biografia completa, claro, mas são alguns pontos-chave dos meus últimos 22 anos (antes disso eu ainda não sabia ler direito :-)

Provavelmente será nostálgico para alguns, o que é sempre bom. E para os mais novos talvez sirva para mostrar que um currículo não se faz apenas com certificados. Experiência depende de tempo, muito tempo. Mas quantidade de tempo não é sinônimo de qualidade. Tudo depende de incorporar o que você realmente quer com o que você realmente gosta. Isso não é para todos, é verdade. Mas se você tem esse instinto, já sabe do que estou falando. E o caminho é longo e sem fim, portanto jamais poderá dizer “já sei tudo que preciso”. Você nunca saberá tudo que precisa. Aprender é um processo diário, hora após hora. Um pouco durante o trabalho e muito mais fora do trabalho.

Quem sabe o que está fazendo, não está nem aí para o que os outros dizem, ou para o que os outros fazem. Você apenas faz o que sabe (não o que “acha”) que é o melhor caminho. Certo e errado é cara e coroa, você normalmente estará certo 50% das vezes, assim como todos os outros. Determina-se o que é o “caminho certo” analisando os fatos que você sabe. Se aprender algo novo: refaça a análise e revise seu caminho. Dogmas são inúteis. Mantenha-se racional e disciplinado e aumente suas chances. Nunca feche suas próprias portas, seja seletivo no que for aprender, mas não descarte opções por preconceitos não-factíveis.

Faça o que goste. É um chavão, eu sei, mas é a única coisa que funciona. Meu currículo não começou no meu primeiro trabalho. Eu dediquei toda minha vida, desde que me lembro por gente. Nunca tive segundas opções. Você não precisa ser assim e nem isso significa que eu sei muito. Conheço muita gente mais nova, que começou a menos tempo e que já sabe muito mais do que eu. Outro dia disse a um amigo: “somos todos alvos móveis”. A elegância desse conceito é que se você tem um ídolo é porque ele é algo que você gostaria de ser. Você corre nessa direção. Quando chegar ao nível que queria, seu ídolo provavelmente também correu algumas mil léguas a mais. E lá vai você correr atrás novamente.

Novamente: não existe receita. Não existe guia passo-a-passo. Nem todos podem ser pintores, nem todos podem ser estilistas, nem todos podem ser jornalistas. Eu definitivamente não sou bom cozinheiro, dificilmente serei um bom marceneiro, com certeza não serei músico. Ninguém deveria procurar uma ocupação apenas pelo que tecnicamente paga-se melhor hoje. E amanhã?

Em 1985 fui inspirado pela primeira vez através de uma revista em quadrinhos. Uma edição especial da Disney chamado, se não me engano, A História dos Computadores (se alguém ainda tiver, com o encarte central, em bom estado, estou interessado em comprar!!). Guiado pelo Prof. Pardal e Prof. Ludovico, fui apresentado pela primeira vez a Charles Babbage, Blaise Pascal, Konrad Zuse e outros nomes que nunca esqueci. Me considero um “Arqueólogo da Computação” desde essa época. Já retornei ao assunto diversas vezes nos últimos anos, através de enciclopédias, livros, artigos. Nunca me canso de estudar as origens. Meu sonho de consumo da época era um Unitron (um clone nacional do Macintosh original, recém-lançado).

Em 1987 meu primo tinha um MSX Hotbit, queria brincar com os jogos dele. Aprendi um pouco de Basic para dar load nos jogos em cassete. Minha leitura preferida era a revista Micro Sistemas. Assembler ainda era inatingível para mim. Meu sonho de consumo era um CP-500 que um conhecido tinha. Tentei ler um livro de eletrônica, mas era demais para mim. Nunca fui bom em eletrônica. Ainda estava começando a entender o que significava “expandir RAM”. Haviam muitos micros legais nessa época. Hoje todos admiram os novos celulares nas vitrines. Na minha época eu ficava nas vitrines dos clones de Apple II, o MSX da Gradiente, o Sinclair, o TK-90X, o CP-400. Pena que eram caros demais para eu poder ter um. Só me restava ficar imaginando esses micros lendo as especificações técnicas.

Em 1988 fiz um curso de GW-Basic. Não tinha um computador mas aprendi a programar no papel. Também tive minha primeira apresentação a pérolas da época como Wordstar e Lotus 1-2-3. Acho que foi por essa época que comecei a me tornar viciado em videogames. Já tinha um Intellivision, mas finalmente ganhei um Master System!

Em 1989 ganhei meu primeiro PC-XT. Aprendi dBase III e Clipper Summer 87. Tinha dois tios que programavam desde a época do Autumn 86. Foi quando escrevi minha primeira apostila. Na realidade não foi bem um material original, eu copiava textos de livros e enciclopédias simplesmente porque gostava de treinar datilografia. Graças a isso hoje atinjo 400 tpm (toques por minuto) e também tenho várias dores estranhas nas mãos :-) Antes do XT, meu hobby era copiar textos de livro na boa e velha Olivetti. Com o teclado de computador, bem mais leves, meus dedos agradecem. Desde o ano anterior, mais ou menos, minha leitura favorita era a saudosa revista Micro Sistemas. Na época não havia muitas opções de qualidade.

Em 1990 fiz bicos com meu tio, que era analista de sistemas. Fiz vários sisteminhas em Clipper 5.0 e Fox Pro. Bons tempos da Ashton-Tate e Nantucket. Criei meu próprio editor de textos em Clipper, mas com certeza não fui páreo para o bom e velho Norton Editor aliado ao Sidekick. Naquela época haviam poucas opções de linguagens e tecnologias. Dava para gastar meses numa linguagem só, e infelizmente eu nunca me interessei muito por linguagens de baixo nível como Assembler e C. Li alguns livros mas nunca pratiquei. Grave erro.

Em 1991 comecei a brincar de BBS com meu vizinho. Fui apresentado aos poderes do Pascal, mas ainda só olhando de longe. Bons tempos de FidoNet, PCBoard, Remote Access, Warez, Blue box e afins. Muito antes da era do Orkut e MSN eu já gastava horas a fio apenas em message boards. Meu sonho de consumo da época era conseguir rodar o Windows 3.1 no meu XT com monitor CGA verde.

Em 1993 eu trabalhei como apresentador de jogos pela Brasoft Games durante as férias. Este ano foi interessante porque eu tive acesso aos “MPC”, como eram chamados os PC multimídia equipados com CD-ROM e placa de som. Essas coisas eram opcionais, e caros naquela época. Nunca vou me esquecer das pérolas da LucasArts como Day of the Tentacle. Nada a ver com programação, mas essas coisas foram importantes para melhorar meu senso de estética e possibilidades. Obras primas da época? Wolfenstein e Doom – os originais -, claro.

Em 1993 (talvez tenha sido 1992?) eu gostava de desenhar. Na realidade sempre brinquei de ilustrador até mais ou menos 1998, quando desisti completamente. Mas nesse ano eu queria fazer ilustrações para uma revista de games (já disse que eu era viciado em games?). Quando procurei o editor, levei meu portfolio mas ele me recomendou aprender a ilustrar por computador. Eu só tinha desenhos à mão livre. Voltei para casa e no mesmo dia fui comprar um livro de CorelDraw! 3.0. Lembro até hoje que era um calhamaço editado pela editora Berkeley. Algumas semanas depois voltei com um novo portfolio, todo em CorelDraw!. Fiz ilustrações mais meia dúzia de edições deles, escrevi um artigo e fiz algumas pequenas colaborações e depois desisti, não era minha vocação. Mas as noções de Bezier Curves e vetorização ainda viriam a ser úteis quando resolvi aprender Flash.

Em 1994 fiz minha única pausa dos meus hobbies e dos computadores. Ano de vestibular. Estudava pelo menos 8 horas por dia, 7 dias por semana. Estabeleci objetivos, planejei e passei. Eu nunca tive segunda opção. Portanto só me restava passar nas primeiras. Pelo menos USP e Unicamp eu tinha obrigação de passar. Foi a lição mais importantes desse ano: estabelecer objetivos, traçar planos e ater-se a cada passo, corrigindo o traçado durante o caminho, mas não parar.

Em 1995 entrei na USP. No primeiro semestre tive que entregar trabalhos em Turbo Pascal. Fiz meu primeiro framework, um toolkit gráfico para Pascal, além de alguns truques de fractais. Finalmente entendi a importância das últimas décadas da computação. Virei fã de Donald Knuth e Niklaus Wirth. Ganhei minha primeira conta e acesso a Internet, mas com um porém: só tinha acesso via terminal Unix. Tive que aprender Unix para usar a Internet. Gopher, Lynx, Pine, bons tempos. Também foi uma época em que lidei pela primeira vez com uma grande deficiência: meu péssimo inglês! Quando vi que alguns colegas da faculdade eram bons, decidi que não podia ficar para trás (e daí, o artigo Seja Arrogante!). Era uma época pré-Google: eu usava muito as primeiras versões do Yahoo!, WebCrawler, até a Amazon (era feinha). Este também foi o ano em que eu mais esperei por um software: Windows 95. Lia tudo a respeito, todos os artigos que poderia encontrar. Nunca destrinchei tanto um sistema operacional quanto o Windows 95, na realidade, desde o DOS 3.1 eu explorei muito cada canto, cada beco. Na época também estava muito empolgado com o novíssimo OS/2 Warp. E eram uns 20 disquetes de 3,5", se não me engano! Agora, rodar o Windows 3.1, virtualizado no OS/2 era incrível! É a mesma sensação de quando rodei o Windows XP pela primeira vez virtualizado no meu OS X. Por todos esses assuntos, foi quando finalmente me interessei por arquitetura de sistemas, evolução dos sistemas operacionais e assim por diante.

Em 1996 fiz um bico para um sisteminha que era para Windows 3.1 (eu sei, eu sei). Aprendi Delphi 1.0, que foi lançado um ano antes.. Me tornei fã de Turbo Pascal, e Object Pascal foi natural. Foi meu primeiro passo rumo ao aprendizado da “moda” da época, chamada “Orientação a Objetos”. Foi nesse ano que UML foi lançado, mas antes disso eu comecei a bisbilhotar as metodologias originais como Booch, Objectory, Fusion. Sempre achei um assunto meio chato. Também comecei a aprender Java 1.0. Me interessei depois de baixar as versões beta no FTP da Unicamp. Mas AWT não me pareceu bom o suficiente, então continuei com Delphi. Estranho, naquela época a Borland parecia tão grande. Fiz alguns sites pessoais sobre hobbies que tinha na época. Pois é, já fui um fanático por Animes e Mangás, e fiz meu primeiro website de sucesso (entre aspas mesmo, eu causava polêmica mesmo nos meus hobbies :). Naquela época não havia nada em português. Traduzi mangás, fiz legendas de anime. Sei japonês desde a infância e isso ajudou. Não é de hoje que faço traduções :-) Claro, fazendo sites pessoais, destrinchei todos os truques possíveis na época apenas com HTML, Javascript e, claro, muito Photoshop. Brinquei um bocado com redes Windows for Workgroups, OS/2 1.3

Em 1997 comecei a trabalhar com uma produtora multimídia. Evoluí no Web Design, pude trabalhar com Macs (no saudoso System 8), tive que aprender Director 5/Lingo, Flash 2/ActionScript. Desenvolver aplicações interativas em Director em um Pentium 200Mhz com 32Mb de RAM não era exatamente o ‘confortável’, mas foi divertido. Perdi a conta de quantas vezes dormi no chão da empresa, à noite, esperando arquivos serem gravados em Zip drives, ou gravando CDs em 2×. Nessa época, o Linux já era bastante famoso. Eu fiz minhas primeiras tentativas evoluir meu Unix com um RedHat 4.2 (nunca vou esquecer a caixinha azul com o logo vermelho). Alguns anos antes eu tentei o Slackware 1.0, mas desisti depois de tentativas frustradas de instalação e diversos hardwares incompatíveis e problemas de drivers.

Em 1998 tive meu primeiro contato com server-side. Via Microsoft Index Server, SQL Server 6.5 e ASP. Não foi muito divertido, mas pelo menos aprendi bastante SQL. Newsgroups sempre foram meu ponto de apoio. O site DejaNews foi um achado, era uma coletânea indexada da Usenet. Hoje em dia se chama Google Groups. Infelizmente parece que meu uso desse tipo de serviço caiu. Será que é porque a qualidade caiu?

Em 1999 tive que desenvolver sites em PHP e alguns scripts em Perl para Apache. Aprendi Regular Expressions na marra. Já deveria saber Regex, então resolvi aprender de uma vez, e hoje faz muita diferença saber. Tive que evoluir no meu Linux também e em todo o ferramental em torno desse tipo de sistema. Felizmente o RedHat 7 da época já era muito bom. Fiz várias brincadeiras com protocolos e entendi como era importante entendê-los. Não lembro como nem porquê, mas foi quando comecei a me tornar leitor assíduo do Slashdot. É minha leitura diária (religiosamente) desde então.

Em 2000 tive que desenvolver um site em Zope/Python. Sempre imaginei que esse sistema, os conceitos do ZDB, dos Products, do DTML tinham o potencial de crescer muito. Cresceram mesmo, mas pena que não como eu imaginava. Hoje acho o Plone legal, mas fico com a sensação de que ele perdeu o timing to market. Foi meu primeiro contato com Python e também a primeira vez que ouvi sobre a linguagem Ruby, mas nessa época não dei importância.

Em 2001 tive que desenvolver diversos sites e sistemas usando ASP e outras tecnologias Microsoft como VB e DCOM (é preciso respeitar Don Box). Lidar com limitações sempre é um excelente caminho para evoluir. Quando se tem muito, se esbanja. Quando se tem pouco, se aprende a otimizar. Gerar componentes DCOM usando VBScript era divertido. Eu fiz muito “Ajax”, mas naquela época não era chamado assim (MSXML e DHTML já existiam). Também fiz muitos “Web Services”, mas naquela época não tinha esse nome (HTTP e XML também já existiam, claro). Impressionante como meia década depois essas coisas voltam com outros nomes e todos acham que é novidade. .NET parecia muito legal na versão Beta 1, lembro de ter feito um framework para ASP com conceitos do ASP.NET. Pode parecer estranho pular do mundo Linux, no ano anterior, voltar para o Windows Server. Nunca entendi porque para gostar de uma coisa você ‘precisa’ criticar o outro. Minha função sempre foi apenas uma: resolver problemas dentro das restrições em que me eram apresentados, independente de tecnologia e da plataforma. Ponto final.

Em 2002 precisei integrar um sistema em ASP com outro em SAP R/3, portanto tive que aprender ABAP. O livro “Aprenda ABAP/4 em 24 horas” na verdade durou 48 horas. Fez bem conhecer os conceitos de DCOM, CORBA, quer dizer que eu sabia o que era RFC e como lidar com esse tipo de ambiente distribuído. A partir daqui começo minha ‘carreira’ de garoto-de-programa (também conhecido como ‘consultor’), muito trabalho, pouco valor agregado. Meu aprendizado teve altos e baixos nos anos seguintes, mas definitivamente meu ritmo caiu até 2006.

Em 2003 precisei desenvolver sistemas em SAP Portal e Java, aprendi diversas coisas como Hibernate e Struts. Aprendi a estrutura do servidor Java da SAP e como destrinchar mais. Sem acesso ao código fonte, só me restava aprender a descompilar as classes e explorar. Tive também que fazer um celular se comunicar com sistemas SAP. Lá vamos nós codificar os protocolos na unha. Nunca vou esquecer a diferença de Big Endian e Little Endian depois dessa escovação de bits. E também de como é chato lidar com protocolo iDen. Lidei com alguns assuntos de criptografia e reforcei minhas noções de segurança, encriptação, autenticação, algoritmos. Nunca é demais ser paranóico.

Em 2004 precisei de um sistema de versionamento, então aprendi Subversion. Eu nunca tive uma sensação muito boa do CVS. Subversion ainda era Beta nessa época mas eu tinha a sensação de que poderia se tornar grande. Apesar dos diversos bugs, de ter que fazer um patch para o TortoiseSVN para funcionar com Visual Studio.NET, ainda assim sabia que SVN seria grande. Felizmente, eu estava certo. Acho que este foi o ano que mais programei Java: cacei todo tipo de bug no sistema de Portal recém-lançado pela SAP, criei um framework mais produtivo sobre o ruim que vinha com o produto e trabalhei com muita integração com sistemas R/3.

Em 2005 precisei integrar sistemas de telecomunicação, aprendi um pouco de Tuxedo/C++. ESB, SOA, e outros acrônimos similares se provaram bullshit de vendedor, como eu sempre disse. Comunicação e integração nunca foram novidades. Trocar os nomes para parecer novo não ajuda muito. EAI é uma das coisas mais velhas desse mundo. Desde que o segundo computador foi criado, integração já existia. Nessa época eu estava cutucando o mundo de gerência de projetos. Me convenceram a me certificar como PMP. Perda de tempo. Me certifiquei mas nunca gostei muito do método. Passei algum tempo estudando CMMi e outras metodologias, mas perdi o interesse muito rápido. Já sei que não tenho vocação para muita conversa.

Em 2006 tive que lidar com mais sistemas de telecomunicação com Webmethods. Mais “SOA”, Mais “XML”. Sem problemas. Por que todo mundo tem problemas de integrar sistemas híbridos? Quem sabe SAP não sabe Webmethods. Quem sabe Webmethods sabe pouco Java. Quem sabe Java não conhece os outros dois. Tudo falta de vontade. Enfim. Em paralelo, Rails entrou na jogada. Lá fui eu escrever um livro. Impressionante como a coisa estourou lá fora e ninguém aqui deu a devida atenção. É o velho problema do ovo e da galinha: o programador não quer aprender porque não tem mercado, o mercado não se interessa porque não tem programador. Um dos lados tem que dar o primeiro passo. Os americanos são peritos em dar primeiros passos, nós, por outro lado, somos doutores em esperar o tempo passar. Mas eu nunca dei atenção aos outros. Um mês e meio escrevendo quase me deixaram louco. Dormir 4 horas por noite não é normal. Mas o livro saiu, o blog está aqui, mais importante: eu aprendi muito. E felizmente mais pessoas estão se interessando sobre o assunto. Quem sabe daqui pouco tempo finalmente consigamos ultrapassar o ponto de inflexão entre número de profissionais vs. interesse do mercado.

Finalmente, em 2007 eu já estava cansado da minha consultoria e dos meus clientes. Ter que fazer vistas grossas a coisas idiotas realmente não é do meu feitio. Abandonei quem nunca realmente me apoiou e resolvi voar solo. Se algum ouvirem a palavra “Balance”: corram! Falo sério! Mas boas coincidências acontecem, depois de quase 1 ano e meio falando sobre Rails, finalmente pude começar a trabalhar com isso em tempo integral. Mas aí vem a questão: eles não me contrataram por causa do meu último ano com Rails, que foi muito pouco, mas justamente pelo resultado dos últimos 22 anos.

Espero que isso tenha atiçado mais a curiosidade de todos. Como podem ver, as biografias do pessoal que entrevistei ultrapassa em muito a minha. Conheci várias pessoas com biografias muito melhores, acho que no momento está razoável.

Como disse antes: também sou um alvo móvel. Amanhã estarei escrevendo a retrospectiva 2007, 2008, 2009. Com certeza ano que vem saberei muitas coisas que não sei hoje, e não será por acidente (porque todo mundo aprende algo novo, se não for um vegetal). Me refiro a um esforço consciente de aprender coisas novas.

Não vou estagnar no Ruby, por mais que goste. Não importa se vem do mundo open source, da Apple, da IBM ou da Microsoft. Temos que observar tudo! Um cozinheiro, com 10 anos de casa, que sabe fazer apenas as mesmas meia-dúzia de pratos, não é um mestre-cozinheiro, é apenas um autômato. 10 anos, ou 20 anos não fazem diferença. E autômatos são facilmente substituíveis.

Comments

comentários deste blog disponibilizados por Disqus