Sunday, November 3, 2013

Voce nao eh tao importante assim

... o mundo anda pra frente mesmo sem a sua bencao.

(eu aprendi essa recentemente, entao minha caracterizacao desse problema pode estar ainda meio turva)

A ideia geral eh de que pessoas inteligentes nao vao esperar pela sua bencao para fazer as coisas acontecerem. E isso eh bom.

Eu estive em duas situacoes no trabalho na qual a minha expectativa era de que as pessoas viessem correndo atras de mim procurando momentos de sabedoria e permissao soh porque eu tinha trabalhado num problema relacionado no passado.


Quando ninguem veio ou nao se importavam com a minha opiniao/permissao, eu entrei num ciclo nao construtivo: comecei a torcer para que elas falhassem.

Eu me importava mais com “quem” (eu, no caso) resolvesse o problema e menos com que o problema efetivamente fosse resolvido.

Demorou, mas aprendi minha licao: pessoas inteligentes vao fazer as coisas acontecerem com ou sem mim. Elas tem a expectativa de que as pessoas que se importam em resolver o problema (mais do que "quem" leva o credito) se envolvem no que precisa ser feito.

Se voce tah no seu canto emburrado torcendo para alguem falhar, chances sao de que voce se importa mais em ser reconhecido do que em efetivamente resolver o problema.

Ship and Iterate

... ou porque setar a expectativa de que falhar eh parte de acertar.

Se voce nao estiver envergonhado do seu lancamento, voce lancou tarde demais.

No vale do silicio, existe uma expectativa muito grande de que voce vai ter de errar muitas vezes antes de acertar. Errar eh normal e faz parte do processo.

"Achavamos que precisariamos de 10-15 titulos antes de acertar.", disse Nicklas, um dos desenvolvedores do Angry Birds. Levaram 51.

Voce erra 100% das tacadas que voce nao tenta 

Errar faz tanto parte do processo, que se voce nao estiver errando o suficiente, voce nao estah tentando o suficiente: se voce lancou um produto perfeito, voce lancou ele tarde demais.


Aa longo prazo, nao adianta muito voce nao ter feito nenhuma besteira mas tambem nao ter feito progresso. Sete a expectativa de que voce vai errar, e de isso eh normal e desejavel.

Eh melhor feito na pratica do que perfeito no papel.

A volte me chiedo cosa stiamo aspettando. Che sia troppo tardi madame.

Poucos trechos de livros me marcaram como esse.

Ah, como eh facil a gente se auto boicotar.

O trecho diz:

"- As vezes me pergunto o que estamos esperando."
"- Que seja tarde demais, madame.".

Eh *muito* facil cair na falsa premissa de que eh melhor nao-ter-feito-e-nao-ter-falhado, do que ter-tentado-e-falhado. Tao facil, que chances sao de que voce voce vai escolher ficar parado quando tem a oportunidade de agir.

Voce vai esperar ser tarde demais.

Tuesday, October 29, 2013

Eh mais facil pedir perdao que permissao


... ou como voce deve parar de dar a desculpa de que voce estah bloqueado nos outros. 

Esse post é parte de uma serie de posts.

A ideia geral eh de que se voce estiver bem intencionado, os seus errors vao ser mais incrementais do que disruptivos e voce consegue arrumar a rota com o andar da carruagem. Lembre-se: ficar parado/bloqueado *tambem* eh uma decisao.

Existem muito poucos erros que voce possa fazer individualmente que te afete de forma permanente (mas cuidado: eles existem. erros como por exemplo projetar um sistema de seguranca falho, vazar informacoes privadas de usuarios, ir contra  lei deliberadamente, ou trair a confianca das pessoas, etc).

Botar a carruagem para andar eh que eh dificil, nao arrumar a rota (em fisica, isso se chama friccao estatica vs dinamica).

Dois pontos importantes a serem feitos.

Primeiro, isso nao eh desculpa para voce fazer besteiras adoidado. Soh significa que quando voce ve alguma coisa sendo feita errada e voce tem uma base concreta/objetiva para discordar, voce tem que agir.

Segundo, ao longo do tempo, voce vai ter que comecar a ficar bom em pedir perdao. Seja sincero, admita o seu erro e peca desculpas. Bola pra frente.

There is no secret sauce

... ou a falsa premissa de que as pessoas chegam onde elas chegam por "sorte".

Esse post é parte de uma serie de posts.


Existem muito menos pessoas em boas posicoes sem ter o merito do que voce imagina. Se voce discorda, pronto, essa eh a licao que voce precisa aprender :)

There is no secret sauce. -- kung fu panda


Literalmente. Nao existe. De novo, nao existe. Para progredir, voce tem que trabalhar. Ponto.

Periodicamente voce vai achar que as outras pessoas tem algum segredo. Coisas como "conexoes com o prefeito", "amizades na empresa", "familia influente", "MIT no curriculo", etc.

Elas nao tem. Elas simplesmente trabalham mais do que voce e desistem depois.

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

O unico jeito de perder eh desistir. Enquanto voce estiver trabalhando, errar eh parte de acertar.



Re-avalie o quao dificil sao fazer as coisas e bote a mao na massa. Se voce estah para desistir, as chances sao de que voce subestimou o quao dificil eh resolver o problema.

Faca. Ou nao faca. Nao me venha com tentar.

A inteligencia eh adquirida, nao nata


Um dos conceitos mais libertadores que aprendi foi o de que a inteligencia eh adquirida, nao nata.

