Posts Tagged ‘Ruby On Rails’

Meu ambiente de trabalho em 7 itens

Monday, January 17th, 2011

O Anderson Casimiro (@duodraco) começou um meme muito legal: “Seu ambiente de trabalho em 7 itens”. Nele você escreve sobre quaisquer 7 coisas do seu ambiente de trabalho que achar mais interessantes e em seguida indica de 3 a 5 pesoas para fazerem o mesmo. O Anderson passou o meme para o Ivo Nascimento (@ivonascimento), que depois mandou para o Bruno Roberto Gomes (@brgomes) e por fim para o Hélio Costa (@hlegius) que me colocou nesta roda.

Então vamos lá, as 7 coisas que mais gosto e acho importantes no meu ambiente de trabalho são:

1) Git + Github

O Git é uma fantástica ferramenta de controle de versão. Sua característica principal é ser um sistema de controle de versão distrubuído, o que significa que você pode criar repositórios locais independentes de um servidor central, por exemplo. Com isso você pode criar facilmente novos branchs e repositórios praticamente sem custo (ou seja, muito rápido). Outra coisa sensacional é que o Git praticamente resolve sua vida com relação a merges. Na maioria das vezes ele consegue “se achar” sozinho e resolver conflitos para você, o que poupa um bocado de tempo quando você está trabalhando em equipe com várias pessoas alterando a mesma base de código.

O Github faz o Git – que ja é fantástico – ficar ainda melhor. O Github mudou para melhor a forma de colaboração entre desenvolvedores em projetos open source. Basta você criar um clone remoto do projeto que deseja contribuir, fazer suas alterações e fazer um “pull request”. Você pode adicionar colaboradores nos seus repositórios ou até mesmo criar um time de colaboradores. Isso é mais ou menos o que as pessoas já faziam antes, o Github apenas entendeu esse processo e criou uma ferramenta excelente para suportá-lo com algumas melhorias. E isso tudo não serve apenas para projetos abertos não, você pode fazer como eu (e muita gente) e por alguns míseros dólares você terá seus repositórios privados para trabalhar nos seus projetos particulares. Hoje basicamente não tenho nada importante que não esteja no Github.

2) Google App Engine

O Google App Engine também é um absurdo. Com ele você pode desenvolver aplicações Python ou Java num estalar de dedos e colocá-las para funcionar numa infraestrutura bastante confiável e rápida. O App Engine oferece banco de dados, cache, storage e várias coisas úteis que te ajudam a focar na sua aplicação e esquecer a infraestrutura. Para os Railers que lêem este blog, o Heroku é um bom quebra galho (mesmo sendo bem mais simples que o App Engine).

3) VMWare Fusion

O VMWare Fusion me possibilita ter vários sistemas operacionais com diferentes browsers para testar minhas aplicações web em uma máquina só. Além disso, como trabalho muitas vezes desenvolvendo coisas que serão servidas com Red Hat Enterprise Linux ou CentOS, posso facilmente criar ambientes de desenvolvimento locais com esses sistemas operacionais e continuar trabalhando no conforto do meu Mac sem ficar com medo das coisas não funcionarem em produção.

4) TextMate

Todo mundo tem seu editor preferido, e o meu é o TextMate. Gosto dele porque é leve, fácil de escrever plugins e snippets e possui umas centenas de plugins disponíveis por aí para trabalhar com qualquer linguagem que já precisei até hoje, suportar sistemas de controle de versão, e por aí vai. Infelizmente não consigo usá-lo para todas as linguagens que trabalho. Por exemplo, quando programo em Java ainda prefiro usar o Eclipse, ou o XCode para brincar com iOS, mas para todo o resto uso o TextMate (ou, quando em servidores remotos, o Vim).

5) Shell

Não tem como sobreviver sem um shell. Eu costumo usar o Terminal do Mac OS X com algumas customizações, e como shell uso o Bash. Além de me possibilitar diagnosticar problemas em servidores remotos, ver logs e etc., também uso o shell para algumas tarefas de desenvolvimento como usar o Git (incluindo resolver conflitos, prefiro fazer manualmente), buscar arquivos, inspecionar minha máquina e por aí vai. Também costumo escrever shell scripts para fazer algumas tarefas pessoais como codificar vídeos com ffmpeg e fazer backups remotos.

