Sunday, October 1, 2017

livros

(esse post estah em construcao)

Esse post eh parte de uma serie.

OK, por agora, voce jah deve ter percebido que a grande maioria das coisas que eu aprendi eu digeri mesmo quando eu encontrei algo escrito (ou na academia ou em livros).

Aqui vao alguns livros que eu li durante a minha vida que tiveram um papel muito grande na definicao do meu carater/intelecto.

Essa lista eh um trabalho em progresso: conforme as lembracas vao voltando eu vou adicionando aqui.

Infancia

  • Monteiro Lobato
  • Gemas do mundo (meu livro favorito quando crianca)
  • A anatomia humana ilustrada
  • Enciclopedias diversas
  • Turma da Monica
  • Mad
  • Asterix & Obelix

Adolescencia

  • Noi, I ragazzi dello Zoo di Berlino, Christianne F
  • Oceano Mare, Alessandro Baricco
  • O Universo Elegante, Brian Green
  • The Brief History of Time, Hawking
  • Artificial Intelligence
  • Chess, openings, endgames, etc
  • Cartas aa um jovem cientista
  • Computer Viruses
  • Hackers
  • Lock picking
  • Visual Basic
  • HTML
  • Utopia
  • A Arte da Guerra
  • Maquiavel
  • Schopenhauer
  • Carlos Drummond de Andrade
  • Fernando Pessoa
  • Biografias: Euclides, Galileo, Aristoteles, Platao

Faculdade

  • Just for Fun, Linus
  • Os Problemas do Milenio
  • O Ultimo Teorema de Fermat
  • Graph Theory
  • Computer Architecture
  • Intel x86 specification
  • Digital Circuits
  • The Bazaar and the Cathedral

Trabalho

  • Outliers, Gladwell
  • Drive, Pink
  • Freakonomics, 
  • Mindset
  • On Leadership, HBR
  • On Managing people, HBR
  • Why greatness cannot be planned
  • Blink
  • Grit
  • Derek Sivers
  • Too good to be ignored
  • Brain Rules
  • Poker theory
  • Design Patterns

Familia

  • Casais ricos enriquecem juntos
  • Investimentos inteligentes
  • The North American Pediatrics Association Guide
  • What to expect when you are expecting
  • Brain rules for Babies
  • Sleep Training
  • Quem ama educa
  • What to expect: the first year

voce nao eh imortal

OK, vai parecer obvio, mas de boa essa daqui demora para cair: voce nao sou imortal. E, surpresa, os seus familiares/amigos tambem nao.

Tudo bem, obvio, claro, mas de boa, essa eh uma licao meio dificil de digerir por completo.

Por exemplo, entre os 30-40 anos:

  • eh muito mais dificil emagrecer
  • eh muito mais dificil acordar bem de uma ressaca
  • eh muito mais dificil fazer exercicio
  • chances sao de que alguns parentes seus jah morreram
  • se voce nao passar fio dental seus dentes literalmente comecam a cair
  • se voce nao passar filtro solar voce tem chances reais de ter cancer de pele
  • se voce comer que nem um louco voce tem chances reais de ter colesterol/pressao alta
  • chances sao de que voce jah passou por alguma emergencia medica

Aos 35 anos, as implicacoes dessa ideia sao um pouco recentes para mim, mas a minha intuicao eh de que vao fazer parte da minha vida nos proximos anos.

Sobre Budismo

Uma observacao interessante aqui: se voce tiver a oportunidade, leia sobre religioes que acreditam em re-encarnacao (e.g. budismo e espiritsmo), as pessoas que acreditam em re-encarnacao tem uma relacao muito mais saudavel com relacao aa vida no que diz respeito aa mortalidade do que as que nao (eu casei com uma pessoa que acredita em re-encarnacao).

Nessa proposicao, a sua vida eh feita de uma serie de encarnacoes/re-encarnacoes, entao existe uma angustia/ansiedade muito menor durante aa vida sobre se separar das pessoas que voce gosta ou sobre voce continuar aprendendo coisas novas.

Eh dificil saber o que eh verdade e o que nao eh, mas enfim, saiba quais sao as suas opcoes.

Eu, por exemplo, escrevo extensamente para poder repassar o que eu aprendi nessa vida para quem quer que ache essas passagens uteis.