Essa ideia eh libertadora porque te bota no banco do motorista. Significa que nao importa de onde voce saiu ou aonde voce quer chegar, voce pilota e escolhe chegar lah. Cada curva que voce fez no meio do caminho voce escolheu para que lado voce quis ir e o seu destino dependente quase que exclusivamente do encadeamento dessas decisoes/curvas que voce escolheu ao longo do caminho.

Em geral, na duvida entre dois caminhos, pergunte-se: “O que faria se eu nao tivesse preguica?” e quase que invariavalmente voce vai escolher o caminho certo.

Nao fale pro seu filho que ele nasceu inteligente. Associe o sucesso dele ao trabalho.

Eh normal que pessoas em certos graus de desenvolvimento intelectual nao entendam esse conceito, dependendo do tipo de conteudo e cultura que voce foi exposto desde crianca.

A premissa eh de que voce pode ter crescido em uma familia na qual a mensagem que voce recebia era de que a inteligencia eh uma propriedade nata, como a cor dos seus cabelos, olhos e altura.

Algumas criancas crescem ouvindo “muito bem filho,voce vai tirar isso de letra, voce eh muito inteligente!!” ou “nossa filho, voce vai ganhar esse jogo, voce eh muito bom no futebol!!!” que gera a associacao de que “acertar ou ganhar” eh um resultado por si soh nato e nao o estado atual de um processo em andamento.

Essas criancas viram adultos que nao correrm riscos e tem medo de errar: elas crescem achando que para ser inteligente tem que parecer “facil” e que se parecer dificil e voce tiver que trabalhar muito significa que voce nao eh muito inteligente. Quando elas se encontram com um problema que exige que elas se esforcem elas fogem desses problemas.

Eu quero criar os meus filhos falando “Bom trabalho! Voce viu como se voce estudar voce resolve os problemas?” ou “Parabens filho! Voce percebeu como os seus treinos te tornaram mais rapido no jogo?” porque eu faco questao que meu filho associe o sucesso como o resultado de um processo no qual ele tem todo o controle e nao algo que ele tenha de torcer para ter nascido com.

Sete a expectativa com as pessoas que interagem com voce de que eh guarantido que no processo de resolver problemas grandes voce vai errar e trabalhe com pessoas que entendam que isso eh normal e esperado e parte do processo de resolver problemas grandes.

Opinioes objetivas e construtiva = oportunidade de progresso

Um dos sinais de pessoas maduras eh o quao abertas elas estao para receber opinioes, sugestoes e recomendacao de outras pessoas (aa ponto delas deliberadamente e ativamente pedir a opiniao dos outros).

Igualmente importante eh saber distinguir entre feedback objetivo e construtivo e feedback mal fundamentado. Em geral, eu levo muito mais aa serio feedback que eh concreto, acionavel e baseado em fatos.

Sunday, October 27, 2013

Identificar problemas nao eh dificil

... nem solucoes :( A unica coisa que importa eh ir lah e resolver.

  1. Esse post eh parte de uma serie de posts.

Algumas vezes a gente sinceramente quer ajudar. Algumas vezes a gente acha que tah contribuinido alguma coisa apontando para o problema ou identificando uma solucao. Quando voce chegar nesse ponto, tente de novo: isso nao eh bom o suficiente.

Se voce identificou o problema, sugeriu uma solucao mas nada se concretizou em acao voce nao adicionou nada ao progresso do problema. Trabalho = forca vs deslocamento. Voce precisa deslocar massa para realizar trabalho.

Em algum ponto da sua vida voce vai cometer esse erro e de uma forma ou outra voce vai precisar aprender essa licao.

  1. Eh relativamente facil identificar esse caso, eh soh sentar em qualquer reuniao com mais do que 2 pessoas que se extendeu por mais do que 20 minutos e agregar todas as frases que se seguem como “O problema do mundo sao os politicos”, “A solucao eh investir em educacao”, “O meu chefe nao contribui”, “O transito tah foda”, “A poluicao na cidade eh muito alta e deveria ser resolvida assim” que nao seguem diretamente de acao.

    Como oferecer ajuda

  1. Lembre: trabalho = forca vs deslocamento. Se voce nao vai causar deslocamento executando, sua ajuda nao eh tao importante assim para quem tah querendo resolver o problema.

Nao pergunte como ajudar. Ajude.

  1. A sua primeira tarefa quando voce for tentar ajudar eh descobrir como. Duas observacoes importantes:

1) Nao eh tao dificil saber o que fazer. Um bom criterio para achar algo eh comecar procurando pelas tarefas menos glamourosas: tem sempre menos pessoas nessas tarefas.
2) Quando voce pergunta "como posso ajudar?" voce tah interrompendo quem jah tah trabalhando. Voce eh um fardo para o todo.

Tres perguntas para saber se sua ajuda vai ser construtiva

  1. Antes de tentar ajudar, se pergunte tres coisas:

  1. “Eu quero ajudar essa pessoa ou aa mim?”,
  1. “Eu estou com preguica?” e 
  1. “Eu me importo com quem vai levar o credito?”.

    Se a resposta for sim para qualquer uma dessas perguntas, nao ofereca ajuda.

Necessidade e suficiencia

... ou como detectar quando alguem tah com preguica.

Esse post eh parte de uma serie de posts.

Necessidade eh um conjunto de pre-requisitos de coisas que precisam ser feitas. Suficiencia eh um superconjunto da uniao de todas as coisas necessarias e algumas coisas que nao sao obrigatoriamente necessarias.

