“Boas oportunidades estão aí, ao alcance de todos. Basta nos qualificar. Faça do DCC/UFMG o seu ombro de gigantes”, diz ex-aluno do Departamento

Marconi Lanna entrou para a Universidade Federal de Minas Gerais (UFMG) em 1996, para se graduar em Física. Ao final daquele ano, prestou vestibular novamente, desta vez para o curso de Ciência da Computação, no Departamento de Ciência da Computação (DCC/UFMG). Em 2006, mudou-se para o Canadá, onde fez o mestrado, também em Ciência da Computação, pela University of Ottawa. No DCC/UFMG, participou do projeto de pesquisa SIAM (Sistemas de Informação em Ambientes Móveis), onde foi orientado pelo professor Berthier Ribeiro-Neto. Já para o POC (Projeto Orientado em Computação), intitulado “Sistema Gerenciador de Conteúdo”, foi orientado pelo professor Wagner Meira Jr. Durante o mestrado, foi orientado pelo professor Daniel Amyot, da School of Electrical Engineering and Computer Science, da University of Ottawa. Na pós-graduação, desenvolveu uma interface para uma ferramenta de desenvolvimento de software que, durante testes, permitiu que voluntários concluíssem tarefas, na média, 60% mais rápido e cometendo 80% menos erros.

Atualmente, Marconi trabalha remotamente como engenheiro de software sênior, em uma empresa americana sediada em New York e especializada em serviços de distribuição de conteúdo personalizado entre dispositivos, a Tapad. “Nossos sistemas analisam dados anônimos obtidos através da Internet e de dispositivos inteligentes para determinar algoritmicamente se dois ou mais dispositivos são utilizados pela mesma pessoa. Processamos, atualmente, mais de 10 PB (petabytes) de informação por semana”, explicou o ex-aluno.

Segundo o ex-estudante, o que mais o DCC contribuiu para sua vida pessoal e profissional foi o figurativo: “abrir os olhos”. “Aprendi a programar computadores aos 13 anos de idade utilizando um livro (“dBase para MS-DOS”) emprestado por um vizinho que havia recentemente concluído o curso técnico em informática. Me apaixonei imediatamente pela arte. Era, com o perdão da expressão, como se eu tivesse nascido para aquilo. Aos 15 anos, já comercializava sistemas de automação comercial que eu mesmo havia desenvolvido. Quando chegou a hora de escolher minha carreira no vestibular, muito ingenuamente acreditei que já sabia tudo sobre programação e não teria mais nada a aprender, aí escolhi Física. Obviamente, nunca estive tão equivocado. Todo o curso foi simplesmente fascinante. Há o que sabemos que sabemos, e há o que sabemos que não sabemos. Mas, principalmente, há muito mais o que não sabemos que não sabemos. Mas, principalmente, existem muito mais coisas que sabemos que não sabemos, e o DCC me introduziu a esse vasto universo de aprendizado e descobrimento. ”, contou. 

Segundo o ex-aluno, no DCC/UFMG aprendeu que computadores não são caixas-pretas místicas que funcionam à base de mágica e que por trás de todo grande avanço tecnológico existe sempre uma grande fundamentação teórica, científica, e matemática. “Saber que computadores usam zeros e uns, todos da área sabemos, mas saber exatamente o que esses zeros e uns estão fazendo lá dentro, poucos sabem ou se preocupam em querer saber. Disciplinas como AEDS 2 & 3, Introdução aos Sistemas Lógicos, Organização de Computadores, Software Básico, Sistemas Operacionais, Compiladores, Redes de Computadores, Fundamentos da Teoria da Computação, me ensinaram quais são os “ombros de gigantes” que nos permitem a ver mais longe”, relatou entusiasmado.

Para Marconi, o maior desafio durante os quatro anos no DCC foi conciliar o trabalho e os estudos o curso inteiro. “Nos primeiros semestres, trabalhava à noite, após as aulas, num dos primeiros provedores de acesso à Internet de Belo Horizonte. O principal responsável técnico da empresa era super notívago, e só chegava para começar a trabalhar no meio da tarde, todos os dias. Ter alguém que pudesse trabalhar das 18h às 22h para eles era desejável. O maior problema, para mim, era que a empresa ficava no Sion e atravessar a cidade toda de ônibus me tomava bastante tempo. Mas, depois que consegui uma bolsa de iniciação científica no Departamento, facilitou muito para mim, pois pude passar meus dias inteiros no campus e sem precisar me deslocar tanto”, disse.