Life Hacks part II


(ainda sobre construcao)

Ha 10 anos atras, eu comecei a colecionar uma serie de ideas que me foram uteis entre os 20 e os 30 anos, que eu chamei de Life Hacks.

Hoje, com 35 anos, eu continuo aprendendo coisas muito legais e surpreendemente diferentes das coisas que me foram uteis entre os 20-30 anos. Dessa forma, aqui vai Life Hacks Part II, uma serie de coisas que eu aprendi / to aprendendo que me sao uteis agora entre os 30-40 anos.

De novo, chances sao de que nada disso eh util para um publico geral. Sao passagens para um grupo muito especifico de pessoas em fases muito especificas da vida, chances sao de que nada disso se aplique para voce.

  1. Self imposed blocks
  2. Lideranca nao eh para mim
  3. Generosidade multiplica
  4. Sobre ter o seu primeiro emprego aos 35 anos
  5. Sobre estar vulneravel
  6. Livros
  7. Bazares e catedrais
  8. Serendipidade, plataformas e produtos
  9. Voce nao eh imortal
  10. Comece com "por que?"
  11. Sequenciamento e missao, comece com a resposta certa e ande pra tras, stepping stones
  12. O problema do ovo e da galinha

Se voce nao sabe quais sao suas opcoes voce nao tem nenhuma

Em 2016 eu e a dani estavamos esperando o Leo. Durante esse periodo, a gente leu muito em preparacao e uma das coisas que a gente fez foi um curso para pais novos no hospital que a gente ia ter o Leo.

No curso eles explicavam de forma geral como o parto ia ser, a anatomia da gestante, a sequencia de eventos, etc. Foi uma experiencia muito legal, mas o que me chamou a atencao mais no curso foi uma coisa escrita no nosso panfleto:

Se voce nao sabe quais sao as suas opcoes voce nao tem nenhuma

A ideia era de que, ao longo do parto, uma serie de escolhas e decisoes iam se apresentar (e.g. a cabeca pode estar pra cima, a dilatacao pode parar de evoluir, a taxa de oxigeneo pode cair abruptamente, etc) e, se voce nao tiver feito a sua licao de casa antes do parto, alguem vai decidir por voce (e.g. o medico).

Na vida, vao existir uma serie de escolhas/decisoes para voce fazer e, se voce nao tiver feito a sua licao de casa e souber os trade-offs, os riscos envolvidos e os beneficios possiveis, alguem vai tomar essa decisao por voce.

Nao tomar nenhuma decisao eh uma decisao em si

Quando adulto, voce perde a habilidade de botar a culpa nas outras pessoas. Se acontece alguma coisa na sua vida, nao importa muito de quem eh a culpa.

Puxe a responsabilidade para voce, estude suas opcoes e tome uma posicao informada. Aqui vao algumas circumstancias que se voce souber as suas opcoes voce nao tem nenhuma:

  • com quem voce vai casar/namorar (e.g. se voce for gay, saiba que estamos em 2017 e que voce tem opcoes. se sua familia nao gostar/aprovar, entenda as consequencias/riscos de estar com alguem assim.)
  • qual profissao voce vai escolher (e.g. se voce jah fez faculdade e se arrependeu, saiba quais sao as suas opcoes de mudar de carreira. se voce tem pais que querem que voce faca tal curso, entenda os riscos involvidos)
  • qual carreira voce vai escolher (e.g. academia? industria? empreendedorismo? saiba exatemente quais sao os custos/beneficios de cada uma dessas escolhas)
  • qual pais voce vai morar (e.g. brasil? EUA? marte? leia muito sobre imigracao)

O que for que seja, saiba identificar as decisoes importantes que voce vai tomar na vida, e sente a bunda na cadeira para entender como que cada uma dessas opcoes podem evoluir ao longo dos anos.

Do. Or do not do. There is no try. -- yoda

The Game of Life


Esse post eh parte de uma serie.

Quando eu era crianca, eu gostava muito de jogar um jogo chamado "O Jogo Da Vida", que parecia mais ou menos assim:


Era um tabuleiro em que cada jogador era responsavel por um peao. Aa cada rodada, um jogador rodava a roda e andava o numero de passos indicado na roda (de 1 aa 10 passos, aparentemente).