Se voce encontrar um conjunto suficiente para resolver o seu problema significa que voce agora sabe como resolver esse problema. Nao significa que voce vai resolver o problema no menor numero de passos ou com o menor esforco, soh significa que voce conseguiu achar um jeito de resolver o problema dentre muitos.

Se voce encontrar um conjunto necessario para resolver um problema significa que voce sabe quais passos dar que voce absolutamente precisa dar, mas nao significa que quando voce terminar de dar esses passos o seu problema vai se resolver. Eh bom achar coisas necessarias porque voce pode fazer elas o quanto antes voce quiser, porque voce nao importa em qual ordem voce executar: as coisas necessarias sao necessarias independente do que voce precisar fazer no futuro.

As vezes voce se encontra com alguns problemas tao importantes ou dificeis que se voce achar uma suficiencia voce jah fica muito feliz e o custo de executar a suficiencia eh tao baixo perto do beneficio da solucao que voce nao se importa em definir quais partes da sua suficiencia sao necessarias.

Suficiencia eh a solucao para o problema se voce colocar a preguica de lado e estar disposto a fazer algumas coisas que nao sao criticamente necessarias a mais.

Pura sorte!

Quando vim para os EUA eu percebi o quao critico era eu conseguir tirar um visto. Lah estava eu, 25 anos, tendo passado nas entrevistas do Google e terminado minha faculdade, dependendo de um embaixador americano (que nao tinha nenhum incentivo para me ajudar) aprovar um visto de trabalho americano.

Eu sabia que eu conseguir vir para o Vale do Silicio trabalhar para o Google ia ser muito importante para a minha carreira e que eu resolver esse problema estava no caminho critico. O problema: eu tava na mao do cara.

Durante semanas eu estudei sobre imigracao americana e os casos dos vistos americanos concedidos ou negados para brasileiros. Eu entrei em contato com diversas pessoas que tiveram seus vistos negados em situacoes parecidas e coletei uma series de notas a respeito. A estrategia que eu adotei na hora da entrevista do visto foi a de coletar o maior numero de documentos que pudessem estar a meu favor na entrevista (diplomas, imposto de renda, depositos bancarios, investimentos, certidoes de nascimento/casamento, viagens passadas, etc). No dia da entrevista, eu estava absolutamente preparado para o que ia vir com uma pasta de documentos muito grande (eu ainda carrego ela com todos os meus documentos para a renovacao dos meus vistos).

No dia da entrevista, profundamente concentrado e focado, o entrevistador me faz algumas perguntas, pede alguns documentos e aprova meu visto. Ufa. Pronto, resolvi minha vida pelos proximos 5 anos.

Minha esposa vira pra mim e diz “viu, nao disse que ia ser facil e dar tudo bem?” e eu respondo “eh, ufa, que sorte neh?”.

Se o problema for importante, concentre-se em achar uma suficiencia e comece a trabalhar nela ao inves de querer resolver soh as necessidades.

Correlacao e causalidade

... ou como aprender a ignorar boa parte dos argumentos mal construidos.

Esse post eh parte de uma serie de posts.

Conforme voce for estudando, aprendendendo e trabalhando, existe uma distincao muito importante que quanto mais cedo voce entender mais facil sua vida vai se tornar: correlacao e causalidade.

Fatos correlacionados sao fatos que ocorrem frequentemente juntos. Por exemplo, dentes amarelos e cancer de pulmao sao fatos correlacionados: frequentemente, pessoas com dentes amarelos tem cancer de pulmao e pessoas com cancer de pulmao tem dentes amarelos. Mas nem um nem outro causam o outro.

Causalidade entre fatos eh uma afirmacao mais forte, que associa a causa de um fato ao outro. Por exemplo, fumar causa dentes amarelos e causa cancer de pulmao.

Essa distincao eh importante porque em alguns momentos voce vai ouvir conselhos que sao correlacionados mas nao causais e eh importante voce estar com os seu radar de baboseiras ligado para detectar a diferenca.

Um bom exemplo eh o entendimento sobre qual o impacto da faculdade e carreira que voce vai escolher no seu sucesso como uma correlaciocao e nao causalidade.

Voce tem que entender muito claramente de que, frequentemente, pessoas formadas em faculdades/carreiras boas (e.g. unicamp, usp) sao bem sucedidas e vice versa, mas voce nao pode achar que eh uma relacao causal e esperar que o fato de voce ter feito uma faculdade boa vai magicamente te tornar bem sucedido.

Funciona para o outro lado tambem: se voce nao se formou numa faculdade boa nao implica que voce nao consegue ter uma carreira de sucesso. Fazer uma faculdade boa e ter uma carreira de sucesso sao correlacionados porque acontecem frequentemente juntos, mas uma nao causa a outra.

Autonomia, Maestria e Proposito

Esse post eh parte de uma serie de posts.

Um dia desses fizeram um estudo sobre o impacto do aumento de salario na produtividade de engenheiros. Surpreendentemente, a partir de determinada faixa salarial, aumentar o salario dos engenheiros os tornava *menos* produtivos! Voce ganha mais e produz menos! Como?

A partir dessa pesquisa, descobriram que existem dois tipos de motivacoes que funcionam para casos muito especificos de trabalho: os motivadores se-entao e os motivadores agora-que.

Os primeiros sao motivadores classicos: se voce comer os seus legumes entao deixo voce comer a sobremesa; se voce se comportar depois eu deixo voce assistir tv; se voce trabalhar 8 horas por dia eu te pago seu salario.



O que descobriram foi de que esses motivadores soh funcionam bem para tarefas nao mecanicas, manuais, repetitivas. Nao funcionam para tarefas intelectuais, inovadoras e imaginativas como por exemplo projetar coisas.