6) MacBook + Mac OS X

Os Macs são computadores que simplesmente funcionam. É isso. Meu MacBook Pro é potente e tem um hardware excelente que não me deixa na mão. E quanto ao Mac OS X, ao invés de ficar no meu caminho me pedindo drivers para fazer qualquer coisa ele simplemente funciona e deixa o caminho livre para que eu possa trabalhar. Já se foi a época em que eu tinha tempo para comprar peça por peça e montar meu próprio computador, ou então ficar re-configurando meu xorg.conf a cada update de sistema operacional. :) Hoje não dá mais, preciso focar em coisas mais importantes.

7) Monitor adicional de 24″, teclado e mouse

Nós que trabalhamos intensivamente com computadores não podemos nos dar ao luxo de não ter um teclado, mouse ou monitor confortáveis. O monitor de 24″ é o mais importante do meu setup de trabalho. Usar dois ou mais monitores me deixa muito mais produtivo, além de ser muito mais confortável do que o display do MacBook (porque é gigante). Se você nunca tentou usar dois monitores, não perca mais tempo e tente agora, você vai ver a diferença. Quanto ao mouse e teclado, durante muito tempo usei hardware Microsoft (aliás, isso eles fazem bem) mas recentemente tenho usado o Magic Mouse e um mini teclado sem fio, ambos da Apple.

E para continuar a brincadeira…

Indico mais 5 pessoas para participar:

[Dev in Rio 2009] Balanço do evento

Saturday, September 26th, 2009

Ufa… Depois de uma semana de correria para o fechamento do Dev in Rio finalmente estou conseguindo escrever um post!

Mesmo tendo sido idealizado, planejado e executado em pouco mais de 20 dias, o Dev in Rio 2009 foi excelente, um sucesso total! Conseguimos reunir em plena segunda-feira cerca de 400 pessoas para falar de desenvolvimento de software, se divertirem no Dojo e terem um dia de muita diversão que terminou no maior #Horaextra de todos os tempos.

O Dev in Rio 2009 começou na hora programada quando eu e meu amigo Henrique Bastos abrimos o evento. Rapidamente falamos sobre o evento e sobre como seria o nosso dia. Tratamos de como achamos importante a interação entre comunidades e aprender com pessoas especializadas em tecnologias diversas. Aproveitamos também para agradecer muito aos nossos patrocinadores, apoiadores, comunidades e amigos que nos ajudaram muito mais do que vocês possam imaginar.

Dev in Rio 2009 - Abertura
* Henrique Bastos e eu na abertura do Dev in Rio.

Abrindo os trabalhos, disparamos as duas trilhas do Dev in Rio 2009. No auditório principal, aconteceriam as palestras programadas, enquanto no foyer seria realizado o Coding Dojo.

O Coding Dojo é uma arena de programação organizada pela turma do Dojo Rio em conjunto com o Dojo@SP. A idéia é atacar problemas simples e lúdicos, utilizando técnicas de programação como Test-Driven Development e Modelagem SOLID. Este definitivamente foi o gol de placa do dia – o Dojo funcionou muito melhor do que nós poderiamos imaginar (exceto o Dojo de Java que não foi lá muito popular, tenho que admitir).

Dev in Rio 2009 - Coding Dojo
* Coding Dojo do Dev in Rio: 3 metros de código na parede!

Dev in Rio 2009 - Coding Dojo
* Galera participando do Coding Dojo do Dev in Rio.

A primeira palestra foi a do Ryan Ozymek, que entrou em cena com seu famoso pinguim para falar de sua experiência com software livre e a comunidade Joomla! Ele detalhou o funcionamento de uma grande comunidade de desenvolvimento e deu sua visão de empresário sobre como usar software livre para alavancar os negócios da sua empresa.

Logo depois, Guilherme Silveira e Nico Steppat trataram de um tema bastante polêmico: Java está morto? Abordaram os fatos de que existem muitas coisas além da linguagem no mundo Java e que apesar da linguagem estar “caducando” a JVM ainda pode ser muito útil.

Depois do almoço, Fabio Akita não deu trégua para quem estava com sono e fez uma excelente apresentação sobre o ecossistema Ruby on Rails com direito a videos, screencast e bastante informação além do código. Ele não sabe mas tirou o fôlego das meninas da tradução simultânea!