Eh engracado como, apesar de ser um jogo de crianca, muitas coisas voce soh vai digerir depois de adulto. Por exemplo:

  • Ganha quem tiver mais boas experiencias, nao quem chegar primeiro. Por exemplo, se voce tirar 10 toda vez que girar a roda voce vai passar na frente de todo mundo, mas isso nao significa que quando voce chegar no fim voce vai ganhar o jogo: voce acumulou menos pontos/experiencias no caminho (por exemplo, no meio do caminho, tinha uma casa que chamada "parabens voce teve filhos, ganhe 10 pontos", e, se voce passar essa casa voce simplesmente deixa de ganhar esses pontos).
  • Existem algumas bifurcacoes que voce precisa tomar riscos calculados. Por exemplo, tinha uma bifurcacao que voce podia ou (a) ir para uma direcao mais segura e ter uma carreira mais segura (e.g. funcionario publico) mas menos gratificante (nada contra funcionario publico, nem lembra o que era) ou (b) ir para uma direcao mais arriscada e talvez pegar uma carreira mais compensadora (e.g. se nao me engano, medicos eram os profissionais que ganhavam mais no jogo).
  • Mesmo com uma posicao inicial ruim (e.g. se voce caisse com uma profissao ruim), voce conseguia ainda ao longo do jogo virar o jogo se voce tivesse a melhor atitude.
  • As suas conquistas sao adquiridas, nao natas. Todo mundo nasce igual (o que nao reflete necessariamente a realidade, mas enfim, eh um jogo de crianca) e vai ao longo do jogo caindo nos quadrados e tomando as decisoes cujas consequencias vao se compondo durante o jogo (e.g. comprar uma casa, fazer faculdade, ter filhos, etc).
  • Se voce nao sabe quais sao as suas opcoes, voce nao tem nenhuma. Por exemplo, em diversas bifurcacoes e escolhas que voce tem que fazer no jogo, o jogador que entende melhor as opcoes, os riscos e as consequencias tomam as melhores decisoes e aa longo prazo ganham (i.e. o valor esperado das decisoes feitas sao maiores).
  • e assim por diante ...

O meu jogo da vida

A vida das pessoas tem uma variancia muito grande, e eh bastante dificil generalizar como as pessoas vao evoluindo, entao aqui vai mais ou menos a sequencia que essas ideias foram sendo digeridas na minha vida:

  1. Aos 17 anos, durante o meu intercambio, nao lembro exatamente como, me caiu a ficha de que era util eu puxar a responsabilidade para mim.
  2. Aos 18 anos, da primeira licao, deriva rapido de que a inteligencia eh adquirida e nao nata, e me foi util, por exemplo, na hora de eu estudar para o vestibular: passar no vestibular eh uma questao de sorte, mas engracado como quanto mais eu estudo mais sorte eu tenho nos simulados :)
  3. Entre os 19-24 anos, eu estive na UNICAMP, e, aprendi o valor da educacao formal.
  4. No terceiro ano da faculdade, com uns 22 anos, eu tive a intuicao de que anunciar os seus planos te torna menos habil aa conquista-los (e.g. poucas pessoas sabiam que eu estava aplicando para um estagio no Google).
  5. No ultimo ano da faculdade, aos 23-24 anos, eu percebi que eu tinha uma vontade e cara de pau acima da media para tentar coisas mais arriscadas.
  6. Assim que eu entrei no google, aos 25 anos de idade, eu bati de cara em bastante coisa e aprendi sobre power distance index.
  7. Ainda nos primeiros anos do google tambem, eu aprendi que eh mais facil pedir perdao do que permissao.
  8. Aprender sobre proposito, maestria e autonomia me foi util no comeco da carreira.
  9. Mais pros 28 anos, eu fui aprendendo sobre a importancia do trabalho.
  10. Aos 30 anos, eu fui aprendendo sobre lideranca.
  11. Aos 33 anos, eu formei uma opiniao muito firme sobre o balanco entre as minhas contribuicoes individuais e as minhas contribuicoes derivadas.
  12. Aos 33 anos, ao ter meu primeiro filho, eu ouvi o conceito de que se voce nao saber quais sao as suas opcoes voce nao tem nenhuma, numa aula de como iria ser na hora do parto (e quais intervencoes medicas iam ser colocadas aa nossa disposicao).
  13. Hoje, aos 35 anos, eu estou aprendendo sobre isso.