Entraram ai entao os segundos motivadores, os motivadores agora-que. Esses motivadores acontecem apos o fato e o beneficiado nao espera ganhar ele: agora que voce resolveu esse problema, vou te dar um bonus.

Minha mae sempre foi muito sabia

Soh agora que eu percebedo que o que ela era mesmo era estudada.

Lembro claramente a posicao dela com relacao aos pais que prometiam ou insinuavam que dariam carros para os filhos se eles passassem no vestibular. Ali, ela estava claramente falando: “meu filho precisa querer passar no vestibular por conta propria, para o seu proprio bem. ele nao tem que querer ganhar um carro, ele tem que querer construir uma carreira.”. Com ou sem a intuicao (jah imagino ela lendo isso e falando “foi tudo sorte meu filho. o que foi engracado eh que quanto mais eu estudava mais sorte eu tinha nas escolhas na educacao dos meus filhos :)”), ela estava tirando motivadores se-entao do processo de estudar para passar no vestibular e criando motivadores agora-que. 

Em retrospecto, agora eu entendo porque "agora-que" eu passei no vestibular meus pais me incentivaram aa viajar para Buzios logo depois com meus amigos sem meus pais nunca terem tocado no assunto antes do vestibular.

Se voce quer que o seu filho passe no vestibular, nao ofereca um carro para ele: passar no vestibular eh uma tarefa criativa e precisa de motivadores agora-que.

Just for fun

Muito cedo na minha vida eu li um livro sobre o desenvolvimento do kernel do linux, chamado Just For Fun.

O livro em si nao era dos melhores, mas a mensagem que se repetia durante o livro inteiro era brilhante.

Num formato de documentario, o entrevistador fazia perguntas para o Linus querendo entender como foi o processo de desenvolvimento do kernel e quais eram as motivacoes, cuja resposta era invariavelmente “just for fun”. Por que alguem gastaria tanto tempo escrevendo codigo durante as madrugadas e publicasse tudo de graca? Just for fun. Just for fun.

Para trabalhos que exigem um certo nivel de habilidades cognitivas, existem tres fatores que afetam a produtividade das pessoas: autonomia, maestria e proposito. Autonomia eh o nosso desejo de sermos auto dirigidos, de dirigir as nossas proprias vidas (20% project no google). Maestria eh nosso desejo de melhorar, aprender (just for fun, wikipedia, open source).  Proposito eh nosso desejo de trabalhar em coisas que importem, que inspirem as pessoas.


A proxima vez que voce nao estiver conseguindo convencer alguem a fazer algo que voce acha importante ser feito, entenda melhor as diferentes teorias de motivacao.

No seu trabalho, trabalhe em coisas Just For Fun: eventualmente coisas boas vao acontecer.

Wednesday, October 23, 2013

Minha Entrevista no Google

Esse daqui é um email que eu escrevei e mandei para 5 pessoas assim que eu terminei a minha entrevista de estágio que fiz por telefone em 2006, enquanto eu estava no quinto ano da faculdade.

Ao longo dos anos, conforme a galera ia se aplicando para entrevistar no google, eu mandava para o pessoal um log da minha entrevista para dar uma noção do nível de preparo que se espera. Pelo menos 70+ pessoas já receberam esse email diretamente por mim.

Eu escrevi separadamente algumas dicas de como se preparar para o processo de entrevista do Google aqui.

