Categories
Carreira

O que eu acho sobre faculdades de informática

Para ser bem exato, esse post está em draft no meu WordPress desde 9 de fevereiro de 2008 quando escrevi um post sobre entrevistas. Enrolei esse tempo todo pra escrever porque é um assunto bem delicado e controverso (e além disso porque eu sou um procrastinador mesmo). Eis que há alguns dias eu vejo dois posts sobre o assunto, um do Fabio Akita e outro do Paulino Michelazzo e, apesar de concordar totalmente com ambos os posts, quero contribuir também com meus 2 centavos. 🙂

Pra começar, não tem nada no mundo inteiro que descreva melhor o que acho sobre certificados quanto o que o Rodrigo Kumpera escreveu nesse post no GUJ:

“[…] eu dou valor a certificação sim. Quando vou comprar gado mordo no mercado dou preferencia por aquele que é certificado. Afinal, entre duas peças amorfas de picanha, aquela com um selo de qualidade deve ser melhor, não?”

Eu não tenho nenhum problema com faculdade em sí. Para muitas pessoas é muito útil e é uma ótima porta de entrada para o mercado de trabalho. No entanto eu acho imbecil que as empresas avaliem a competência e capacidade das pessoas apenas por um canudo ou certificado. É ingênuo achar que as pessoas são melhores ou piores porque fizeram ou não faculdade.

No meu caso, por exemplo, eu comecei a trabalhar com informática bem cedo quando estava no 2o. grau. Nessa época eu fazia um curso técnico em eletrônica e acabei indo fazer meu estágio obrigatório numa empresa de desenvolvimento de sites. Mesmo fazendo eletrônica eu já tinha descoberto minha vontade de trabalhar com software brincando com Visual Basic, e por isso a oportunidade de ir para essa empresa foi ótima. Quando terminei meu 2o. grau, estava indo de vento em popa no estágio e como eu sempre fui adiantado 1 ano no colégio (porque “pulei” uma série) resolvi esperar mais um ano para começar a faculdade. Nesse ano trabalhei quase que de graça todo dia das 09:00 as 19:00 com um monte de profissionais excelentes e em vários tipos de projeto, o que me fez ganhar uma experiência enorme.

Durante esse ano começei a fazer provas para algumas faculdades para que no ano seguinte já estivesse tudo pronto para iniciar minha graduação. Acabei passando para algumas faculdades (o que não é um grande feito porque até analfabetos conseguem passar para algumas faculdades). A que eu escolheria seria a UERJ, que era do lado da minha casa. Só que eu percebi que se fosse para lá não teria como continuar trabalhando no mesmo ritmo que eu estava, teria que diminui-lo drasticamente. Isso me deixou muito deprimido, porque eu amava fazer o que eu fazia no trabalho e não queria deixar aquilo por nada. Foi quando eu optei por ir para uma faculdade particular, que tinha uma carga horária e programa bem menos “puxados”.

Logo nas primeiras duas semanas eu queria me matar. Era um tédio ter que ouvir aulas de introdução a programação quando eu já estava estudando aquilo diariamente há mais de 2 anos. Mesmo assim eu continuei porque eu queria me formar, mas decidí fazer uma estratégia diferente. Ao invés de ir às aulas, eu tentava ir o mínimo possível (o suficiente para não repetir por faltas) e fazia vários acordos com todos os professores para abonarem minhas faltas. Enquanto isso eu estudava sobre todos os assuntos da faculdade em casa, onde eu conseguia estudar muito mais rápido, no meu ritmo. Mesmo assim, três semestres depois eu ainda estava no primeiro semestre, porque era tão legal ficar no trabalho e estudar em casa que eu acabei repetindo em quase todas as matérias por falta. Três vezes.

Depois disso rolou muita história, trabalhei em um monte de lugares e passei por um total de 4 faculdades. Uma delas (a que fiquei mais tempo) me deixava altamente frustrado por não acompanhar as mudanças do mercado. Em 2005, me incomodava muito o fato de saber que a última atualização da programação do curso tinha sido em 1999. Seis anos em informática é muita coisa. Eu me lembro das aulas de introdução a banco de dados onde o professor ainda achava que MySQL e PostgreSQL eram adequados para aplicacões “pequenas”, que open source não tinha futuro e da cara de interrogação dos professores quando eu falei que tinha acabado de conhecer um treco chamado “AJAX” e outro treco chamado “Ruby on Rails“. Talvez para outras profissões que não mudem tanto isso não seja da mesma forma. Minha mãe que é formada em ciências contábeis e administração de empresas em duas boas faculdades aproveita esse conhecimento até hoje. Mas quando falamos de informática e desenvolvimento de software a história é outra.