Na sequência, o (praticamente carioca) Jacob Kaplan-Moss fez sua apresentação sobre Django, o framework web para perfeccionistas desenvolvido em Python. Ele falou dos conceitos e valores que guiaram o desenvolvimento do projeto, além de mostrar um pouco de código para dar uma idéia ao público de como usar o Django na prática.

A última palestra do dia foi feita por Jeff Patton, que falou sobre desenvolvimento de produtos com métodos ágeis. Utilizando como narrativa a história de um projeto realizado em conjunto com Obie Fernandez, diversos problemas comuns no desenvolvimento de software (e suas soluções) foram destacados.

No final, nosso grande amigo Vinicius Manhães Teles liderou um bate-papo entre palestrantes, comunidades e o público. Tivemos a impressão de que se não controlassemos o relógio a conversa teria varado a noite, pois não faltavam assuntos e perguntas interessantes. O público participou bastante e foram levantadas questões como empreendedorismo e polêmicas como a estúpida regulamentação da profissão de analista de sistemas.

Dev in Rio 2009 - Discussão
* Discussão liderada por Vinicius Teles. E antes que alguém pergunte, não, não é o cara do Myth Busters que está na foto, é o Jeff Patton.

Enquanto isso tudo rolava, eu, Henrique e o Gustavo Guanabara e a Flavia Freire (jornalista da Arteccom) passamos o dia gravando um gigantesco Podcast do evento, entrevistando o pessoal e filmando os bastidores. Falamos com palestrantes, patrocinadores e participantes sobre todos os assuntos abordados nas palestras! Guanabara, termina logo de editar esse treco porque eu tô ansioso pra ouvir! :) Veja o “making of” de alguns dos Podcasts com o Ryan Ozimek, com Guilherme e Paulo Silveira e com Fabio Akita e Marcos Tapajós. Assim que finalizarmos as edições vamos divulgar todo esse material.

Dev in Rio 2009 - Gravação do Podcast
* Guanabara gravando Podcast com Fabio Akita e Marcos Tapajós (e datalhe: ao fundo Guilherme Silveira e Paulo Silveira fazem Pair Programming).

Como o evento foi realizado numa segunda-feira, fechamos o evento convidando todos os participantes (ao som de “Estamos todos bêbados” do Matanza e com coreografia de Sylvestre Mergulhão e Henrique Andrade) para uma edição épica do #Horaextra no Lapa 40º. A entrada era gratuita para quem apresentasse o crachá do Dev in Rio 2009 e assim realizamos o maior #Horaextra de todos os tempos:


* Veja mais videos do Dev in Rio 2009.

Tenho certeza de que esse post não consegue transmitir 0,001% do que foi o Dev in Rio 2009 e a minha felicidade de ter conseguido realizá-lo. Gostaria de agradecer mais uma vez o apoio fundamental de toda a galera da Globo.com que viabilizou o evento, dos nossos patrocinadores Caelum, Locaweb e D-Click e de todos que nos apoiaram de alguma forma: Associação PythonBrasil, Fábrica Livre, Myfreecomm, OpenSourceMatters, Arteccom, DojoRio, Dojo@SP, #Horaextra, PythOnRio, RioJUG, RubyInside Brasil, Guanabara.info e todas as pessoas que participaram do Dev in Rio 2009. Sem vocês nada disso teria sido possivel.

Dev in Rio 2009 - Galera no final
* Participantes da mesa redonda do Dev in Rio.

Se você não foi no Dev in Rio, tenho duas coisas para te dizer: (1) você perdeu uma farra das melhores mas (2) em breve vamos disponibilizar os vídeos das apresentações para amenizar sua dor. :)

E que venha 2010!

Rails Summit 2009, aí vou eu (ou melhor, aí vamos nós)!

Wednesday, September 2nd, 2009

Rails Summit 2009Nos dias 13 e 14 de outubro vai rolar em São Paulo a Rails Summit 2009, um dos principais eventos de desenvolvimento de software do Brasil organizado pelo Fabio Akita e a Locaweb!

