O que vou ser quando crescer?

Estou no terceiro ano do Ensino Médio. Isso… aquele ano em que todos os professores na escola querem lhe preparar para o vestibular.

Confesso que o vestibular não é a coisa mais importante que tenho em mente e que há coisas que vocês diriam que tem bem menos importância que vem na frente na minha lista. Mas é melhor não confessar isso. Porque preocuparia minha mãe, minha namorada, minha família, meus professores, todo mundo, que talvez seja mais sábio do que eu por acreditar no futuro que todos acreditam… então é melhor deixar pra lá.

Deixando isso pra lá, vou partir do seguinte ponto: eu vou fazer vestibular no fim do ano. Eu quero passar. Sei lá se passarei! Isso não é problema meu, é da banca que vai corrigir a minha prova e não tô nem aí pra eles. Eu vejo as pessoas nervosas pra isso e não vejo muito sentido. Eu não passo de um número, se eu não passar ninguém vai morrer, o mundo não vai mudar e pode ser até melhor pra eu crescer mais antes de entrar.

Entrar numa universidade é legal, não só pelo aprendizado mas pela experiência de vida.

Creio que a visão de que faculdade é necessária pra um homem pensar é ilógica, conservadora e capitalista. Talvez admitam que não é pra pensar, é necessária pra ganhar dinheiro. Eu não creio que hoje em dia essa lógica seja tão verdadeira não. Mas entrar numa universidade, embora não seja necessária para nenhuma delas, pode ajudar nas duas coisas (pensar e ganhar dinheiro). Por isso, de qualquer maneira, eu quero entrar numa universidade. Eu gosto do ambiente, gosto de ter professores que podem me ajudar a pensar e creio que lá poderei me desenvolver melhor.

Então eu estava pensando em começar a carreira estudando computação. Porque:

  1. Eu gosto disso
  2. Eu sou muito bom nisso
  3. Isso dá dinheiro

Quero fazer ciência da computação desde que aprendi o que é uma faculdade, e isso foi antes da terceira série, aos 9 anos, antes de quando eu fiz o meu primeiro site. Aí minha idéia atual é fazer Ciência da Computação na UNICAMP e talvez tentar transformá-la no meio do ano em Computer Science no MIT. A idéia de fazer na USP também está me gustando bastante. Não sei se é possível fazer vestibular na USP e na UNICAMP. Alguém sabe me responder?

Depois eu penso em fazer filosofia e/ou psicologia, também na UNICAMP ou na USP. Não tem nada a ver com a minha área – não é o que eu quero fazer pra ganhar dinheiro. Isso é ruim?

Mas vou retomar o segundo parágrafo, porque não vou agüentar passar esse texto sem escrever sobre aquilo.

É que você sabe o que é engraçado? Nós queremos mudar o mundo, mas queremos ficar ricos. Quando você me pergunta sobre o meu futuro, eu digo que eu viverei sem problemas financeiros com a Carol e meus filhos, todos seremos felizes… Eu trabalhando em casa (ou em viagens), programando, pensando, escrevendo. Quando você me pergunta sobre o futuro do mundo, eu digo que vai acabar em 50 anos se continuar do jeito que está. O planeta está numa situação alarmante, mas mesmo assim nós continuamos com as nossas atividades normais.

Somos tão egoístas… A minha pergunta é o que vou fazer quando crescer e não o que o mundo vai ser quando eu crescer. E, se sou uma pessoa solidária, que valorizo inclusive os pensamentos daquele filósofo que a maioria da população chama de Deus (um tal de Jesus), não deveria pensar assim.

E é por causa dessa falta de egoísmo que me vem às vezes que eu não me preocupo com a minha faculdade. E aí quem me conhece se preocupa comigo. O mundo não é tão pequeno assim, gente. Eu hoje estou com uma dificuldade gigantesca em ver o mundo dos meus olhos. Talvez eu precise de terapia. Talvez o resto do mundo é que precise. Pra acabar com essa contradição, com essa hipocrisia e com esse egoísmo sem sentido.

No momento não consigo ser epicurista. O que eu quero ver é um mundo melhor. Para todos. Eu não passo de um no meio de seis bilhões. Isso não significa que eu queira ser um mártir; eu quero ser como todos os outros 1/6.000.000.000 (vejam como esse número é grande!) Ou pelo menos um mundo, mesmo que não seja perfeito, mas que exista. Um mundo que não acabe em menos de 100 anos. Talvez eu devesse me mudar para a Venezuela e servir para o presidente Hugo Chávez. Por mais incrível que possa parecer, eu me sentiria bem. Não, não sou socialista. Eu não gosto do socialismo, mas acho melhor que deixar o mundo acabar na mão dos imperialistas ianques.