Passei uma porção de anos vendo como isso tudo funciona, o que as pessoas estudam e como algumas delas se formam nas “coxas”. Por outro lado ví alguns amigos se formarem na Unicamp e irem fazer estágio na Bélgica, outros amigos desenvolvendo jogos no laboratório de programação da UFRJ e nessas mesmas duas faculdades outros amigos eram uns “enganadores” e passavam nas matérias as custas de muita “reza braba”. Uma outra vez trabalhei com um cara que tinha se formado na UFRJ e estava começando uma pós-graduação na PUC e ele não produzia mais do que 30 minutos se não tivesse alguém de babá do lado. Pior ainda que isso tudo é a história bem conhecida entre os alunos da PUC de uma menina de lá que uma vez passou de ano “favorecendo professores sexualmente” mas por outro lado conheço excelentes profissionais que se graduaram lá.

O “x” da questão é o seguinte: não dá pra avaliar as pessoas somente pelos seus diplomas e certificados! Como eu acabei de mostrar, existem casos e casos. Fazendo uma conta rápida cheguei à conclusão que das 20 pessoas mais brilhantes que já trabalharam comigo em toda minha vida, 50% sequer eram formadas, cerca de 20% formados na pior faculdade do Rio e 30% em “faculdades de ponta”, como adoram dizer as consultorias de RH. Todas essas pessoas eram (são ainda) muito acima da média, são pessoas brilhantes, muito inteligentes e que, assim como eu, estudam diariamente desde que perceberam que é assim que se faz a diferença – independente de terem feito faculdade ou não.

Por isso que quando eu contrato pessoas tento conhecer o máximo possível além da sua fachada (que é o currículo). Mais recentemente tenho tentado chamar as pessoas para passarem o dia aqui programando em par com várias pessoas, participando de reuniões e discutindo com outros desenvolvedores em situações reais. Depois disso saber se a pessoa fez ou não graduação, mestrado ou doutorado é completamente irrelevante. Aliás, acabei de me tocar que eu não faço a menor idéia se as últimas duas pessoas contratadas são formadas ou não, porque nem me lembro de ter lido seus currículos. Ao invés disso, elas passaram dois dias aqui, contaram toda a sua vida, mostraram código, programaram em par comigo, saimos pra almoçar e falar besteira e eles se deram muito bem com o pessoal dos times de desenvolvimento.

Para finalizar, de forma alguma estou aconselhando que as pessoas não façam faculdade, muito pelo contrário. Eu sempre aconselho que se estude o máximo possível. Para alguém que nunca teve contato com nada nesse mundo de informática talvez seja interessante. Para alguém que tem sede de aprender e estuda numa boa faculdade com bons professores que vão te levar além do que está na sala de aula, é sensacional (eu já tive professores assim e a experiência é incrível). Porém, se você está lá pelo canudo, esquece: você já é um fracasso. Se você quer se encher de canudos/certificados/selos mas ainda não colocou na cabeça que você vai precisar estudar todo dia para ser algúem nesse mercado de informática, você está perdido.

*Update: Outros posts sobre este assunto (de leitura obrigatória):

Categories
Eventos Java Notícias

Falando em Java 2008, aí vou eu!

Falando em Java 2008Na próxima semana estarei em São Paulo para o Falando em Java 2008, um ótimo evento realizado anualmente pelos amigos da Caelum, a melhor empresa de treinamentos em desenvolvimento de software do Brasil na atualidade.

Esse ano haverá a ilustre presença do Emmanuel Bernard (um dos líderes do projeto Hibernate na JBoss) que fará duas apresentações, uma sobre JPA 2.0 e outra sobre Hibernate Search. Por uma grande ironia do destino, a palestra de Hibernate Search foi uma das que eu não consegui assistir na JBoss World 2008 e agora vou ter minha segunda chance! Além disso esse ano não se falará só em Java mas também em arquitetura de software, Domain-Driven Design, JRuby on Rails, Scrum e AJAX.

Nos vemos por lá! 🙂

Categories
Engenharia de software Eventos

[JBoss World 2008] James Ward: Porting from web 1.0 to RIA

James Ward, evangelista da Adobe, fez uma apresentação muito legal sobre como criar Rich Internet Applitacions com Flex, usando back-ends robustos em Java com JBoss.

Essa apresentação teve muito a ver com o artigo que ele publicou no InfoQ sobre como portar aplicações HTML tradicionais para Flex, escrito em conjunto com Shashank Tiwari (mais detalhes no blog do James).

No início ele mostrou um demo sensacional de uma aplicação de seguros que eles migraram de “web 1.0” para Flex. Realmente o poder das interfaces ricas é impressionante. Outro demo interessante foi do eBay Desktop, que tem uma boa combinação de HTML e Flash (usando o Adobe AIR), resultando em uma interface muito bonita e funcional.