Ano passado eu fui e foi sensacional e esse ano promete ser ainda melhor! A programação está bem diferente do ano passado e conta com algumas novidades como Bryan Liles, Gregg Pollack, Jason Seifer, Pratik Naik, Richard Kilmer, Matt Aimonetti, além do pessoal que veio ano passado como Chad Fowler, David Chelimsky, Obie Fernandez e brazucas feras demais como o Fabio Kung, Marcos Tapajós, Nando Vieira, Vinicius Teles, Leonardo Borges, Carlos Brando e por aí vai. Enfim, não dá para perder de jeito nenhum!

Nós cariocas (eu, Henrique, Rafael, Sylvestre, Tapa, Vinicius, Ramon e quem mais for) vamos todos ficar no mesmo hotel pra fazermos a maior bagunça! Seguindo o exemplo do Vinicius Tapajós no ano passado, estamos divulgando o hotel pra que todo mundo possa ir pra lá e aumentar a bagunça. :)

Ficaremos hospedados no Holiday Inn Parque Anhembi que é dentro do Centro de Convenções Anhembi (o mesmo local do evento). O telefone para reservas é 0800-770-0858. Não é o hotel mais caro e nem o mais barato mas é pertinho do evento e fica bem fácil pra todo mundo. Nos vemos lá!

Dev in Rio 2009: eu vou!

Thursday, August 20th, 2009

É com muito orgulho que apresentamos o Dev in Rio 2009, uma conferência inédita sobre desenvolvimento de software que acontecerá no próximo dia 14 de setembro no Centro de Convenções SulAmérica, no Rio de Janeiro!

O evento está sendo organizado por mim (Guilherme Chapiewski) em parceria com o meu amigo Henrique Bastos e a realização está sendo coordenada pelas nossas experientes amigas da Arteccom (e tê-las ao nosso lado já garante que este será um evento para marcar o circuito carioca).

Nossa programação conta com três palestrantes nacionais e três internacionais falando sobre Open Source, Java, Ruby on Rails, Django e desenvolvimento ágil de software:

“O molho secreto”: como as comunidades do Joomla! e Open Source estão melhorando o cenário de tecnologia… e mudando o mundo!

Ryan OzimekRyan Ozimek é atual membro do Steering Committee da Open Source Initiative, membro da diretoria da Open Source Matters e co-fundador e CEO da PICnet Inc. Com enfoque em tecnologias open source, Ozimek está constantemente a procura de formas em que a Internet possa servir melhor o “bem maior” e, mais especificamente, as entidades sem fins lucrativos.

O Java está morto?

Guilherme SilveiraGuilherme Silveira é especialista em Java para a web e graduando em matemática computacional na USP, ministrou diversas palestras relacionadas ao tema em eventos e empresas pelo Brasil. Atualmente é commiter do CodeHaus pelos projetos XStream e Waffle, além de um dos responsáveis pelo desenvolvimento do VRaptor.

Nico SteppatNico Steppat é Engenheiro da Computação Aplicada na Fachhochschule Brandenburg na Alemanha, é instrutor, consultor e desenvolve há cinco anos com Java no Brasil e Alemanha, atuando agora na Caelum com enfoque especial em EJB. É o responsável técnico no Rio de janeiro. Escreve para a revista MundoJava e possui as certificações SCJP, SCWCD, SCBCD e SCEA.

Ecossistema Ruby on Rails

Fabio AkitaFabio Akita é Gerente de Produtos de Hospedagem na Locaweb e ajudou a implantar Ruby on Rails pela primeira vez num grande hosting no Brazil. Ano passado também organizou o Rails Summit Latin America, o primeiro grande evento de Rails na América do Sul. Trabalhou na consultoria americana Surgeworks LLC, prestando serviços relacionados a projetos Ruby on Rails, com o cargo de Brazil Rails Practice Manager.

Django: o framework web para perfeccionistas com prazos

Jacob Kaplan-MossJacob Kaplan-Moss é um dos líderes de desenvolvimento e co-criador do Django. Jacob é um desenvolvedor de software experiente com foco em desenvolvimento de aplicações web e arquitetura de gerenciadores de conteúdo. Em 2005, Jacob ingressou no Lawrence Journal-World, um jornal local em Lawrence, Kansas, e ajudou a desenvolver e tornar open source o projeto Django. É também co-autor do livro “The Definitive Guide to Django” (Apress, 2007).