Ao contrario da escola/faculdade, as aulas sao dadas meio que fora de ordem, sob demanda, conforme as circumstancias da vida vao se apresentando. Chances sao de que voce vai ter experiencias em ordens completamente arbitrarias, mas fica ai como as coisas foram se apresentando para mim.




Saturday, September 30, 2017

Voce tem a vida inteira para ser velho


Esse post faz parte de uma serie.

Ao longo da vida voce vai encontrar uma serie de pessoas com pressa, com vontade de fazer algumas coisas mais rapido ou mais cedo.

Aqui vao algumas situacoes comuns:

- terminar a faculdade em menos tempo
- ser promovido / enriquecer em menos tempo
- fazer sexo, casar ou ter filhos em menos tempo
- usar drogas com menos idade
- dar presentes grandes para a namorada/namorado cedo
- conhecer a Europa inteira em um mes

Na minha experiencia, olhando em retrospecto, nenhuma dessas escolhas fazem sentido para mim: voce tem a vida inteira para ser velho e fazer as coisas com X anos ou X + 5 anos nao faz a menor diferenca no final do dia.

A faculdade, por exemplo, eh uma das melhores fases da vida, eu nao faco ideia de porque alguem acha uma boa ideia encurtar essa fase.

Viajar tambem, nao faco ideia porque alguem gastaria viagens para a vida inteira em um mes (e.g. eu morei um ano na Italia e nao sai dela, conhecendo cada vilarejo pequeno. depois de adulto, voltei para a Italia e passei um mes soh no norte dela tambem).

Entre os 25-35 anos, muitos dos seus amigos vao tentar se promover / enriquer rapido tambem. Eh dificil eu prever se essa eh uma estrategia boa ou nao (porque eu to literalmente vivendo ela no momento, com 35 anos agora), mas eu sou bem deliberado tambem no quanto eu permito o que o trabalho faca parte da minha vida e o quanto eu quero controlar o meu crescimento profissional com muita calma.

Essa idade correlaciona com o comeco de casamento e o comeco de montar uma familia, e, na minha intuicao, as chances sao de que voce vai derivar mais felicidade de manter um balanco saudavel entre a sua familia / trabalho do que pender o balanco e esperar felicidade de enriquecimento ou crescimento profissional.

Ganha quem faz mais profundo, nao mais rapido

De forma geral, faca as coisas com calma, tome o seu tempo e aproveite muito cada uma dessas fases. Cada uma delas tem muito a oferecer, e, na minha opiniao, ganha quem vai mais profundo, nao mais rapido.

PS Vale notar que isso nao eh uma permissao para ser vagabundo / preguicoso. Mas, de novo, se voce estah lendo essa serie, chances sao de que nada disso se aplica aa voce se voce for preguicoso.





Thursday, March 9, 2017

Just for fun

Essa daqui eh o draft que eu usei para uma palestra para alunos da graduacao da UNICAMP alguns anos atras. Aqui seguem os slides e a gravacao.

A palestra seguiu mais ou menos assim ...

Muito cedo na minha vida, eu li o Livro do Linus Torvalds "Just for fun". O livro eh na forma de uma entrevista com o Linus, inventor do Linux, sobre como foi o processo de desenvolvimento do kernel.

O entrevistador queria entender qual foi a motivacao que fez com que o kernel fosse desenvolvido, e o Linus sempre voltava ao mesmo ponto: "Just for fun". Tudo que ele queria era se divertir.

Xadrez, Unicamp Fighters e Virus

Assim que eu entrei na Unicamp, eu me apaixonei por inteligencia artificial. Dentre os diversos assuntos, eu me interessei bastante por chess programming (como fazer um programa de computador jogar xadrez).

O negocio era absolutemente emocionante: como que um computador conseguia jogar xadrez???!!! Como q uma maquina era capaz de jogar melhor do que eu?! Se eu mesmo tinha programado, como isso era possivel?