Essa daqui foi a minha entrevista de estágio. A minha entrevista para engenheiro foi feita por 4 engenheiros (3 reviewers ao longo do estágio e 1 pessoal) e eu não botei no papel as perguntas que foram feitas :(

As perguntas que me fizeram já são relativamente conhecidas publicamente, e o Google me autorizou publicar esse log aqui.

Subject: Entrevista com o Google

Ae galera !!!


       Puta que pariu, acabei de sair de uma entrevista com o Google, e estou te repassando esse email  para falar da minha experiência que talvez seja importante pra vocês durante alguma entrevista de trabalho ...


       Porra, o baguio foi foda, os negos chutaram o balde !! hehehe !!!

       Olha só as perguntas que me fizeram :

       Entrevistador 1


       1) Entrevistador : No orkut, vc tem o negócio de quando você está na página de uma pessoa, o orkut mostra o "caminho" entre você e esta pessoa ( Samuel -> Aloisio -> Julia -> Beto 03 ). Como achar o caminho mínimo, e qual a ordem do custo ?

           Eu : primeira idéia : depth first search
           Entrevistador : qual o problema ?
           Eu : estouro de memória
           Eu : dijstra, O( n ** depth )
           Entrevistador : Descreva dijistra e analise o custo. O que é n ?
           Eu : O grau de "relacionamentos" médio de pessoas.
           ( descrevo dijistra e calculo a ordem O() )
           Entrevistador : existe algorítimo melhor
           Minha resposta : melhor que dijistra ?
           Entrevistador : sim. Esqueça o "Algorithims Text Book" e pense como o grafo está apresentado.
           Eu : heurísticas. Procurar primeiro pessoas em comum, etc.
           Entrevistador : sem usar heurísticas.
           Eu : ( droga ! hehe ) 

           Pensei,  pensei, pensei, e cheguei em um O( n ** depth / 2 ) com um dijistra bi direcional search ( do Beto03 aa mim, e de mim ao Beto03. Para quando encontra alguém em comum no meio ). É isso que eles fazem.

       2) Entrevistador : Imagina q vc tem dois vetores de USER IDS ordenados, representando os amigos de duas pessoas. Como você faria para achar os amigos em comum ( intersecção dos vetores )

           Eu : Um primeiro approach que funciona é procurar para todos os usuários do array 1 no array 2,  mas provavelmente isso não vai te satisfazer.
           Entrevistador : Sim, você pode fazer melhor. Mas só por curiosidade, qual a ordem desse algorítimo.
           Eu : n * m
           Entrevistador : certo. Faça melhor do que isso.
           Eu : Pra cada elemento de n, procure em m com uma busca binária. 
           Entrevistador : perfeito. Na verdade, é isso que a gente usa na maioria dos casos aqui no Orkut. Qual o custo disso ?
           Eu : puta véio ... hehe ... humm ... ávore binária ... linear no primeiro vetor .... humm ... n * log2 m
           Entrevistador : perfeito. Melhore o primeiro algoritímo.
           Eu : Bom, como os vetores estão ordenados, você pode parar qnd o valor q vc tá procurando já é maior do que voce tá comparando.
           Entrevistador : Ok. Custo ?
           Eu : no pior caso, n * m
           Entrevistador : Ok. Dá pra você fazer ainda melhor.
           Eu : hummm .... bom, você pode parar também quando o valor que você tá procurando é menor do que o q você tá comparando (vetor ordenado). Além disso, você pode manter dois ponteiros, e continuar do lugar onde você parou da última vez.
           Entrevistador :  perfeito. Custo ?
           Eu : n + m
           Entrevistador : Ok. Agora me diga, em quais situações seria melhor vc usar a primeira versão ( árvore binária ) e em qual circunstância seria melhor vc usar a segunda ?
           depois de alguns chutes
           Eu : quando m fica muito grande. n + m > n log m
           Entrevistador : perfeito ! Na verdade, é isso que a gente acaba fazendo aqui no orkut também.
           Comenta alguma coisa sobre o orkut. Comenta alguma coisa sobre o google. Pede minhas sugestões sobre algumas coisas.

           Entrevistador 2

           me pergunta a respeito do Sinapse ( minha engine de xadrez ), da minha implementação de RPC sobre a rede jabber, sobre o meu sistema operacional, e sobre um componente que eu escrevi para o jabber.

           Entrevistador : Você conhece a notação de fatorial ?
           Eu : sim
           Entrevistador : Ok. No resultado de fatorial ( n ), como você faria para calcular o número de zeros à direita ( trailling zeroes ) do resultado sem calcular o fatorial ? Imagina que n pode ser bastante grande ...
           Eu : ( em voz baixa : " puta que pariu ! ") ...
           depois de um tempo tentando entender o enunciado ...
           Eu : Peraí, deixa eu ver se eu entendi ... f ( 5 ) = 1 2 3 4 5 = 120 . Então, temos um zero à direita. É isso que voce quer ?
           Entrevistador : sim
           Eu : ( em voz baixa : " puta véio ! " )
           Eu : pensando ... 2 * 5 = 10 ...
           Eu : pensando ... 4 * 5 = 20 ... 4 * 25 = 100 ....
           Eu : Ok ... se vc contar o número de duplas de números pares e potências de 5 e de 10, você terá o seu resultado ( par, potência de 5 e 10 ). Para cada potência n > 1, conte n vezes.
           Entrevistador : perfeito. Você está esquecendo de alguma coisa, que provavelmente só vai conseguir enxergar quando montar direito o algorítimo, mas está bom.
           Eu : ufa

           Entrevistador : Agora, vc está acostumado com aplicações multi trheaded ?
           Eu : sim. Vi na graduação, e já debuguei muito código ao escrever o micro kernel do unicampOS.
           Entrevistador : Ok. Me diga a definição de read locks e write locks.
           Eu : read locks, são locks shared. vários processos podem pegar, contanto que não tenho um write lock no objeto. write locks são locks exclusivos : um processo só pode pegar qnd ninguém tem nem shared nem x locks.
           Entrevistador : Me de um exemplo de situação onde ocorrem dead locks.
           Eu : grafo de espera ( wait graph ) cíclico, vários processos, vários resources
           Entrevistador : Me diga mais ...
           Eu :
                   processo 1               processo 2
                   W(A)                         W(B)
                   R(B)                           R(A)
                   context switch depois de p1 W(A) e p2 depois de W(B).
           Entrevistador : como antecipar isso ?
           Eu : 2 phase lock

           conversamos sobre outras coisas ... ele me disse que o google ficou interessado em algumas das coisas que eu escrevi durante a graduação ... e acabou !

           É isso ! Bom, espero que se vocês forem fazer uma entrevista vcs estejam mais preparados ( eu não sabia que era uma entrevista teórica/técnica ... pensei que fosse mais uma coisa pessoal do que técnica ... ) e que se saiam bem !!!

           Repassem para quem vocês acharem interessante,

           Abraços, mel

Friday, October 18, 2013

A diferença entre genótipo e fenótipo

A expectativa durante a sua vida é de que você aprenda, evolua e mostre progresso no seus desenvolvimento intelectual e moral.

Esse post é parte de uma serie de posts.

Uma etapa importante nesse processo é o entendiento da diferença entre genótipo e fenótipo: as coisas que não você pode e as coisas que você pode mudar.

Você não pode se limitar pelas coisas que você não pode mudar (por exemplo, seu genótipo). Não importa se você é japonês, americano, brasileiro, italiano, africado, branco, índio, negro, bonito, feio, filho do eike batista ou de um alcólatra, alto, baixo, gordo, magro, macaco ou ser humano. OK, se você for macaco talvez algumas dessas coisas não se apliquem. De resto, pronto, foi assim que você nasceu: bola pra frente.