Desenvolvimento ágil e iterativo de produtos

Jeff PattonJeff Patton cria e desenvolve software nos últimos 15 anos desde sistemas de pedidos de peças de aeronaves até fichas médicas eletrônicas. Jeff se focou em metodologias ágeis desde que trabalhou com um time de Extreme Programming em 2000. Em particular, Jeff se especializou na aplicação de práticas de user experience design (UX) para melhorar requisitos ágeis, planejamentos e produtos. Desde 2007, Jeff tem aplicado Lean thinking e práticas de desenvolvimento com Kanban e Scrum para ajudar times a focarem na entrega de valor.

Vinicius TelesPara fechar com chave de ouro, no encerramento do evento faremos um bate-papo com os palestrantes, alguns membros das comunidades de desenvolvimento e a participação especial do meu amigo Vinicius Teles!

Como se isso tudo já não fosse suficiente, enquanto todas essas apresentações estão acontecendo teremos sessões de Coding Dojo rolando do lado de fora com participação especial dos nossos palestrantes (caso eles consigam ficar por lá)! Estamos planejando fazer um Dojo de Python, um de Ruby e um de Java!

Será simplesmente incrível, ninguém pode ficar de fora dessa!

As inscrições podem ser feitas no site do evento (http://www.devinrio.com.br) e custam apenas R$ 65,00. Todos os inscritos terão direito a participar de todas as sessões, incluindo o Dojo.

Nosso encontro será numa segunda-feira, ou seja, se você não for do Rio de Janeiro já tem uma ótima desculpa para passar o fim de semana aqui, assistir uma ótima conferência na segunda-feira e voltar para o trabalho cheio de idéias na terça!!! Ainda estamos tentando fechar uma parceria com algum hotel para oferecer desconto para participantes do evento. Fiquem ligados nas novidades por aqui ou pelo Twitter!

Gostaria de deixar registrados meus sinceros agradecimentos para os nossos patrocinadores Locaweb e Caelum, além de outras organizações que nos apoiaram de alguma forma: Associação Python Brasil, Fábrica Livre, Open Source Matters e Myfreecomm. E por último, meu mais sincero agradecimento para a Globo.com pois ela é a principal responsável por viabilizar essa idéia! Obrigado por mais uma vez acreditarem nesse louco aqui tarado por desenvolvimento de software! Não tenho palavras pra dizer o quanto é gratificante fazer parte dessa equipe!

Então nos vemos no Dev in Rio 2009! Faça agora sua inscrição no nosso site! Fique ligado também no Twitter do @devinrio para concorrer a inscrições gratuitas!

Ah, e uma última coisa. Por favor, nos ajudem a divulgar o evento! Falem com seus amigos, postem nos seus blogs, Twitters, coloquem nossos banners nos sites de vocês, enfim, por favor nos ajudem a divulgar esse evento! Vamos fazer barulho no Rio de Janeiro!

O que eu acho sobre faculdades de informática

Monday, May 18th, 2009

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):

[Encontro de TI] Eu fui!

Sunday, March 29th, 2009

Ontem tive o prazer de fazer mais uma apresentação no 2o. Encontro de TI organizado pela Arteccom.

Dessa vez eu falei sobre desenvolvimento para web com agilidade. Nos dias de hoje nós desenvolvedores temos ao nosso alcance uma infinidade de ferramentas para desenvolver software com mais qualidade e agilidade, e o meu objetivo foi apresentar rapidamente algumas das opções mais usadas no mercado falando de suas vantages e desvantagens. Falei também um pouco sobre arquitetura de software usando o velho mito do “Rails não escala” como cenário. No final ainda deu tempo de falar sobre alguns dos princípios e mentalidades que eu acredito que qualquer desenvolvedor precisa ter para ser mais produtivo. O tempo foi pouco pra tanto assunto mas no final acabei conseguindo. Espero que quem assistiu tenha gostado! :)

O mais legal foi que a palestra do Fabio Akita – que foi logo depois da minha – encaixou perfeitamente no assunto e deu um belo arremate nessa mesma linha, falando sobre desenvolvimento com agilidade usando Ruby on Rails. Se nós tivessemos combinado não teria sido tão acertado! Outras figurinhas carimbadas também estavam presentes no evento como o Paulo SIlveira da Caelum e o Paulino Michelazzo da Fábrica Livre.