Eu lutaria contra os Estados Unidos (acho que minha ajuda poderia ser mais útil na inteligência do que no mano-a-mano, mas anyway…). Me sentiria ridículo por estar colocando gravata para mudar o mundo dos engravatados (John Lennon, aprendi com o Reverendo), mas estaria mudando o mundo. Ou será que não devo me preocupar com nada disso, deva me focar só no meu vestibular, viver no meu pequeno mundo, pra fazer minha faculdade de computação e ganhar dinheiro ou mudar o mundo só a base de construção de softwares?

Não que a construção de softwares não possa mudar o mundo. Eu quero mudar o mundo com programas. Os programas são bem menos falhos que homens. Tem gente que me acha imbecil por ser totalmente a favor da substituição de mão-de-obra compulsória por máquinas. Se seu trabalho pode ser feito por máquinas, que seja feito por elas. Elas fazem melhor que você.

Quando o meu professor de física passou uma tarefa pedindo para converter graus de celsius para kelvin, farenheit, etc, etc, etc, eu não fiz. Pelo amor de Google, isso é trabalho pra máquina. Já trabalho pra homem deve ser aquele trabalho criativo, que a inteligência artificial ainda está longe de fazer, porque ainda nós (enquanto homens) não conseguimos criar coisas como cérebros humanos.

De qualquer maneira, é o meu vestibular que vai mudar o mundo? Será que eu devo mesmo me preocupar em passar? Eu já disse que gosto da universidade e de seu ambiente e que quero estudar, mas eu deveria me preocupar da maneira que as pessoas inteligentes se preocupam? O meu futuro é tão importante assim pra vocês, pro mundo? E se for, é por causa da sua graduação? Acho que não.

Aí no meio de tudo isso, mergulhado nesses pensamentos sobre o meu futuro e o futuro do mundo, chegou a professora ao meu lado e me perguntou hoje na aula: você já sabe que curso você vai fazer?

Eu sei lá o que eu quero. Eu, eu, eu, eu, eu… Nem sei quem eu sou, como eu vou saber quem eu quero ser? Desisto. Eu respondi a professora, com a cara mais normal que consegui representar: “Ciência da Computação na UNICAMP”. Na minha cabeça, eu concluí: “E enquanto isso, um monte de gente perde o futuro, os ianques continuam com seus genocídios e o nosso mundo chega mais perto do seu fim.” Mas isso com certeza não é nem um pouco importante perto da minha graduação.

Tag: Objetivos para 2007

O reverendo e o Felipe me convidaram pra participar da tag que está rolando por aí sobre os objetivos pra 2007. O Ibrahim disse que precisam ser cinco objetivos que podem se concretizar, então não vão ser tão interessantes como poderiam. Eu já postei “objetivos” como previsões para 2007, mas vão aqui de novo pra participar da brincadeira… e agora já estão atualizados.

Objetivo #1 – Blogs

Ganhar 50 dólares por mês com Adsense e 15 reais por mês com o Buscapé. É um objetivo bem “pé-no-chão”, que eu pretendo que aconteça desde janeiro. Em dezembro eu quero estar ganhando no mínimo 200 dólares por mês com o Adsense e 60 reais por mês com o Buscapé.

Objetivo #2 – Competições

Participar da Olimpíada Internacional de Informática na Croácia. Eu já tento há três anos e já cheguei perto de conseguir participar de uma olimpíada internacional em 2005. Creio que esse ano seja um bom momento para eu chegar lá, só preciso estudar mais.

Participar do Desafio Nacional Acadêmico e realizar o desafio com um desempenho melhor do que o do ano passado.

Objetivo #3 – Vestibular

Passar no vestibular na UNICAMP.

Objetivo #4 – Mal Vicioso

Fazer o Mal Vicioso deixar de ser um monólogo, ele deve se tornar um local de discussões. Todo comentário é um complemento importante ao post! Será que convém mudar o seu tema? Não sei, mas acho que ele deve ter mais interação.

Objetivo #5 – Todos os meus convidados devem aceitar a tag

Meu quinto objetivo é os convidados aceitarem a tag e publicarem seus cinco objetivos. E os convidados são…