Dessa forma, igualmente importante de saber distinguir as coisas que você *não pode* mudar  (por exemplo, seus genes) é saber identificar as coisas que você *pode* mudar (e.g. sua atitude).

Power Distance Index

Assim que eu entrei no Google, eu percebia que tinha alguma coisa de estranho: eu me sentia bastante desajeitado ao conversar com as pessoas.

Eu tinha duas hipóteses: (1) a de que a galera do google estava num nível técnico muito mais alto do que o meu na UNICAMP ou (2) a minha habilidade de comunicação oral em inglês estava me puxando pra trás. Tanto (1) quanto (2) eram acionáveis (ufa, nao era do meu genotipo!). Se a hipótese (1) fosse certa, era só uma questão de tempo de eu ganhar experiência nas tecnologias/conceitos usados. A hipótese (2) era um pouco menos definida, porque era de natureza não técnica.

Eu resolvi trabalhar nas duas hipóteses. Enquanto eu ganhava experiência e ia me promovendo, eu comecei a estudar inglês de uma forma sistematizada. Por meses, eu gastava mais tempo estudando a língua inglesa mais do que eu gastava no meu trabalho como engenheiro. Fiz cursos em stanford. Fiz cursos de liderança e comunicação. Li boa parte da literatura disponível à respeito. Um dos conceitos mais úteis que eu aprendi nesse processo foi o da diferença de discuso entre as sociedades.

Existem estudos que analisam como as diferentes sociedades se comunicam. Por exemplo, os americanos comecam os seus argumentos pelo resultado/conclusao e vao ao longo do discurso explicando o porque. Os orientais (que acho que eh o meu estilo), querem que o seu ouvinte chegue na mesma conclusao ao mesmo tempo, e vao dando voltas em espiral ateh chegarem no ponto central juntos. Os semitas fazem bursts do comeco ao fim que vao incrementalmente adicionando informacao/detalhes no seus discursos.


Assim que eu li esses estudos, as coisas começaram a fazer mais sentido (eu me identifico com o estilo oriental e meus companheiros de trabalho são majoritariamente do estilo inglês). Mas mesmo depois de quase um ano estudando a língua, eu ainda não sentia que eu estava no meu nível natural de confiança em discussões técnicas, e eu desconfiava que era não-técnico o motivo.

Numa das vindas para o Brasil, no avião eu estava lendo um livro (Outliers, Malcolm Gladwell) e a ficha caiu completamente: fui introduzido ao conceito de PDI (power distance index) e tudo fez sentido para mim. O PDI é um índice que analisa as atitudades de uma sociedade com relação à hierarquia, especificamente medindo numericamente o quanto a sociedade respeita uma autoridade.

Dessa forma, nos paises com PDI baixo, a distância emocional entre patrões e subordinados é relativamente pequena e a expectativa dos subordinados com relação aos patrões é baixa, e a tomada de atitude é esperada pelo subordinado. Já nos paises com PDI alto, a dependência dos subordinados com os patrões é alta e a iniciativa é de cima para baixo.

Por que isso importa? Porque eu, brasileiro, venho de um pais com um dos índices mais altos de PDI (69) e estava trabalhando nos EUA, um dos paises com PDI mais baixos (40).




Nesse sentido, se levantar e falar que você discorda das coisas independente das diferencas de níveis nos EUA não é só encorajado mas é também esperado: se você não estiver fazendo, você não está trabalhando direito. Se alguma coisa estiver errada, avise, independente do seu nível ou do seu interlocutor.

Uma vez indentificado o problema, e entendendo de que não era genético (mas cultural) resolve-lo ficou muito mais fácil. Li mais sobre PDI e sobre as formas de discurso e hoje me sinto profundamente a vontade.

Ainda bem que PDI era parte do meu fenótipo e não do meu genotipo. Se você não gosta de onde você está, mexa-se: você não é uma árvore.

Se voce acha que educacao eh caro tente a ignorancia

Educacao eh uma daquelas coisas que voce tem que levar como centrais na sua vida. Eh uma das poucas coisas que ninguem consegue roubar de voce: uma vez adquirida, nao existe absolutamente nada que um ladrao possa fazer para tirar de voce a sua eduacao formal.

Esse post eh parte de uma serie de posts.

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

Um caso recente sobre como a eduacao formal te torna uma pessoa mais habil aa tomar escolhas melhores foi o parto do meu primeiro filho. Tanto eu como minha esposa lemos pra lah de 6-7 livros a respeito de criancas (da concepcao, gravidez, parto, amamentacao ateh as teorias de educacao de criancas ateh 5 anos de idade) e frequentamos diversos cursos (os hospitais locais davam cursos gratuitos).

Num desses cursos, o tema era como o procedimento do parto ia ser. Tanto eu como minha esposa estavamos super anciosos e preocupados com relacao ao parto, porque, francamente, o baguio eh tenso. 

No curso as diversas intervencoes medicas foram introduzidas (e.g. a epidural, a cesaria, os indutores, a quebra da bolsa provocada, os sugadores aa vacuo, etc) mas o que me chamou mais a atencao foi uma frase no slide da enfermeira apresentando: “se voce nao souber quais sao as suas opcoes, voce nao tem nenhuma”.

O que ela quis dizer foi: as opcoes vao ser colocadas na frente de voce e se voce nao souber a diferenca, os beneficios e os riscos entre cada intervencao alguem que sabe vai tomar essa decisao para voce (no caso, ela quis se referir ao medico).

