Linux, Open-source, Programação e Produtividade

FISL 8.0: Entrevista com Guilherme Silveira, um dos ganhadores da Arena

Cecilia Fernandes em 19/04/2007

Guilherme Silveira, o primeiro colocado no Qualifying e um dos ganhadores da Arena de Programação do FISL 8.0, muito gentilmente concordou em nos dar uma entrevista expondo suas opiniões sobre o FISL e falando um pouco da sua experiência. Veja abaixo:

O que vc mais gostou no FISL 8.0?
Não deu para ver muita coisa pois estava participando da Arena, mas senti uma presença muito forte de patrocinadores, a ponto de sujar um pouco algumas palestras. Acho legal que as palestras mostrem como o software livre é usado ou desenvolvido por essas empresas mas em alguns momentos soou muito a propaganda.
A organização estava ótima, para um evento desse porte é muito dificil alguem não ficar doente ou simplesmente perder o aviao portanto as mudanças de palestras e horários foram naturais.

Deu pra aproveitar Porto Alegre um pouco?
Bem pouco. Conheci três churrascarias, por bastante tempo, e a cidade baixa, claro. Talvez fosse interessante o ime pegar um dia a mais de viagem para liberar o pessoal para conhecer a cidade durante o dia.

Que distribuição de Linux você usa? Pq? E a sua preferida?
Uso ubuntu em quase todo canto. Porque eu precisei de 30 minutos para instalar e não sofri a primeira vez que fiz isso. Ela é a minha preferida porque foquei minha vida em outras coisas e não tenho mais paciência para dar emerge (gentoo) como eu gostaria de dar.

Por que você escolheu Java como linguagem de programação em competições se C e C++ costumam ser as mais escolhidas?
Não escolhi Java não. Na primeira maratona que participei (Paulo Silveira e Joao Costa), minha equipe usou Java pois era o que trabalhávamos. Foi o suficiente para garantir nossa medalha, ficamos em oitavo lugar. Creio que seja a melhor posição de uma equipe de Java na história da ACM, regional Brasileira.
Minha segunda participação foi na equipe do Carlos Cardonha e Marcel Kenji, já com C++. Desde então sempre uso C++ nas provas de estilo ACM, como foi a primeira fase da Arena. No topcoder uso Java ou C++, depende da Lua. Sempre estou aberto a usar Java se perceber que vai facilitar o exercício, mas não é o mais comum.
É importante deixar claro que todos os programadores tem as mesmas ferramentas a sua disposição, Java, C, C++ e Pascal. A grande questão é como fazer uso delas para o melhor desempenho de você ou da sua equipe.

Como a sua participação em competições de programação ajudou no seu desempenho na Arena?
A primeira fase realmente não teve muita graça para mim e para outros que, como eu, são viciados na maratona (Luís Guilherme da Unicamp, por exemplo). Até mesmo a questão mais difícil foi retirada de uma prova que eu já havia feito alguns anos atrás, mesmo que sem acertar essa questão daquela vez. Ainda nessa fase, cheguei a resolver um exercício com Java, devido a facilidade do mesmo no trabalho com strings.

O que você achou da seletiva na inscrição pra Arena?
Eu não levo jeito pra quebra cabeça. O stand do google tinha dois brinquedos, entre eles o cubo-mágico, e eu não seria capaz de resolver nenhum dos dois. Com as dicas que eles passaram de como se inscrever, a coisa foi ficando mais fácil e acabei encontrando o caminho. Mas diferentemente dos outros inscritos, eu cheguei a fazer mais de um programa para descobrir que a cifra de criptografia do alfabeto era uma rotação de 13 caracters.

No qualifying, era clara a sua calma. O que te deu essa vantagem sobre os outros competidores?
Eu achei que eu estava nervoso. Primeiro que comecei devagar, depois que o pessoal da organizacao demorou para decidir os nomes dos arquivos e quando decidiram, não nos notificaram. Mas tudo isso faz parte. Fui pegando velocidade e ai me sentindo mais a vontade. A pratica leva a nao cometer gafes comuns como usar float em vez de double. Assim que resolvi os 5 e fiquei só com o ultimo em aberto percebi que estava bem. Dificilmente alguem faria o ultimo sendo que para nao me classificar seria necessario que 12 pessoas fizessem ele. Se voce levar em consideracao que o Brasil inteiro nao resolveu ele quando caiu na prova da ACM, acho que pude me sentir calmo a partir de entao.

Você achou uma boa escolha usarem bugs intocados (da distribuição Debian) como problemas do Insanifying?
Foi genial. Novamente todos os programadores tinham as mesmas ferramentas, cada um com seu background, e foram dados alguns problemas. Resolva como puder. Eu nunca havia feito algo em C de maneira profissional mas mesmo assim minha equipe conseguiu resolver completamente um bug e ainda brincar com os outros (não sei a situação). Nos colocar no mundo real foi bem interessante, divertido e desafiador. Muito desafiador.

A Arena foi novidade pra todos, inclusive para os organizadores. O que você achou da estrutura da competição (e da premiação)?
Erros comuns de primeira vez. Não sabemos direito os motivos pelos atrasos, que achei o unico ponto realmente chato, mas com certeza em uma primeira vez surgem imprevistos. Ano que vem serão outros problemas, mas foi otimo. Uma unica sugestao é aumentar o numero de competidores em todas as fases, mesmo dando mais trabalho, sera bem mais emocionante para todos.

A maioria das universidades tem uma carga horária de matérias de matemática no curso de Bacharelado de em Ciência da Computação muito menor do que a do IME/USP. Você cursa Matemática Aplicada, que tem ainda mais embasamento matemático. Você acha que o seu conhecimento de matemática, provavelmente maior do que a dos outros competidores, influenciou na sua vitória? E como influencia na sua vida profissional?
Acho que minha experiencia profissional contribuiu com a ultima fase, onde desenhamos uma especificacao e um sistema do zero, incluindo testes unitarios. Ja a experiencia no desenvolvimento de software livre (xstream.codehaus.org e paranamer.codehaus.org e vraptor.org) contribuiu para a segunda fase quando começamos a caçar bugs no codigo
de outras pessoas.
Creio que o curso de ciencia de computacao do ime seja o que melhor se adaptaria as necessidades de um bom desenvolvedor, lembrando que nao basta so fazer o curso, eh necessario correr atras de um projeto, participar deles, competir nas maratonas etc para ganhar a experiencia que a faculdade nao da. Mas juntando o racicionio logico que ela prove, com a experiencia pratica do mundo real e de projetos opensource, creio que uma pessoa tera uma boa base para resolver problemas do tipo que resolvemos aqui.
Na vida profissional? Ué, assim como o blog de vocês, me chamam de nerd.

Fora isso, o racicionio logico e a abstração que a pesquisa na area de matematica te da ajuda muito no momento de visualizar o codigo do seu programa e detectar seus pontos fortes e fracos, antes mesmo de encostar no teclado.

Muito obrigado, Guilherme. Parabéns por mais essa vitória!

Creative Commons License
FISL 8.0: Entrevista com Guilherme Silveira, um dos ganhadores da Arena de Cecilia Fernandes está licenciado sob Creative Commons License.