No fim do dia rolou um painel de discussões bem legal com alguns dos palestrantes e quem não teve tempo de fazer perguntas nas apresentações teve chance de participar. Poderia ter sido só um pouquinho mais longo mas mesmo assim valeu.

ETI2: Painel de discussões
* Painel de discussões no encerramento do evento. Foto de Patricia Haddad.

Mesmo já tendo palestrado em eventos anteriores organizados pela Arteccom ainda fico intrigado pelo empenho e organização de todos da equipe. O evento estava muito legal! Mesmo sendo “novatos” neste segmento de TI já estão batendo um bolão. Só falta agora eles aprenderem a escrever o meu nome direito! :)

Sei que algumas pessoas já pediram mas por enquanto não vou disponibilizar os slides para não fazer spoiler, afinal, o Rio de Janeiro foi apenas a primeira etapa do evento. Nos próximos meses estaremos em São Paulo, Florianópolis, Curitiba, Porto Alegre, Brasília, Belo Horizonte, Salvador e Recife.

Nos vemos lá!

Java é ruim?

Sunday, October 19th, 2008

Em tempos de Ruby on Rails parece que está na moda falar mal de Java. Na Rails Summit então meus ouvidos chegaram a doer de tanto ouvir falar que Java é ruim, Java é burocrático, bla bla bla e que Ruby on Rails é fantástico, produtivo e sexy. Calma, essa não é mais uma daquelas comparações ridículas de Java versus Ruby on Rails.

Mas ainda ficou a pergunta que não quer calar: Java é ruim mesmo? A resposta, como sempre, é que depende do caso…

Em um projeto de desenvolvimento de software, mesmo antes de começar o desenvolvimento você já tem algumas restrições para escolher tecnologias. A finalidade do software por si só pode já restrigir muito a tecnologia que terá que ser usada.

Por exemplo, se você estiver fazendo um website, provavelmente você não escapará de fazer uma interface em HTML, Flash ou qualquer outra coisa específica para desenvolver uma camada de apresentação web. Provavelmente você não vai querer usar Assembly para fazer a parte server-side, já que não seria muito produtivo (apesar de não ser impossível). Eventualmente esse site pode ser um portal como a Globo.com que têm milhões de acessos por dia e você terá que escolher uma plataforma/linguagem/arquitetura que priorizem performance e favoreçam escalabilidade. Ou então pode ser um site com pouquíssimos acessos e você nem precisará se preocupar com isso…

Ou então você pode precisar fazer um pequeno script para fazer backup automatizado de um banco de dados MySQL. Seria totalmente incoerente usar Delphi, Fortran ou Piet. Provavelmente você vai querer usar algo como Shell script e resolver o problema em meia dúzia de linhas. Alguns bancos como o SQL Server têm mecanismos de agendamento de backup automático que são super fáceis de configurar e usar, portanto nesse caso usar Shell script seria trabalho desnecessário.

Meu ponto aqui é que não dá para dizer que Java (ou qualquer outra coisa) é ruim por sí só. Java pode ser ruim ou bom dentro de um contexto. Por exemplo, em 2005 eu trabalhei num projeto de Call Center à distância via Internet onde precisei desenvolver um softphone e a melhor opção foi usar Java Applets. Além de existirem bibliotecas Java para trabalhar com IAX (que é um protocolo como o SIP, só que proprietário do Asterisk), o usuário não precisava instalar nenhum programa para falar com o Call Center, bastava acessar o site. Eu odeio Applets com todas as minhas forças, mas foi ótimo para esse projeto (eu diria até que foi relativamente fácil). Seria correto então dizer que Ruby on Rails é ruim só porque seria impossível de fazer esse projeto com tanta facilidade? É óbvio que não!!!

Jamais existirá uma única linguagem ou plataforma para resolver todos os problemas. O desenvolvedor de software precisa conhecer vários tipos de ferramenta e saber escolher a melhor delas para resolver cada problema. Que fique claro que eu não sou defensor de Java, Ruby ou de qualquer outra coisa. O caso é que é incoerente dizer que X ou Y é bom ou ruim por sí só; é preciso analisar as opções dentro de um contexto.