No final, o parto da minha esposa foi relativamente longo (o Leo estava com a cabeca virada) e tanto eu como minha esposa estavamos profundamente concentrados e conscientes de cada estagio/etapa e o que cada dado significava no que diz respeito aa riscos/beneficios.

Nao vou dizer que foi facil, mas posso dizer que foi certamente um processo “claro”, sob o nosso controle e “deliberado”. O leo nasceu na ultima tentativa antes da minha esposa ser levada para a sala de cirurgia para fazer uma cesaria.

Ainda bem, porque eu sabia o que uma cesaria implicaria. Eu sabia as minhas opcoes.

Passar no vestibular eh uma questao de sorte. o engracado eh que quanto mais eu estudo mais sorte eu tenho!


Na minha epoca de cursinho eu ia muito bem nos simulados e quando as pessoas perguntavam pra mim qual era a minha estrategia eu falava: “sorte.” seguido de “o engracado eh que estudar me dah uma sorte incrivel!”.

Eu estudava provavelmente mais do que a mediana dos alunos e eu fazia refazia as provas dos anos anteriores em casa tentando estimar o meu progresso antes da prova. Quando chegava na hora do simulado, eu tinha uma nocao muito boa do quanto era a minha expectativa de quanto eu ia tirar. O mesmo aconteceu no vestibular, eu tinha uma nocao muito objetiva sobre o quanto eu deveria tirar.

Como voce moveria o monte Fuji?

Durante o meu estagio no Google, eu morei com um colega que ateh hoje eh meu amigo. Eu fazia a minha graduacao na UNICAMP na epoca e ele o mestrado dele na UCLA. Eu era bom de sistemas e ele era bom de algoritimos. Durante os 3 meses de estagio, eu trabalhava de dia e de noite eu e ele estudavamos para a entrevista que a gente sabia que ia acontecer no final do nosso estagio. Eu li 3-4 livros de algoritimos, resolvi inumeros exercicios durantes os 3 meses, procurei exercicios na internet. No dia da entrevista, eu estava muito consciente do quao bem eu deveria ir.


O parto do Leo, o vestibular e a minha entrevista de emprego para o Google sao os meus exemplos canonicos da metodologia de educacao formal (tambem conhecida como “senta a bunda na cadeira e estuda, po”) afetando diretamente a minha habilidade de tomar decisoes boas.


Thursday, October 17, 2013

Control-Z

Entenda sobre gerencia de risco e use a seu favor. Entenda que voce pode errar para os dois lados, e que as chances sao de que voce vai errar para o lado conservador.

Esse post eh parte de uma serie de posts.

A minha experiencia eh de que as pessoas nao lidam bem com o desconhecido por falta de informacao e de que elas tomam escolhas erradas (veja o post anterior sobre o sucesso ser definido primariamente pelo encadeamento de boas escolhas) pro lado mais conservador do que liberal.

Se, colocado na frente de um problema com variaveis desconhecidas ou nao deterministico, voce decide nao tomar uma decisao voce precisa entender muito claramente de que o ato de nao fazer nada eh por si soh uma decisao: a decisao de nao fazer nada e nao aproveitar a oportunidade de progresso.

Eu gosto do seguinte criterio para medir se eu acho que voce tah correndo muito risco ou nao: se voce nao estiver fazendo cagada periodicamente, voce nao estah tentando resolver um problema dificil o suficiente; se voce estiver sangrando agora e seu para-quedas tah pendurado numa arvore, *talvez* esteja na hora de voce dar uma maneirada :)


Esse criterio eh importante, porque voce nao pode terminar a vida tendo resolvido soh problemas triviais e bem conhecidos. A expectativa de crescimento e progresso eh de que voce invariavelmente faca uma cagada de vez em quando, e se isso nao estiver acontecendo eh porque voce nao estah resolvendo um problema novo mas sim voce estah resolvendo problemas na sua zona de conforto que nao gera progresso. Para progredir voce precisa errar. Ponto.


As pessoas correm poucos riscos porque elas nao querem serem pegas errando. Por desinformacao, alguns pais educaram os filhos com a expectativa de que a inteligencia eh nata e nao desenvolvida o que significa que errar eh ruim. Essas pessoas precisam manter a imagem de que sao naturalmente inteligentes e de que resolver problemas tem de ser facil e imediato e  nao como uma cadeia e sequencia de riscos, erros e acertos.


Leia o quanto antes sobre financas na sua vida, especificamente sobre juros compostos. Nao se prepare para o “se” mas para o “quando”: tenha planos muito bem definidos para “quando” a sua empresa te demitir ou “quando” seu pai morrer. 




Reavalie o quanto voce gasta por mes com coisas inuteis e se prepare financeiramente para ficar pelo menos 6 meses desempregado. Precisa estar muito claro na sua cabeca qual  proporcao dos seus recursos devem estar investidos em acoes, certificados de depositos bancarios, titulos da uniao, poupanca e imoveis para cada combinacao de idade, estado civil e numero de dependentes. Regra geral: quanto mais jovem, solteiro e menos dependentes voce tiver maior a *obrigacao* de correr riscos voce tem, e se voce nao correr esse risco sua estrategia eh sub-optima.


Regra geral, considere abrir uma empresa assim que voce se formar e ter 80% dos seus recursos em acoes. E se prepare para trabalhar numa multi-nacional e ter 30% dos seus recursos em fundos mutuos, indices e/ou imoveis quando voce tiver 30 anos com a sua esposa gravida.


Aprenda a jogar poker. Leia sobre valor experado. Saiba a diferenca entre media e mediana. Entenda o que eh o 50th percentil.