Os anos passaram e minha paixao pelo xadrez continuou. Nos 5 anos da Unicamp, eu trabalhei em diversos projetos relacionados ao xadrez, e aa cada aula q eu fazia eu adicionava alguma coisa ao meu programa (e.g. chess UI via sockets).

Nunca eu me perguntei se isso ia ter futuro. Eu soh estava me divertindo :)

Durante os primeiros anos, tudo o que eu queria saber era de entender como que um computador conseguia jogar xadrez. Logo no primeiro ano, antes de ter feito Anal II, eu jah tinha lido praticamente tudo aa respeito de busca em arvores porque o minimax e o alpha-beta search sao baseados nisso. Jah tinha visto sockets e multi-threading, porque para eu participar dos campeonatos de programacao eu precisava desses conceitos. Redes neurais e algoritimos evolutivos estavam na ponta da lingua.

Tudo isso porque eu tava querendo me divertir.

Meu primeiro estagio

Olha soh que engracado como as coisas se encadearam.

Lah pelo quarto ano da faculdade, um cara do ITA veio dar uma palestra na UNICAMP sobre desenvolvimento de jogos. Como eu trabalhava muito com xadrez, fui conferir. Acabei conhecendo o apresentador e no final da palestra enviei um email para ele. Pronto, ali tinha acabado de descolar o meu primeiro estagio.

Eu nunca achei que iam me pagar para escrever codigo em Inteligencia Artificial


Trabalhei por 3 meses durante as ferias com inteligencia artificial, escrevendo algoritimos para xadrez, ligue os pontos e othelo. Por incrivel que pareca, o jogo ainda estah no ar!

Unicamp Fighters

Assim que eu terminei o meu estagio, eu escutei alguem falar sobre um concurso de projetos do Google e eu enviei uma proposta para um projeto: uma biblioteca para executar RPCs via Instant Messaging.




Foi isso que me levou aa conhecer o Chris DiBona e o Peter Saint Andre.

Google Summer Of Code

Acabei ganhando o concurso de projeto, sendo o primeiro brasileiro aa terminar o Google Summer Of Code. Massa :)

Quando acabou o concurso de projetos, o orkut tava bombando e eu tinha acabado de aprender sobre Jabber. Como eu sempre gostei de linux, nao lembro exatamente porque, resolvi escrever um sistema de arquivos :) Just for fun :)

Mais ou menos na mesma epoca eu comecei a gostar muito de desenvolvimento de kernel e eu comecei a escrever o UnicampOS. Um sistema operacional, afe, essa foi loucura. Nao vou entrar muito em detalhes no UnicampOS, mas lembre dele porque ele vai aparecer depois.

Escrevi um sistema de arquivos que pegava a sua lista de amigos e "montava" ela como se fosse um sistema de arquivos. Por incrivel que pareca tambem, o negocio ainda tah sendo usado :)



Assim que acabou o concurso de projeto, um dos engenheiros envolvidos pediu para a gente enviar um curriculo para ele submeter para o processo de estagio.

Como eu tinha trabalhado com o jabber e o orkut tava bombando, por um motivo ou outro, eu coloquei como que isso se aplicaria para o orkut.

Foi isso que me levou a conhecer o Patrick Barry.

Minha primeira entrevista tecnica

O Patrick era um engenheiro do Google que tava procurando estagiarios. Hoje somos grandes amigos.

O Patrick achou o meu curriculo porque tinha a string "orkut" escrita nele. Ele procurou no banco de dados e achou o meu curriculo.

Foi o Patrick tambem que fez a minha primeira entrevista de estagio. Ela foi assim.

Lembra que lah em cima eu falei sobre xadrez? Pois eh, a minha primeira pergunta de estagio foi sobre algoritimos de propagacao em grafos, uma generalizacao do alpha-beta search.

Lembra que lah em cima eu falei sobre sistemas operacionais? Pois eh, o meu segundo entrevistador pergontou sobre read/write locks e politicas de exclusao mutua.

Acabei passando na entrevista de estagio e fui para a California fazer um estagio de 3 meses.

Eu estava no quinto ano da faculdade e sai em julho para fazer o estagio.

Do or do not do. There is no try. -- yoda

Durante o estagio, eu percebi o tipo de oportunidade que estava sendo apresentada para mim.