(em ordem alfabética, não de importância ou algo do gênero)

  • Bruno Torres, um cara que leio há muito tempo. Escreve muito bem e fala de programação, desenvolvimento web e Linux.
  • Carol Peters. Além de a única mulher na minha lista, é uma filósofa, uma pessoa perfeita, cheia de idéias e pensamentos que visam melhorar o nosso mundo. A representação do divino na Terra. Tenho elogios pra mais de um post inteiro.
  • César Kawakami, excelente matemático e programador. Conheci ele nos cursos da OBI. Manja muito dessas ciências exatas e acabei de ver que ele passou no ITA. Parabéns!
  • Elcio Ferreira. Eu comecei a ler o fecha-TAG em 2005 pelo Tableless. Hoje é um dos meus blogs preferidos. O Elcio, além de falar sobre desenvolvimento web, fala bastante sobre as vantagens do Linux.
  • Vinicius Silva. Eu não sou muito de jogar, mas adoro ler sobre as novidades na tecnologia dos video-games. Eu sempre penso: “tenho que comprar um desses!”, mas nunca tenho tempo (tempo é dinheiro) pra isso. De qualquer maneira, o Oito Bits é um excelente site sobre jogos que eu gosto muito de ler e acho que ainda não estava participando da tag.

Curso da Seletiva IOI 2006: Primeiro Dia

Estou hospedado na casa do meu irmão, em Campinas, desde ontem de manhã (viajei domingo a noite de ônibus). Hoje foi o primeiro dia do curso preparatório para a seletiva da IOI2006, que começou às 9h00 devagarinho.

O dia hoje serviu para “nivelar” os participantes e treinar um pouquinho a resolução de problemas. De manhã, algumas pessoas tiveram uma aula sobre estruturas de dados, grafos e o básico de programação dinâmica e outras (a maioria) resolveram três problemas da Universidade de Valladollid:

412 – Pi

EnunciadoMinha Solução

Não é um problema muito complexo, mas eu usava um algoritmo muito demorado para determinar se dois números tinham ou não um fator comum, que não passava por tempo limite excedido. Então, o Fábio Dias Moreira nos passou uma propriedade bem interessante de MDC (Máximo Divisor Comum):

mdc(x, y) = mdc(x%y, y)

(onde o % é o resto da divisão, no C)

Aí dá pra fazer uma função recursiva mdc bem rápida, que eu apliquei na [minha solução][3].

441 – Lotto

EnunciadoMinha Solução

Esse problema nem tem muito o que comentar. Implementação de dois minutos… hehehe… Eu podia ter feito uma função recursiva pra ficar um pouco mais “decente” (e poder mudar de 6 para outro número no futuro), mas não tinha necessidade, então ficou assim mesmo (e passou de primeira no site).

543 – Goldbach’s Conjecture

EnunciadoMinha Solução

O objetivo é provar a Conjectura de Goldbach para todos os pares menores que 1000000. Meu programa ainda não roda dentro do tempo, mas depois vou continuar a adapta-lo. Eu posso, por exemplo, ir fazendo a média entre o maior possível e o menor possível (aquele “algoritmo” que usamos quando alguém fala: “Pensei num número de 1 a 100. Tente advinhar…”) ao invés desses loops, o que já vai tornar o programa mais rápido (não sei se o suficiente).

Nesse problema, o Fábio me lembrou do Crivo de Eratóstenes. Bem interessante, nunca tinha implementado. :)


Provavelmente pela primeira vez, o almoço dos participantes do curso não foi no “bandeijão”, mas sim num restaurante chique perto do IC. Achei bem legal… Além de andar menos, o ambiente é melhor e a comida também.

Durante a tarde, o Fábio nos passou o algoritmo de Longest Common Subsequence (esse eu já sabia… hehehe) e depois o algoritmo que resolve o problema Subseqüências que caiu na prova da segunda fase (esse um pouquinho mais complicado!). Esse segundo eu pretendo implementar e depois até fazer um artigo sobre…

Depois, o Fábio nos deu algumas dicas, principalmente sobre os cálculos problemáticos que o computador faz com pontos flutuantes (algo bem interessante, que eu não entendia porque acontecia). Por exemplo, quando criamos um double x=0.1 o seu valor não é 0.1, mas sim o 1/1010 (em binário) que dá uma dízima periódica! E isso não é muito agradável, pode gerar até loops infinitos… Então, ele sugeriu que criássemos uma função para comparar dois números reais, com um código como esse:

/*
USO: Substituir...
x == y <==> cmp(x, y) == 0
x != y <==> cmp(x, y) != 0
x < y <==> cmp(x, y) < 0
x ### y <==> cmp(x, y) ### y

O "###" é "qualquer-coisa". Hehehe...
*/

#include <math.h>

const double EPS = 1.0e-10

int cmp(double x, double y) {
	if (fabs(x-y)<EPS) {
		return 0;
	} else if (x>y) {
		return 1;
	} else {
		return -1;
	}
}