Ultimamente na Globo.com temos trabalhado muito com Flash, por causa do player do Globo Vídeos. Antes disso eu nunca tinha trabalhado com Flash e talvez por isso nunca tenha tido a oportunidade de sentir tão de perto seu potencial. Flash/Flex/AS3/AIR/etc abrem um novo mundo de possibilidades, dando o poder de criar interfaces com usabilidade e interatividade excelentes, e ainda com um forte apelo visual.

Ele apresentou o conceito de “SOARIA” (aliás, quando ele falou isso eu comecei a rir sozinho, parecia que ele estava falando “sorria”). O que ele chama de SOARIA significa SOA + RIA, ou seja, aplicações ricas (RIA) que interagem com o back-end através de serviços (SOA). IMHO, acho essa abordagem muito legal, porque evita aquela dependência cíclica que sempre acaba se formando entre o Flash e a aplicação.

No final, vimos um benchmark interessante, comparando vários modelos de carregamento de dados em aplicações RIA usando Flex, Laszlo e Javascript/Ajax, integradas com serviços SOAP, pure-XML, HTML e JSON. O benchmark analisa como cada um desses modelos impacta em performance, consumo de banda e consumo de memória na máquina cliente. Fiquei surpreso com os resultados… Por exemplo, a aplicação mostra que o Dojo tem uma performance surpreendentemente ruim quando comparado a aplicações Flex, que têm uma performance normalmente superior a todas as outras (atenção, se você for rodar os testes não se esqueça de desabilitar o Firebug antes!).

A Adobe realmente acertou com o Action Script 3, Flex, AIR e todos esses novos produtos que têm sido lançados. Tenho que tirar o chapéu.

Categories
Internet Webservices

Web programável

Uma das coisas mais legais que surgiu nesses últimos tempos foi a web programável (a.k.a. programmable web).

A web programável não é uma tecnologia mas sim um conceito. Tecnologicamente falando não há nenhuma novidade. Todas as tecnologias que fazem parte da web programável já estão aí há um tempão: JavaScript, XML, webservices, HTTP, RSS, Atom… O grande barato disso é a idéia, que consiste em os sites disponibilizarem além de suas tradicionais interfaces web HTML, uma interface que possibilite que programas utilizem os serviços que o site oferece.

Isso possibilita por exemplo que você coloque um mapa do Google Maps no seu site, que você tenha um site de comércio eletrônico inteiro usando a infraestrutura de pagamento e shopping cart do PayPal, que você faça um sistema de backup armazenando os seus arquivos no sistema de arquivos S3 do Amazon, que você codifique vídeos em vários formatos utilizando a HeyWatch API e por aí vai… O limite é a imaginação.

Vários grandes players do mercado já disponibilizam suas APIs públicas como o eBay, Google, Yahoo, Skype, PayPal, Amazon, além de muitos outros.

O site ProgrammableWeb é um lugar legal para acompanhar as últimas APIs lançadas por aí. Na última semana com a adição das novas APIs do Google eles anunciaram que já tem mais de 500 APIs catalogadas!

Categories
JavaScript

Re-introdução ao JavaScript

O Diego Plentz acabou de me mandar um artigo muito bom sobre JavaScript. JavaScript? É, isso mesmo.

Trata-se de uma re-introdução ao JavaScript.

Porque você deveria ler isso? Porque o JavaScript é frequentemente subutilizado como uma linguagem para validação de formulários ou visto como um brinquedinho para iniciantes. Poucos desenvolvedores conhecem a verdadeira força desta linguagem e nos dias de hoje de Ajax e Web2.0 saber JavaScript pode fazer a diferença na hora de resolver vários problemas importantes.

Atualmente as aplicações web mais interessantes utilizam “toneladas” de JavaScript para torná-las mais interativas, como por exemplo o GMail, MindMeister, Yahoo Pipes, Netvibes e vários outros mais.

Leitura absolutamente recomendada.

Categories
AJAX

AJAX Compilation

Ajax Compilation é uma compilação de referências para diversas APIs e bibliotecas AJAX que você pode usar em seus sites para torná-los mais interativos.

Basicamente o dono do site teve o trabalho de catar para nós um monte de sites legais na internet e criar um catálogo deles, colocando um link para o site da ferramenta e para o demo online (quando é oferecido pelo site da ferramenta).

Nem tudo catalogado lá é AJAX, algumas coisas são em Flash e outras são em puro Javascript mesmo. Mas o que importa é que tem um monte de coisinhas legais e vale apena dar uma olhada. Recomendado para o cinto de utilidades dos desenvolvedores web. 😉