Leia sobre Pot odds. O quanto voce arrisca tem a ver com o quanto estah em jogo e o valor esperado. Aposte baseado no que voce tem a ganhar, nao no que voce jah botou em jogo.


Mire num objetivo alto, porque se voce errar voce acerta pelo menos alguma coisa em cima lah perto. Escolha viver uma vida com conquistas altas mas nao se apegue muito em atingir determinados resultados fixos especificamente. Em algumas ocasioes voce nao atinge exatamente o que voce se propos a conseguir, mas o aprendizado que voce teve no processo de tentar alcancar esse objetivo voce criou ferramentas uteis para resolver problemas igualmente dificeis e nobres.


Voce nao vai ter a oportunidade de olhar pra tras e falar “caraio, deveria ter tentado isso”. Quando voce eh adulto, essa desculpa nao cola mais. Voce perde a habilidade de falar coisas do tipo “putz, me arrependi de nao ter me aplicado para stanford” ou “putz, eu deveria ter pelo menos tentado ter mandado meu curriculo para a NASA” ou pior “putz, eu nao deveria ter me acomodado em fazer curso X quando o que eu queria mesmo era o curso Y”. Como adulto, voce perde a habilidade de dar desculpas e nao gerenciar o risco na hora de fazer escolhas e errar para o lado conservador vai te levar para um encadeamento de escolhas sub-otimo.

Anunciar seus planos te torna menos habil a realiza-los

Esse post eh parte de uma serie de posts.

Anunciar os seus planos te torna menos habil a realiza-los. Ponto. Leia esse artigo e tente digerir a informacao. Pronto, agora muita coisa na sua vida vai ficar claro. De nada.



A ideia eh de que anunciar os seus planos te torna menos habil aa realizar eles porque a aceitacao do seu interlocutor faz com que o seu corpo produza reacoes/sensacoes que te satisfacam. Eh como se voce tivesse conquistado um pouco do seu objetivo soh por verbalizar ele. Soh que nao.

Faca. Nao me fale o que voce vai fazer, me fale sobre o que voce jah fez. Pare de falar no verbo futuro e use mais o verbo passado. Por exemplo “eu vou perder peso”, “ainda faco meu doutorado”, “vou larger meu emprego e abrir uma empresa” te tornam menos habil a executar essas tarefas porque a aceitacao dos outros te satisfaz o suficiente para desistir.

Se voce precisar dizer no que voce estah trabalhando, sete uma expectativa baixa sobre a sua performance e surpreenda: o trabalho para manter uma imagem nao sustentavel nao contribui para resolver problemas e fazer as coisas acontecerem. Prometa menos do que voce sabe que voce pode fazer, e entregue mais do que voce prometeu.


Compartilhar um plano eh construtivo quando voce estah procurando uma critica, revisao ou ajuda. Existem diversos problemas que voce nao consegue resolver sozinho, mas em geral voce consegue andar pra frente o suficiente sozinho para saber se voce *realmente* quer resolver determinado problema.

Do. Or Do Not Do. There is no Try. -- yoda

Voce nao eh uma arvore

... se voce nao gosta de onde voce estah, mexa-se :)

Esse post eh parte de uma serie de posts.

Ao longo dos anos, eu aprendi uma ferramenta bastante libertadora: puxar a responsabilidade sempre para mim mesmo e parar de colocar a culpa nos outros.

Nao passei no vestibular? Culpa minha.
Nao consegui aquele emprego? Culpa minha.
A bolsa caiu? Culpa minha.
O Governo nao usa direito o meu imposto? Culpa minha.
Existe fome no mundo? Culpa minha.

Experimente se responsabilizar por tudo que acontece com voce e com tudo aa sua volta: eh um dos exercicios mais libertadores. Voce se desbloqueia da ajuda dos outros e comeca a enxergar o que voce pode fazer: se algo der errado, a culpa foi sua.

Se voce eh uma pessoa que reclama muito as chances sao de que voce eh uma pessoa que ainda nao digeriu esse conceito. A pessoa que se responsabiliza pelas coisas nao reclama (dos outros, do governo, da situacao, etc), ela olha para dentro de si mesmo e analisa o que ela pode fazer a respeito.

Uma das coisas que voce perde conforme voce amadurece eh a habilidade de dar desculpas. Uma das fabulas (ficticia?) mais comentadas aqui no vale do silcio eh como o steve jobs introduz novos diretores na sua cadeia de gerenciamento dizendo: “Quando voce eh o faxineiro, razoes importam. Em algum lugar entre o faxineiro e o CEO da empresa, razoes perdem importancia”. Significa que em determinado ponto de progressao intelectual, voce para de apontar o dedo para culpados, porque soh existe um: voce.

Tive um gerente que me explicou isso em torno de um conceito chamado “self-imposed mental block”, coisas que voce inventa para te auto-sabotar. Aqui vao alguns exemplos: “bah, mas eu sou brasileiro, como que esses caras vao prestar atencao em mim?”, “poxa, mas eu nao fiz um MBA/doutorado no MIT/stanford, esses caras sao muito melhores do que eu”, “po, eu estudei a vida inteira em escola publica, nunca tive a oportunidade”, “po, eu nao sei falar ingles nao vou nem tentar”.

Se voce nao gosta de onde voce estah, mexa-se: voce nao eh uma arvore. Desde a abolicao da escravidao, as pessoas escolhem onde elas querem estar e voce precisa entender o mais jovem possivel de que o lugar onde voce estah voce que escolheu, ninguem te botou lah.