Nos últimos semestres da graduação, Marconi trabalhou para uma consultoria desenvolvendo um sistema de gerenciamento de conteúdo para o portal Globo.com. “Aproveitei do fato de que no DCC os semestres eram “intercalados”: os períodos pares, por exemplo, tinham aulas pela manhã, enquanto os períodos ímpares tinham aulas à tarde, para escolher os meus cursos de maneira que pudesse ter aulas somente às segundas e quartas-feiras, o dia inteiro, enquanto trabalhava 10 horas por dia às terças, quintas e sextas-feiras. Num semestre eu fazia, por exemplo, metade do quinto e metade do sexto períodos. No semestre seguinte, a metade que faltou do sexto e mais a metade do sétimo, e assim por diante. Olhando pra trás, me surpreendo com a forma como consegui organizar a minha grade curricular tão efetivamente. Felizmente, a empresa entendia a situação e me permitia a flexibilidade que necessitava. Mas não posso negar, foi um dos períodos mais custosos e cansativos da minha vida. Me recordo que chegava em casa tarde do trabalho, tomava banho, jantava algo leve e rápido e deitava na cama para estudar, lendo até o livro literalmente cair na minha cara, apagar a luz e dormir”, descreveu.

Segundo Marconi, alguns fatos engraçados também ocorreram durante o curso. “Lá pela metade do curso, decidi seguir o conselho de Seth Brundle, o cientista do filme “A Mosca”, cujo guarda-roupas constituía-se apenas de cópias idênticas do mesmo traje: calças, camisas, meias, sapatos, tudo igual para não perder tempo todos os dias decidindo o que vestir. Pois bem, fui à loja da minha marca favorita de camisetas e comprei 12 camisetas idênticas: mesma cor, mesmo modelo, mesmo tudo. Comecei, numa segunda-feira, a usar o meu “mesmo traje” todos os dias. Na quarta-feira daquela primeira semana, estava trabalhando em um dos Laboratórios, quando chega um professor, põe a mão em meu ombro, olhando consternado, e me diz: “Marconi, quanto tempo têm que você está aqui trabalhando? Você não foi em casa ainda nem para tomar um banho?””, contou aos risos.

Fora do DCC/UFMG Marconi  também já viveu algumas situações inusitadas. “Imagino que muitos conheçam o JUnit, popularmente utilizado por desenvolvedores Java para escrever e organizar testes unitários. O que talvez nem todos saibam é que o JUnit foi desenvolvido por Kent Beck e Erich Gamma durante um voo a caminho de uma conferência. Também desenvolvi uma ferramenta durante um voo a caminho de uma conferência. Estava a caminho de Boston para me apresentar em uma conferência técnica, bem no meio do inverno. No aeroporto de Toronto, uma longa fila de aviões aguardavam para terem o gelo removido de suas asas antes da decolagem. Aproveitei o tempo para rever a minha apresentação uma última vez. Eu discursaria sobre técnicas avançadas para se utilizar o sistema de tipos de linguagens fortes e estaticamente, tipificadas visando diminuir o número de testes necessários para cobertura de código. Em resumo, eu demonstrava como codificar no sistema de tipos determinadas asserções de maneira a se eliminar várias classes de erros: se houvesse um erro de lógica no código esse sequer seria aceito pelo compilador, dispensando-se assim a necessidade de escrever e executar determinados tipos de testes. Notem que não estou me referindo a meros erros sintáticos aqui; o compilador seria “treinado” a detectar e rejeitar determinados “bugs” no código. A minha apresentação estava repleta de exemplos de código, cada exemplo quase sempre em três variações: utilizando-se técnicas convencionais, alavancando-se o sistema de tipos e, finalmente, introduzindo-se de propósito um erro lógico para demonstrar que o compilador de fato rejeitaria o código sem a necessidade de se executar testes. Foi quando notei que, para aquela apresentação, o importante não eram os exemplos de código em si, mas sim se o compilador os aceitaria ou rejeitaria. Então pensei: ao invés de esperar que as pessoas, de boa fé, acreditem apenas em minha palavra, sem apresentar provas, não seria melhor se eu pudesse mostrar ao vivo o compilador com suas mensagens de erro? Assim, a princípio considerei manter duas janelas abertas durante a minha apresentação — uma com as transparências e a outra com o compilador – copiando e colando o código de uma para outra. Mas isso seria um pouco árduo e um tanto quanto enfadonho. Então, o ideal seria se tivesse um programa de apresentação que pudesse compilar e executar o código diretamente das transparências? Como a fila de aviões encontrava-se ainda longa, resolvi escrever tal programa ali mesmo”, contou.