Eu entrei em contato com pessoas altamente qualificadas e o Vale do Silicio era excepcional. Um lugar realmente impressionante.

Me preparando para o estagio, entrei na lista dos estagiarios do ano. Soh tinha email vindo de @stanford.edu, @mit.edu e @berkeley.edu. Eu achava que eu tava fudido.

Mas nao importava, eu ia fazer o meu melhor. Mas acima de tudo, eu ia me divertir :)

Aconteceu de eu fazer um estagio absolutamente excepcional. Eu era de longe o melhor estagiario do grupo (de 5-6 estagiarios, literalmente todos de Stanford, MIT e Harvard).

If you don't know what your options are, you don't have any.

No final do estagio, me fizeram uma proposta de trabalho integral.

Voltei para o Brasil com a cabeca 5 vezes maior.

Antes de me formar, enviei um email para uns colegas de trabalho sobre os meus planos. Mandei para eles os links de submissao de curriculos do Google, da Intel, da AMD, do MIT, de Stanford e Berkeley.

Eu sabia que era minha responsabilidade entender e explorar as minhas proprias opcoes.

Ideas are worthless. Execution is all that matters.

Em 2008 eu me mudei para a California e comecei a minha carreira profissional.

Me senti como me senti quando entrei na UNICAMP: tao perdido quanto igualmente apaixonado. Aprendi muita coisa, algumas botei por escrito aqui.

Aqui sao as coisas que eu fiz no Google (link pro Google Easter Eggs).

Continuei trabalhando com coisas nao relacionadas ao meu trabalho. Se tinha dado certo na faculdade, porque nao ia dar certo no trabalho tambem neh?

Em 2009 eu escrevi mais codigo para fora do Google do que para dentro do Google.

Eu escrevi de tudo. Desde sistemas de arquivos distribuidos ateh ferramentas de refactoracao de codigo automaticas.

E claro, escrevi mais um programa que jogava xadrez.

Soh que dessa vez, eu tinha um cluster de 1000 maquinas para brincar :)

Durante um tempo, eu escrevia e re-escrevia algoritimos de xadrez, majoritariamente em cima de mapreduces para computacao distribuida.

Foi isso que me levou aa conhecer o Ken Thompson (e deixar de conhecer a Britney Spears).

De volta para o Xadrez

Um belo dia, numa lista de discussao dentro do Google, o Ken Thompson posta algumas perguntas sobre chess programming. Ken Thompson??!! Como assim o Ken Thompson? O cara que invetou o UNIX?

Mandei um email para ele e ele marcou uma reuniao comigo.

A parte engracada eh que a reuniao aconteceu durante um show que teve da Brittney Spears dentro do Google. Todos meus amigos fora do Google perguntavam se eu ia no show, e eu claro que nao ia trocar uma reuniao com Ken por um show com a Brittney.

Quando a dani perguntou se eu tinha ido, e eu falei q nao, ela respondeu "Ken o que??!!"!

Hoje trabalho com um protocolo de redes.

Eh um pouco dificil explicar em poucas palavras, mas eh na mesma area de escopo que WSDL (soh que para Resource Oriented Architectures).

Eu escrevi mais sobre isso aqui e aqui.

Foi isso que me levou a conhecer o Vint Cerf.

Um protocolo de redes inter-planetaria

Um certo dia, o Vint Cerf enviou um email para uma lista que eu acompanho, perguntando se existiam especialistas no Google sobre SOAP/WSDL e XML.

Como eu tava trabalhando na area, e eu sou fanzao do Vint, chutei o balde e resolvi enviar um email para ele.

No mesmo dia, ele me responde: "Oi Samuel, eu estou trabalhando num protocolo de redes entre planetas e a gente tah com um problema para resolver aqui que tah dificil de resolver. O grupo estah tendendo aa usar SOAP/WSDL, mas eu quero tentar convence-los de que isso eh uma mah ideia. O desafio aqui eh que por causa da rotacao dos planetas muitos pacotes sao perdidos e os protocolos atuais nao levam esse tipo de caracteristica em consideracao.".

Eu nao sabia se eu ria ou se eu chorava :)

Foi isso. Aqui vao mais algumas coisas que eu aprendi ao longo dos anos.