Foi um bom ponto de partida legal, começamos de leve. Ainda não sei sobre o quê será a aula de amanhã…

Seletiva IOI

Neste ano vão haver quatro provas para selecionar os quatro participantes que irão representar o Brasil na Olimpíada Internacional de Informática em agosto, no México. As três primeiras, identificadas como “testes” no calendário da seletiva, terão apenas um problema e durarão duas horas cada uma. A última será no domingo, às 7h45min, terá três questões e durará cinco horas (pô, vou perder o comecinho do jogo de Brasil contra Austrália!). Achei legal esse método, mas como o César Kawakami disse: dessa maneira, não treinamos a estratégia, que é algo importante para a prova da IOI.


Por enquanto é só. Se der tempo, pretendo colocar um post por dia sobre o curso até o final dessa semana. :)

Curso de Programação Avançada na UNICAMP

Hoje chega ao fim o Curso de Programação Avançada dos premiados na OBI2005 aqui na UNICAMP. Durante essa semana aprendi bastante e não tive tempo pra fóruns, e-mail e IMs. Então, se você foi um cara que “ficou no vácuo”, saiba que não foi uma coisa intencional. Mas vamos ao que interessa!

Achei muito legal o curso e vou ter coisas pra estudar até a OBI do ano que vem. Vou falar um pouco sobre a aula teórica de cada dia.

Complexidade (Prof. Ricardo Dahab)

Segunda-feira tivemos uma aula que abordou principalmente a complexidade de algoritmos. Entendi as classes e como calcular custos dos algoritmos, além de abordar algumas técnicas de backtracking e “divisão e conquista”. Durante a tarde, fizemos o problema “Ilha da Lógica”, do site da Universidade de Valadollid. Um problema simples, mas meio chato de implementar.

Grafos (Prof. David Sotelo)

Terça-feira tivemos uma aula sobre algoritmos em grafos, começando de definições básicas, algoritmos de busca e depois falando sobre alguns algoritmos como Prim e Dijkstra. Foi uma aula proveitosa a partir da metade… :) A tarde, resolvi o problema Graph Connectivity da UVA.

Programação Dinâmica (Prof. Cid C. de Souza)

Quarta-feira tivemos o que foi, na minha opinião, a melhor aula da semana. Com slides muito bem feitos, o prof. Cid conseguiu finalmente com que eu entendesse programação dinâmica e saí conhecendo algoritmos clássicos e entendendo o “esquema”. A tarde, resolvi o problema “Compromise” da UVA.

Geometria Computacional (Prof. Walter Mascarenhas)

Quinta-feira tivemos aula sobre geometria computacional. Achei complicado e não entendi nada… Depois tenho que estudar com mais calma em casa.

Grafos Avançados (Prof. Cláudio Luquesi)

Hoje tive uma aula bem legal sobre fluxos em rede em que eu aprendi o algoritmo básico e várias variações. Foi uma excelente aula.

Seletiva IOI

Ontem fiz a primeira parte da prova seletiva para a Olimpíada Internacional de Informática. Ela tinha três problemas, resolvi os três, mas para nenhum deles fiz o melhor tempo. Amanhã será feita a segunda parte e depois que sair o resultado, eu comento sobre os problemas e como resolvi.

Acho que tenho alguma chance, mas… nunca se sabe. Tudo depende de amanhã. Eu fui bem na prova de ontem e acho que se ir assim amanhã talvez consiga uma vaga na Polônia. :D

Solução dos Problemas

Resolvi vários problemas aqui e marquei vários outros para resolver. Assim que eu chegar em casa, eu posto eles no site (alguns eu já postei) e comento mais.

Resto das Férias

Amanhã, depois da Seletiva, o curso acaba e devo ir pra São Paulo amanhã mesmo ou domingo. Ficarei lá uma semana com meu irmão Bruno curtindo shows e visitando minha tia e meu primo.

Observações

A gente tá tendo aula prática em outro lugar, não no Instituto de Computação onde foi ano passado. Lá era bem melhor e tinha coisas como Mutt pra facilitar a vida. Aqui sempre que a gente dá logout é tudo deletado na nossa home e isso torna tudo muito chato. Então tô trabalhando só em SSH pro IC da Unicamp (todos têm uma senha lá também) ou pro meu site mesmo. :)

Ah, e São Paulo é tri-campeão da Libertadores! 4×0!

E mais uma coisa que eu tinha esquecido, e também aprendi aqui com um monitor: o scanf aceita ERs no primeiro argumento. :) Isso é baita útil…

Simplificando…

Aqui tá bem legal, mas não tô com tempo pra detalhar nada. :D Então, até mais. :)

© 2005–2020 Tiago Madeira