Marconi se debruçou no programa e na manhã seguinte a apresentação já estava toda convertida para o novo formato que pudesse executar todos os exemplos de código ao vivo e em frente a uma audiência que, segundo Marconi, lamentavelmente ou não, parecia mais impressionada com a recém-criada ferramenta do que com as técnicas que ele tentava demonstrar. “Fiquei tão motivado com o sucesso da apresentação que adicionei novas funcionalidades ao sistema e publiquei o código no GitHub. Hoje o projeto conta com mais de 400 estrelas e já o vi sendo utilizado por outros palestrantes ou como ferramenta para treinamento em empresas. Sei que não teve o mesmo impacto ou importância que o JUnit, mas em minha defesa o meu voo foi bem mais curto que o deles (risos)”, disse.

Outra situação inusitada vivida por Marconi também ocorreu em uma conferência internacional, dessa vez em Amsterdam.”Minha apresentação era mais modesta desta vez: uma recapitulação de todas as funcionalidades introduzidas pela linguagem Scala nos últimos anos e como utilizá-las. Como essa conferência ocorreu durante o verão, nenhuma nova ferramenta foi desenvolvida enquanto eu aguardava o avião decolar. Pelo lado bom, a plateia finalmente poderia prestar atenção ao que eu estava apresentando. Pelo lado ruim, porém, eu corria sério risco de que alguém prestasse atenção ao que eu estava apresentando. E havia sim, na plateia, pelo menos uma pessoa prestando atenção: Martin Odersky, o criador da linguagem Scala! O que ele estava fazendo lá, sinceramente não sei. A conferência era grande, tínhamos cinco ou seis auditórios apresentando simultaneamente. Falta de opção não era (risos). Mas o que ele imaginou que poderia aprender sobre Scala comigo, também não faço a menor ideia. Seja o que for, ele deve ter gostado: ao final da tarde, fui convidado para ser revisor da terceira edição do seu livro, “Programming in Scala””, contou orgulhoso.

Para os que estão entrando agora — ou querem entrar — para o DCC/UFMG, Marconi tem alguns conselhos “Invistam em si mesmos, no seu conhecimento; aprofundem-se; especializem-se; diferenciem-se. A pandemia mudou o mercado, muitas empresas se abriram ao trabalho remoto. As mudanças recentes no horário de verão tanto no Brasil

quanto nos EUA (se aprovadas) significam que a partir de 2023 o Brasil passará o ano inteiro apenas uma hora à frente da costa leste norte-americana, facilitando a colaboração internacional. Boas oportunidades estão aí, ao alcance de todos. Basta nos qualificar. Faça do DCC/UFMG o seu ombro de gigantes”, concluiu.

Para o professor Wagner, Marconi sempre se mostrou um aluno muito dedicado e muito determinado. “Marconi desistiu da Física para fazer Ciência da Computação e foi para o caminho certo. Sempre demonstrou que amava o que fazia. Apesar de ter feito apenas a graduação na UFMG, pudemos ajudá-lo de forma concreta na sua trajetória, nominalmente no mestrado e numa excepcional carreira fora do país. Fiquei muito feliz em ler todo o seu depoimento e achei interessante o seu emprego atual ter relação com o seu projeto de conclusão de curso que orientei. Mais importante que os fatos em si é a certeza de que suas escolhas sempre foram pautadas pelo amor que tem pela computação, e por tudo que a área possibilita em termos de novas descobertas e desafios”, disse.

Saiba mais sobre o Marconi em https://github.com/marconilanna

Veja a série completa

Acesso por PERFIL

Pular para o conteúdo