[Rails Summit Latin America] Retrospectiva do evento

Sunday, October 19th, 2008

Excelente! Eu estava com boas expectativas sobre o evento mas não imaginava que seria tão legal como foi. Os três destaques para mim foram:

1) Chad Fowler deu um show na abertura do evento. A palestra entitulada “Being Remarkable” foi um resumão do livro dele “My Job Went to India”, que já é velho conhecido e leitura altamente recomendada. Apesar do conteúdo não ser novo ele é um excelente apresentador e fez com que valesse a pena ouvir tudo denovo.

2) Hongli Lai e Ninh Bui da Phusion falaram um pouco sobre o Passenger, mas o mais legal mesmo foi o que eles falaram sobre escalabilidade. Apesar de não terem falado nenhuma novidade, é legal reforçar sempre que não existe aquele papinho de “Rails não escala” – o que faz uma aplicação escalar é a sua arquitetura. Em termos de conteúdo acho que essa foi uma das melhores apresentações. Fora isso o interpretador de Brainfuck em Ruby que eles fizeram ficou o máximo!

3) Dr. Nic é um tremendo fanfarrão! Apesar do conteúdo da apresentação não ter sido tão interessante a palestra foi uma das melhores por todas as piadas que ele fez e gargalhadas que ele arrancou da galera.

Fora essas três assistí às duas apresentações do David Chelimsky sobre BDD com RSpec e Cucumber, a do Jay Fields sobre testes, a do Charles Nutter e Thomas Enebo sobre JRuby e todas as outras dos palestrantes internacionais. Só fiquei um pouco decepcionado com o DHH, porque acabaram fazendo um painel de perguntas e respostas e as perguntas que foram feitas não foram tão interessantes assim (com exceção de uma ou duas), mas não deixou de ser legal.

Uma pena que não pude assistir à última palestra do Obie Fernandez sobre a Hashrocket porque senão perderia meu vôo de volta para o Rio. O pior foi ver as mensagens no Twitter dizendo que ela foi muito boa… Minha sorte é que já assistí apresentações dele em eventos anteriores, então nem fiquei tão triste.

Mesmo com isso tudo, o melhor desses eventos são sempre as pessoas. Foi ótimo conversar com tanta gente legal e ainda conhecer pessoas novas da comunidade Ruby e Rails. Dessa vez devo ter falado com umas 100 pessoas diferentes entre pessoas que já conhecia e que não conhecia! Não vou citar nomes para não arriscar esquecer alguém mas foi ótimo conhecer e conversar com todos.

Antes de terminar, andei ouvindo uns burburinhos por aí de algumas pessoas reclamado sobre o preço da entrada (R$ 300). Galera, esse evento foi de graça! Sério, esse valor é absurdamente ridículo para dois dias de evento num local excelente, com comida boa e palestrantes de alto nível. Mesmo contabilizando as passagens e hospedagem em São Paulo não há dúvidas de que esse tipo de investimento vale muito a pena.

Parabéns mais uma vez para o Akita e a Locaweb por terem conseguido reunir todos esses grandes nomes num grande evento!

Esperamos ansiosos por um Rails Summit melhor ainda em 2009! :)

Rails Summit Latin America, aí vou eu!

Tuesday, October 14th, 2008

Rails Summit Latin AmericaDaqui a pouco estou partindo para São Paulo para participar do Rails Summit Latin America!

Esse vai ser o primeiro grande evento de Ruby on Rails do Brasil (já tivemos outros menores como a RejectConf, o Minas on Rails e o Rio on Rails). Teremos a presença de vários palestrantes internacionais famosos como o David Heinemeier Hansson (por vídeo conferência), Chad Fowler, Dr. Nic Williams, Ninh Bui e Hongli Lai (criadores do Passenger), Jay Fields, Obie Fernandez e muitos outros, além de vários participantes nacionais como o meu amigo fanfarrão Vinícius Teles, o grande Fabio Kung, Danilo Sato e mais um monte de gente! Esse evento promete… É sempre legal encontrar toda essa galera reunida e rever os amigos!

O Fabio Akita e a Locaweb já estão de parabéns pela organização do evento e por conseguirem mobilizar todas essas pessoas. Nos vemos lá!