Na história da comunidade desta semana, Brian e Jonathan aproveitam para conversar sobre experiências interculturais, programação funcional e como foi sair do meio-oeste americano para a Escandinávia.
Jonathan: Boa noite a todos e sejam bem-vindos ao podcast do Exercism. Tenho o privilégio de estar acompanhado de Brian Underwood. Brian, onde você está morando neste momento? E conte um pouco da sua história e de como você acabou chegando onde está agora. Brian: Sim, claro. Obrigado por me receber. Pois é, estou em Estocolmo, na Suécia. Mas originalmente sou dos Estados Unidos, nasci em Ohio, então já foi uma bela jornada desde lá. Jonathan: Não. Brian: o, eu acho, minha... você queria saber de onde eu venho, tipo, a minha trajetória no meio disso, eu acho. Jonathan: Sim, com certeza. Como você acabou saindo do meio dos Estados Unidos para... a Suécia, a Escandinávia, sabe, é um salto e tanto. Brian: Claro. Sim. Sim, com certeza, é, é o meio dos Estados Unidos. Não te culpo por perguntar, quase ninguém sabe onde fica Ohio. Então isso é, isso é bem legal. Sim, então eu, sabe, fiz faculdade na Ohio State. E era ciência da computação, educação. E foi divertido. Gostei bastante. E eu meio que fazia... suporte técnico, hã, na Faculdade de Humanidades o tempo todo em que estive lá. Tive a sorte de conseguir um emprego lá quando comecei. E meio que continuei por alguns anos depois de me formar. Hã. Mas aí eu meio que, acho que fiquei um pouco entediado com onde eu estava e com o que eu estava fazendo, e também minha namorada terminou comigo. Então vamos, vamos... Jonathan: Memórias não muito felizes, digamos assim. Brian: É, quer dizer, no fim das contas foi tudo tranquilo. Mas é, é mais ou menos assim: ok, acho que tive a oportunidade aqui. Então decidi passar algumas semanas viajando pela Europa, o que foi a primeira vez que eu de fato... saí dos Estados Unidos por um período prolongado. E foi bom, viajar pela Europa. E aí decidi... antes de fazer isso, decidi que ia me mudar. E eu meio que já tinha decidido que ia me mudar para Boston. E consegui, sei lá, não sei se tive sorte de certa forma, mas tive algumas oportunidades em que, sabe, eu sempre trabalhei muito com suporte a Mac. Então um dos trabalhos que eu tive a oportunidade de pegar era um emprego de suporte técnico de Mac em Boston. E o outro era uma pequena startup que fazia software para, tipo, operadoras de celular e para como elas organizavam a exposição dos produtos nas lojas. E, sabe, acho que eu queria muito fazer a transição para ser programador. Mas o outro emprego era tipo: ah, isso é o que eu já faço há muito tempo. Mas acho que eu estava pendendo para o lado de: ok, vou assumir essa vida nova, essa carreira que eu quero. Então, mas acho que também tive um pouco de sorte em conseguir o emprego, porque acho que eles precisavam mesmo de alguém. Então eles meio que me aceitaram. E acabou sendo um trabalho importante, que tive por vários anos. Hã, mas é, e aí foi mais ou menos o começo. Resumindo, a partir dali, conheci a minha agora esposa e nos mudamos para Providence, casamos lá. Hã, depois nos mudamos para a Califórnia. Acho que minha esposa conseguiu um emprego em São Francisco. E eu pensei: é, eu consigo. Sou desenvolvedor de software, consigo, consigo encontrar um emprego em São Francisco. Não, sem problemas. Então foi ótimo. Morávamos em Oakland e trabalhávamos em São Francisco por uns dois anos. Mas aí decidimos que queríamos viajar por uns anos. E acabamos viajando pelo mundo por dois anos com o nosso... na época, a essa altura, já tínhamos um filho de dois anos e meio. Então viajamos com ele por uns dois anos. E depois, é, voltamos para os Estados Unidos por uns dois anos. E aí decidimos meio que assim: ah, sabe, tínhamos passado por Estocolmo nas nossas viagens. E pensamos: gostamos muito de Estocolmo. Então dissemos: ok, vamos voltar. E foi isso, é onde estamos há uns quatro anos. Jonathan: Sua esposa é sueca ou é só porque vocês gostam de Estocolmo? Ah, tipo, como foi que surgiu... qual é a história aí? Brian: Sim, não, boa pergunta. É a pergunta que muita gente faz. Mas não, nós dois somos americanos. Nós três somos americanos, meu filho incluído. Embora ele fale sueco muito melhor que nós dois. Estamos trabalhando nisso. Mas é, não, nós só gostamos muito de lá. Acho que teve alguns lugares por onde viajamos e pensamos: bem, talvez a gente pudesse morar aqui, se quiséssemos nos mudar para algum lugar. Acho que um deles foi Auckland, foi um lugar pelo qual passamos e gostamos muito. Na Nova Zelândia? Você quer dizer Auckland, na Nova Zelândia? Nova Zelândia, exatamente. Mas era um pouco longe, seria... se quiséssemos voltar a Ohio para visitar a família, seria uma viagem e tanto. E ainda é uma viagem e tanto da Suécia, obviamente. Jonathan: Ok, e agora você mencionou, você comentou sobre programação de computadores versus, ou melhor, ciência da computação, desculpe, e programação. Qual era a diferença? Porque na minha cabeça, ciência da computação é meio que programação, mas claramente não. Ou talvez sim, sei lá. Então o que você quis dizer com isso, especificamente? Brian: Sim. Não sei se sei qual é a diferença. Quer dizer, eu me formei em ciência da computação, e acho que era programação, mas não era bem... você já ouviu, ou outras pessoas já ouviram, que nem sempre se aprende numa faculdade as coisas da vida real que você aprende e faz num emprego. E provavelmente isso mudou um pouco desde que eu fiz faculdade. Acho que provavelmente houve um movimento em direção a uma educação mais prática. Tipo, eu lembro... Sabe, a gente aprendia, acho que C e Java eram as duas principais linguagens que aprendíamos na época. E, em particular, lembro que estávamos aprendendo uma coisa em Java, numa aula, em que eles eram bem... era tipo, acho que era um método de ensino ou uma forma de abordar as coisas em que você comentava cada uma das suas funções de forma bem detalhada para dizer... era tipo, chama-se design by contract, em que você dizia, tipo: o que se encaixa? Sabe, num contrato legal, você meio que diz: ok, quais são as suas responsabilidades? Quais são as minhas responsabilidades? Então projetar uma função por contrato significa, sabe: ok, se você me passar estes valores nas variáveis, e, sabe, nunca me passar um número negativo nesta aqui, e sempre garantir que essa string nunca esteja vazia, ou algo assim, certo? Essas são as coisas pelas quais você é responsável. E aí, se você fizer isso, eu prometo fazer isto, certo, e fazer com que aconteça. E aí tinha essa estrutura de comentários que eu lembro de ter deixado muito confuso, achando que de alguma forma os comentários eram executados e faziam parte do programa. E era... eu, sabe, acho que passei alguns dias tipo: como assim? O que eu devo fazer aqui? E eu acabei meio que entendendo que era só um método bem formal que... E acho que foi bom, no sentido de que pensar às vezes molda a minha mente. É bom pensar em não ter uma função capaz de lidar com todas as coisas possíveis que podem acontecer, porque isso só leva à loucura. Jonathan: Então, você foi para a faculdade com ciência da computação como o curso principal que você pensava em fazer. Como você decidiu isso? Foi só porque você tinha uma atração natural pelas matérias mais científicas na escola ou no ensino médio, ou teve um momento em que você pensou: na verdade, isso combina muito comigo? Como foi o processo até você decidir que ciência da computação era mesmo o curso que você queria fazer? Brian: Sim, provavelmente tive bastante sorte, porque sempre fui naturalmente atraído por isso, acho. Não sei, tipo, eu lembro... de num certo momento ter meio que uma escolha de programas, em que eu podia entrar no programa de artes e ciências, com ênfase em ciência da computação, ou no de ciência da computação da engenharia. E um deles envolvia, tipo, fazer aula de língua, e espanhol era a que eu meio que estava seguindo desde o ensino médio. Mas o outro era tipo: ah, você não precisa fazer língua estrangeira, mas precisa fazer mais física e matemática. E eu falei: ok, pode me inscrever nesse. Então acho que eu era meio... acho que fui atraído por isso. Acho que é assim: embora a coisa em que eu penso muito seja que, e talvez isso seja uma espécie de privilégio de interesse científico ou matemático que eu tenho, mas eu sinto que provavelmente... matemática, fazer matemática. Muita gente é tipo: ah, matemática, eu fico nervoso com matemática, ou é estressante, ou sei lá. E isso, eu entendo que pode ser totalmente o caso, mas fico me perguntando se talvez, às vezes, as pessoas, por algum motivo, simplesmente acham a graça na matemática e conseguem se empolgar com ela. E é a mesma quantidade de trabalho para descobrir as coisas, mas simplesmente não parece, porque quando a gente está se divertindo, não sentimos como tanto trabalho. Provavelmente não é bem isso, é só uma teoria minha, provavelmente só meio certa. Jonathan: Mas foi engraçado porque... então, eu lembro que fiz química por três anos no GCSE, no Reino Unido, e por dois anos você tem três anos de aprendizado até as provas do GCSE e depois você tem essas provas grandes aos 16 anos, e você cobre uma porção de temas, então você meio que faz dez matérias diferentes, e isso é bastante. E aí você decide: ok, vou fazer os A levels, vou fazer mais matemática ou ciência ou sei lá, ou inglês, ou teatro, ou o que for. Mas eu lembro que química, para mim, não fez sentido por uns dois anos, e aí na semana antes da prova tudo fez sentido: a tabela periódica e como tudo aquilo funcionava, e ah, eu podia tirar todas as respostas da tabela periódica, eu só precisava, é como uma palavra cruzada ou sei lá. E foi a lâmpada acendendo, e lembro que a partir dali eu pensei: ah, essa é a matéria mais fácil de todas. Mas foram dois anos de luta para chegar a esse ponto, e é interessante porque eu sinto que, para mim, programar é parecido: é tipo, mergulhe nisso por um bom tempo e a ficha vai cair, e estou animado para quando isso parecer estar indo nessa direção. Mas acho que o que você está descrevendo ali, sabe, eu vi amigos que simplesmente entenderam muito rápido de cara e meio que gostaram, e o aspecto de resolver problemas era a característica principal do aprendizado, o que eu acho muito interessante. Então é legal que você também tenha passado por isso, eu acho. Brian: Eu sei que tem um aplicativo, na verdade, que meu filho já usou no iPad dele. Tem uma empresa, ou uma série de aplicativos, chamada Dragon Box. Não sei se você já ouviu falar deles. Mas eles fazem uns aplicativos educativos bem legais. Normalmente eu sou bem cético em relação à maioria dos aplicativos educativos, mas eles fazem vários realmente bons. E um deles é sobre geometria. E eu penso nisso como metáfora muitas vezes: que não era geometria, era álgebra. Tem um de geometria também. Mas o de álgebra não te ensina de fato os conceitos de álgebra. Ele te ensina a mecânica da álgebra. Jonathan: Não deixe de dar um joinha neste vídeo e se inscrever no nosso canal para mais vídeos como este. Brian: E ele faz isso de um jeito em que você tem dois lados diferentes com duas caixas diferentes, e você tem que fazer as coisas meio que se equilibrar nos dois lados. Você move o monstro de um lado para o outro, ou tem que transformá-lo de um certo tipo de monstro em outro. Já faz um tempinho desde que eu vi, mas o que eu lembro tão claramente é que ele estava aprendendo a mecânica da álgebra, mesmo sem entender para onde estava indo e por que estava fazendo aquilo. Mas era divertido fazer, e eles fizeram de um jeito que tornava tudo muito envolvente. E o que eu acho tão bacana nisso, e quero que ele passe pelo aplicativo de novo quando começar a estudar álgebra, porque eu sinto que, se você domina a mecânica, então não precisa se preocupar tanto com ela, e você pode pensar mais no nível alto sem ficar estressado com a parte mecânica. E acho que talvez seja isso que você está dizendo sobre química. Não sei se foi assim para você, mas talvez seja tipo: por que eu deveria me importar com toda essa parte mecânica, com essas regras, com essas coisas? E é tipo, quando você chega a um certo ponto, é como: ok, eu já meio que batalhei por isso. Talvez eu consiga me importar com por que estou fazendo isso. Jonathan: Sim, sim. Não, foi uma experiência bem interessante, porque foi a primeira vez que eu meio que passei por esse processo de entender algo e depois passar por um período em que você perde bastante a confiança nessas matérias, porque você pensa: ah, meu cérebro não é especialmente feito para esse tipo de raciocínio. Mas aí, se você olhar para literatura inglesa, por exemplo, que foi o que eu fiz, você na verdade passa de forma bem sistemática por analisar a linguagem e como as coisas são estruturadas, e entender... mas há uma nuance, há uma natureza artística em tudo isso também. E, quer dizer, dá para dizer que existe também esse elemento artístico no desenvolvimento e na programação. Cada pessoa tem seu próprio toque, e acho que é isso que estou percebendo cada vez mais: não existe regra fixa para nada. É só... são todos trade-offs. Então não, tem sido fascinante. Agora, você... você ajudou a gente nas cohorts, que, para quem estiver ouvindo, foram experiências de aprendizado em Elixir e Golang, e você, Brian, meio que ajudou um pouco com a cohort de Elixir. Então como você entrou no Elixir como linguagem? Tipo, qual foi o contexto para chegar lá? Brian: É, é engraçado, porque alguém me fez exatamente essa pergunta hoje. Porque é uma... quer dizer, é uma linguagem de nicho, sabe, de certa forma. Mas eu venho do Ruby. Sou desenvolvedor Ruby há muito tempo. E eu amo muito o Ruby, porque é... sabe, eu sou o tipo de programador que quer, quer fazer as coisas, quer pensar, quer resolver problemas difíceis. E é difícil resolver problemas difíceis quando você está pensando nos pequenos detalhes das coisas e tendo que lidar com ponteiros ou sei lá, certo? Então o Ruby era ótimo para isso. E aí, claro, José Valim, o criador do Elixir, veio do mundo Ruby. Ele já era prolífico no mundo Ruby e decidiu que precisava... não precisava, talvez ele seja incrível, ele ia criar a própria linguagem e ser prolífico nela, e fez um trabalho incrível nisso. Então eu, de certa forma, sabe, eu estava meio que ligado nesse mundo, sabe, eu ouvia alguns podcasts em que às vezes falavam de Ruby, mas aí surgia: ah, essa coisa nova, o Elixir. E acho que talvez uma virada, bem, uma coisa meio fundamental foi que eu estava morando... na verdade eu tinha acabado de voltar para Columbus por um tempo, Columbus, Ohio, e o José Valim veio ao grupo de Ruby de Columbus, a Columbus Ruby Brigade. E eles falaram, sabe: o José Valim é tão bacana que vem falar sobre o que você quiser falar. E claro, ele disse: sim, vou falar sobre Elixir, porque eu criei essa linguagem. Estou muito empolgado com ela. Sim. Sim, exatamente. E eu lembro disso. É tão engraçado, tipo, um ano atrás eu encontrei uma gravação daquela apresentação. E é um pouco granulada. Mas ainda dá para assistir. E eu ainda, consigo achar o lugar em que faço uma pergunta ao José. E lembro de ter essa confusão sobre como exatamente... Jonathan: Estou muito empolgado com isso. Brian: esses conceitos de tipo, você cria esses processos e eles conseguem se recuperar de falhas, se você tem supervisores e tal. E não lembro exatamente o que ele disse, mas eu fiquei meio tipo: como isso funciona? E tipo: ok, você se recupera de erros. Mas você ainda fica sabendo desses erros? Ou tipo, o que acontece? E tem sido todo um processo para entender o que isso significa. E acho que é um processo muito interessante. Acho que na época, boa parte da comunidade Elixir estava lutando para saber como descrever esses conceitos. E acho que há mais posts em blogs por aí e cada vez mais coisas para as pessoas absorverem e entrarem mais rápido. Mas enfim, foi mais ou menos o lugar de onde eu vim. Acho que esse foi um dos grandes pontos. É tipo: ah, isso parece interessante. E se o José diz que é legal, então eu deveria dar uma olhada. Jonathan: Então foi quase como se o momento fosse certo para você meio que entrar nisso? Foi tipo várias coisas diferentes se alinhando e fazendo sentido para você. Você andava explorando outras linguagens? Tipo, quer dizer, você mencionou ponteiros. E isso é uma referência ao Go especificamente ou era meio que você só estava à caça de alguma linguagem que combinasse com você, digamos assim? Brian: Acho que eu... Sim, quer dizer, eu... eu curto demais a ideia de que coisas diferentes são boas para propósitos diferentes. E, sabe, eu estou totalmente dentro do Elixir agora. Eu sinto que provavelmente sou meio suspeito para falar, tipo: sim, o Elixir pode ser usado para praticamente qualquer coisa. Isso provavelmente não é bem verdade. Mas acho que a questão dos ponteiros era só porque eu tinha C em mente, acho, sabe, fiz um pouco de C, C++ na faculdade. Acho. Sabe, é, então tipo, por vários anos eu trabalhei com Neo4j, o banco de dados de grafos. E isso era algo com que eu estava super envolvido. E eu era um dos mantenedores das gems do Neo4j para Ruby. Porque era isso... Não precisamos entrar muito nisso, mas bancos de dados de grafos permitem fazer certas coisas mais rápido, ou simplesmente de forma mais fácil em alguns sentidos. Para mim era meio que... era tipo... não são muitas pessoas que usam Neo4j para isso, mas eu sinto que era meio como o Ruby, no sentido de que ajudava você a pensar nas coisas num nível mais alto. E assim deixava você fazer as coisas de forma mais elegante. Mas eu curto essa ideia de tipo: ok, bancos de dados de grafos podem ser bons para este propósito, e um banco de dados relacional para este, e um banco de dados de documentos para aquele. E ok, se eu preciso fazer um serviço pequeno que precise operar super rápido, talvez eu faça em Rust ou Go ou sei lá. E então eu deveria conhecer essas linguagens e, se eu... coisas de nível mais alto, tem Ruby e Python, mas agora tem Elixir, e o Elixir é... e na verdade ele tem várias grandes vantagens. É muito difícil descobrir o que é bom para cada coisa, porque há tanta coisa envolvida numa linguagem, por exemplo, que descobrir se ela é boa para algo é difícil. E também as pessoas, inclusive eu, acho que se envolvem emocionalmente com algumas das linguagens de que gostam por um motivo ou outro. E aí é tipo: bem, é difícil. Hã-hã. Jonathan: E, Brian, você usa Elixir no dia a dia do trabalho? E o que é o trabalho para você no momento? Tipo, como é o dia a dia neste momento? Brian: Sim, sou consultor na Erlang Solutions. E então estou trabalhando com um cliente da Erlang Solutions, uma empresa chamada VicAI. Não sei se você já ouviu falar deles. Acho que Lars Wirthven, acho, já ajudou eles um pouco e escreveu um pouco sobre eles no blog dele. Ele é meio que uma pessoa semiconhecida no mundo do Elixir. E sim, então eles são uma empresa que... ajuda outras empresas, eles têm... eles fazem um aplicativo que ajuda empresas a processar faturas, semiautomaticamente ou totalmente automaticamente, usando inteligência artificial. Ok. E então, sim, e eles têm, claro, modelos de aprendizado de máquina, mas também têm uma API em Elixir que permite coordenar muitas coisas. Jonathan: Ok. E você lida com muitos clientes diferentes no dia a dia, ou é mais o caso de você trabalhar com um grupo especializado com o qual você meio que caminha junto e faz parceria? Tipo, como funciona tudo isso? Brian: Sim, então eu costumo estar numa espécie de time de funcionalidades com um gerente de produto, e temos um desenvolvedor web, um desenvolvedor mobile e às vezes um desenvolvedor back-end, o time de aprendizado de máquina. E aí é bom que, às vezes, temos uma pessoa de produto ou de QA que faz a interface com os nossos clientes para tentar nos trazer o mais relevante, o mais necessário, sabe, o que os usuários e os clientes realmente precisam. Mas é um pouco como camadas, tipo, nós, sabe, dependendo do que seja, temos um grande cliente direto, e depois temos alguns sistemas de contabilidade, ERPs, com os quais trabalhamos, e eles têm pessoas que, sabe, cadastram os clientes deles. Honestamente, eu não trabalho muito com isso, não tanto com o lado do cliente. Mas acho que temos muitas formas diferentes de fazer interface com os clientes, e temos meio que fazer várias danças para integrar, o que é um problema interessante por si só. Jonathan: Então a semana é bem variada, e você faz muitas coisas diferentes durante a semana, ou é bem previsível? Brian: Hã, sim, acho que é, sabe, acho que sou bem sortudo nisso, eu... eu geralmente... quer dizer, geralmente tem um projeto no qual estou trabalhando. Mas, por exemplo, uma coisa que acho que posso contar, recentemente eu estava ajudando a garantir que nossos cálculos de retorno estivessem corretos na forma como processamos as faturas. Porque isso pode ser algo complicado, só de lidar com isso. Especialmente quando você tem faturas chegando de um monte de fornecedores diferentes, e eles podem, sabe, fazer as coisas de forma diferente uns dos outros. Mas eu tenho bastante sorte, porque eles gostam de garantir que estamos meio que por cima da nossa... qualidade de código e, em geral, por cima das coisas. Então tentamos dedicar uma boa quantidade de tempo a fazer coisas para melhorar, melhorar nosso código ou aprimorar as coisas. E, sabe, isso também é meio que o meu jeito. É tipo: eu geralmente tento reservar pelo menos um pouco do meu tempo para, sabe, faço bastante integração com o DataDog para aplicação, para garantir que temos rastreamento das nossas requisições e dos nossos jobs em segundo plano e todo esse tipo de coisa. E isso é algo que me dá muito prazer: depois de fazer isso, poder dizer: ok, agora tenho as ferramentas de que preciso para fazer meu trabalho. Mas é, tipo, também acho que recentemente surgiu uma coisa em que fiquei interessado, tipo uma forma de organizar código e referenciar outros módulos. E existe uma ferramenta no mundo do Elixir, o Credo, que permite meio que impor regras diferentes no seu estilo de código. Então criei uma nova regra no Credo para potencialmente impor essa regra. E estou curioso para ver como vai ser. Jonathan: Ok, legal. Isso soa, para ser sincero, um pouco acima da minha cabeça, mas de certo modo... tenho certeza de que alguém por aí vai entender o que está acontecendo. Mas você mencionou antes que trabalhou um pouco numa startup, acho que entendi bem. Então você tinha esse lado de suporte técnico, e também havia uma história de startup rolando. Isso é algo em que você teria interesse no futuro, ou é algo que está sempre no fundo da sua mente? Qual é a trajetória para você, você acha, nos próximos cinco, dez anos em termos de programação? Quer dizer, talvez você não saiba, mas eu só achei bem interessante perguntar às pessoas: onde você se vê em cinco, dez anos? Brian: Sim, boa pergunta. Quer dizer, eu meio que... Em relação a startups, eu sempre fiquei entre empresas pequenas e médias. Jonathan: Obrigado. Brian: tão feliz em empresas muito grandes. E eu nunca me vi de fato como consultor até recentemente, quando eu meio que pensei: ok, isso é meio que... interessante, poder tipo... ir para empresas diferentes e talvez tentar ajudá-las a resolver seus problemas, mas depois talvez seguir para outra empresa. Quer dizer, se alguém da Big Gag estiver ouvindo, eu não estou infeliz. Jonathan: Eu fiquei tipo: acho que não deveria perguntar isso a alguém num podcast, mas é, obviamente, partindo do princípio de que está tudo indo bem. Desculpa, meu gato está arranhando a porta aqui. Brian: Ah, sim, sim, eu acabei de... nós pegamos um filhote de cachorro há mais ou menos um mês, então estou constantemente tendo que tipo, ela está latindo ou está, sabe, talvez uma ou duas vezes fez xixi na cama, e é tipo: tenho que lidar com isso. Jonathan: Então nós acabamos de pegar, é uma loucura. 5 da manhã todos os dias. 4h30 da manhã ela meio que pula na cama e começa a tipo dar patinhas no rosto dela. É fofo e adorável. Mas é, depois de um tempo é tipo: qual é. Mas é, voltando à questão dos próximos anos, o que você adoraria poder fazer ou realizar? Brian: Sim, boa pergunta. Acho que eu curto a ideia de descobrir... Acho que uma das coisas que talvez me atraiam no Elixir é que ele ainda é meio novo. E aí eu gosto... tipo, quais são algumas formas de meio que abrir novos caminhos e encontrar novos padrões. E especialmente, sabe, não é só que, sabe, eu estava no mundo Ruby por um tempo, então, ao entrar no Elixir, às vezes tem coisas tipo: ah, eu sinto falta disso no Ruby, seria ótimo construir isso ou fazer aquilo. Mas também tem coisas que são tipo, sabe: ah, isso é algo que eu não conseguia fazer muito bem no Ruby. Mas se eu fizer só isso, sabe, poderia ficar ainda mais incrível aproveitando os pontos fortes do Elixir. Então acho que é esse tipo de coisa que me interessa, tipo encontrar, encontrar os casos de uso bacanas e falar sobre eles, compartilhá-los, porque isso também é algo que sempre me inspira: quando eu leio, especialmente quando leio sobre algo, um caso de uso real, e vejo os detalhes, não só tipo: sim, fizemos essa coisa e meio que foi assim que fizemos. É tipo: mas onde eu posso ver um pouco de código ou quais são os detalhes? Sim. Jonathan: Parece que você gosta do lado da otimização, de meio que pegar algo e desbravar um novo jeito de tornar algo melhor e mais eficiente. É o que eu estou ouvindo, pelo menos. É justo dizer isso, você acha? Brian: Sim, acho... e acho que eficiente é bom. Mas acho que talvez eu diria que é ainda mais encontrar formas de tornar as coisas agradáveis. Eu curto demais a ideia de: como podemos resolver problemas para não precisarmos mais lidar com eles? Tipo, criar bibliotecas para podermos dizer: ok, aquele problema, sim, aquele problema está resolvido agora, vamos passar para algo que, sabe, seja um uso melhor do nosso tempo, certo? Jonathan: Não, claro. Faz sentido. Então, uma das coisas que eu tenho gostado de perguntar às pessoas, especialmente... porque eu sou bem... eu diria que sou bem novo em tech como um todo, e não venho de uma experiência particularmente longa em termos de programar desde cedo, etc. E uma das coisas que muitas vezes me chamou a atenção, e você ouve muito isso de amigos que trabalham com tech, é que há bastante opiniões circulando, o que parece bem, bem verdade. Mas temos uma pergunta que gostamos de fazer para as pessoas que vêm ao nosso podcast, que é: qual é a causa pela qual você morreria na área de tech? E, obviamente, colocando isso de um jeito meio de brincadeira. Mas existe algum pensamento ou opinião específica que você tenha e pense: essa é a causa que eu defenderia? E pode ser qualquer coisa. Um bom exemplo seria o DJ, que é um dos nossos mantenedores, você talvez conheça, e a causa dele era o papel da conversa realmente essencial, tipo, ter conversas bem-intencionadas, boas e bem estruturadas no espaço da tech. Ou seja, ter aquela interrogação robusta, sabe, desafiadora, que é meio que construída sobre as bases certas, digamos assim. Estou tentando lembrar o que outra pessoa disse. A Rebecca, do Unison, disse que preferiria ter 50 pessoas num time que fossem esforçadas, conscientes e talvez menos talentosas do que um milhão de gênios que são um pesadelo de conviver. Então, espero que esses sejam bons exemplos. E eu te coloquei um pouco em saia justa ali com essa pergunta do nada, porque provavelmente você tem várias perspectivas. Mas existe alguma em que você diria: não, é isso que eu estou disposto a defender firmemente? Brian: Hmm. Sim. Sim, porque meu primeiro pensamento foi mais ou menos tipo: ah, tipo, camel case versus snake case. Bem, não sei se eu morreria por essa causa ou não. Acho que muitas dessas coisas tipo... Jonathan: Eu não consegui... Brian: Sim, sim, mas acho que em muitas dessas coisas eu... talvez tenha ficado menos categórico com o tempo. Mas é, eu gosto dessas coisas de nível mais alto que você está mencionando. Eu sinto que eu poderia... eu gosto. Deixa eu ver se consigo trazer isso à tona. Infelizmente você vai editar isso, então as minhas pausas vão simplesmente sumir, né? Jonathan: É o plano, pelo menos. Brian: Sim. Então existe uma ferramenta chamada Remote Retro. Que eu já usei várias vezes e recomendo muito. E fiquei sabendo dela porque ela é escrita em Elixir. Mas fora isso, acho que ela é simplesmente bem projetada. E, com o tempo, ela se tornou uma ferramenta cada vez melhor. Mas ela sempre começa com uma diretriz primordial, que eu acho que foi, olhando agora, estou vendo que foi tirada de Norm Kerth. Tem uma página de wiki aqui, então você pode procurar isso. Você pode ir em remote-retro.org se quiser conferir. Mas... é, aqui está a diretriz primordial, que eu acho que é só, é meio que aquilo que se lê no começo de uma retrospectiva para colocar as pessoas no estado de espírito certo. Ela diz: independentemente do que descobrirmos, entendemos e acreditamos de verdade que todo mundo fez o melhor trabalho que podia, considerando o que sabia na época, suas habilidades e capacidades, os recursos disponíveis e a situação do momento. Hã, então acho que isso é bom. Acho que é parecido, tipo... Você precisa garantir que está sempre... E, na verdade, vou dizer mais uma coisa. Teve uma entrevista e eu posso, posso compartilhar, se você quiser tipo colocar o link na descrição do programa ou sei lá, depois. Jonathan: Vou consultar com certeza. Brian: Sim, eu sempre recomendo este artigo, embora seja sempre super difícil de achar e, sei lá, provavelmente já caiu um pouco no esquecimento, mas havia este... este homem que era administrador da Associação de Veteranos nos Estados Unidos, o departamento do governo. E especificamente, acho que ele cuidava do sistema de saúde deles. E ele deu uma entrevista em que contava que vinha do mundo aeroespacial. E muito do que ele falou era... como no aeroespacial, em muitos... provavelmente não é perfeito em todo lugar, mas em grande parte do que ele viveu, você culpa o processo, não culpa as pessoas. E se algo dá errado, você diz, sabe: ok, não é, sabe, tipo, eu já apaguei uma tabela em produção. Mas, felizmente, ninguém me culpou por isso. Eles disseram: ok, o que fazemos agora? Bem, a gente faz com que, quando você entra em produção no console, apareça... o prompt fica vermelho. E assim fica claro que você está em produção, certo? Porque eu cometi aquele erro, porque achei que era desenvolvimento quando eu estava... É, certo. Então, tive a sorte de trabalhar num escritório em que se culpava o processo e não a pessoa. E isso foi ótimo. E ele falou sobre isso no contexto da medicina, tipo: ok, às vezes um enfermeiro pode dar o remédio errado a um paciente. E aí é tipo: bem, às vezes os rótulos são confusos, ou tem essa coisa que é tipo, é difícil, ou simplesmente não é o ideal. E é tipo: ok, vamos consertar isso. Vamos fazer isso. Então, se realmente nos importamos com o paciente, vamos tornar o processo mais difícil de dar errado. Então isso é algo que, para mim, é muito importante. Jonathan: Isso é bem legal. Vou com certeza colocar essas notas do programa. Isso vem do tipo do ágil? É algo construído sobre a metodologia ágil, digamos assim? Ou é meio que outra coisa? O que você pensa sobre isso? Brian: Sabe, essa é uma boa pergunta, eu acho. Tive a impressão de que fazia parte de uma tradição razoavelmente longa em alguns círculos da engenharia aeroespacial. Quer dizer, aeroespacial, acho que talvez tenha a ver com o fato de que, tipo, se você tem, se você está fazendo aviões ou se está fazendo foguetes. Você está no trabalho de tipo: isso precisa funcionar. E quando colocamos um humano ali, seja um astronauta ou um passageiro, precisamos dar a ele a melhor chance de funcionar. E a melhor forma de fazer isso é deixar nossos egos de lado e dizer, sabe: e aí? Brian: o que vai fazer isso funcionar o máximo possível todas as vezes, se simplesmente seguirmos o processo. Acho que faz parte disso, sim. Jonathan: Porque quando eu estava procurando sobre o Remote Retro, parecia muito com, tipo, terminologia ágil. Então fico me perguntando se talvez tenha vindo de lá, de algum lugar. Mas isso é bem legal. Eu nunca tinha ouvido falar disso. O que eu já ouvi falar é sobre checklists, especialmente na medicina e no aeroespacial. Tipo, um piloto vai passar por uma checklist. Ele não se desvia da checklist dele. E um médico faz o mesmo. Isso é bem legal. Brian, vamos começar a aterrissar. Tenho mais uma pergunta para você esta noite. E é: qual é a sua recomendação para a comunidade do Exercism na próxima semana? Se você pudesse dar um conselho, e poderia ser sobre qualquer coisa. Poderia ser tipo: vá tomar kombucha no, sei lá, seu deli local, ou vá correr e nadar no Oceano Ártico, ou o que for. Se houvesse uma coisa que você recomendaria para a comunidade do Exercism experimentar, o que seria esta semana? Brian: Saúde! Hmm. Hã, eu diria... que, hã, quer dizer, dentro, dentro das suas, sabe, possibilidades, porque talvez isso não seja... é sempre difícil dar conselhos para todo mundo. Mas acho que uma coisa que foi importante para mim é... acho que uma vez eu fui ao pronto-socorro porque tive uma dor de cabeça repentina. E talvez houvesse uma preocupação de que fosse tipo uma cefaleia súbita, que pode ser uma coisa meio séria. Então fui lá, o médico me examinou e estava tudo bem. Mas, sabe, o médico estava só fazendo perguntas gerais e meio que dizendo: ok, quanta atividade física você faz? E, sabe, como é a sua rotina e tal. E eu, sabe, sendo americano, fiquei meio tipo: bem, eu, sabe, ando bastante, faço talvez 8000 passos por semana, por mês, ou em média por dia. E ele disse, sabe: você deveria, deveria sair três vezes por semana, por 45 minutos, tipo, para suar de verdade. E, sabe, eu não fiz isso logo de cara. Mas, sabe, depois de talvez cinco ou seis meses, eu realmente entrei num padrão, num hábito de correr, geralmente três vezes por semana, às vezes duas vezes por semana, mas, sabe, e acho que isso foi algo que representou uma grande mudança na minha vida. Acho que me ajudou muito. Então acho que sei que é uma coisa super difícil de fazer e é super difícil para mim começar. E acho que parte do jeito que eu fiz foi tipo: ok, vou sair, e se eu acabar andando 75% do tempo, então ok, é assim que vai ser. Vou simplesmente construir isso aos poucos. Jonathan: Que legal. Acho que foi interessante você mencionar isso porque a gente... Brian: Acho que foi interessante você mencionar isso porque a gente... Jonathan: Não, isso é bem legal, porque uma das coisas que tentamos pensar com as cohorts era o que vai facilitar as pessoas a crescerem e aprenderem e meio que avançarem e ganharem embalo, digamos, na sua jornada de programação, você poderia dizer. E uma delas era simplesmente sair, mesmo que fosse por 10 minutos por dia, só para meio que se colocar no lugar de experimentar. E mesmo que você não chegue muito longe, mesmo que você só leia as instruções e pronto por hoje, desde que você apareça de algum jeito, já faz uma grande diferença. Mas acho que é uma ótima recomendação, com certeza um lembrete para mim de voltar a fazer um pouco de esporte, porque às vezes é tão sedentário ficar dentro de casa. Então, se alguém está aí ouvindo, siga o conselho do Brian e saia para correr. Mas, quer dizer, vai começar a ficar um pouco mais frio em Estocolmo nas próximas semanas. Você ainda corre no meio do inverno ou é mais corrida indoor? Brian: Sim, corro. E, quer dizer, eu diria também, sabe, que o melhor exercício que você pode fazer, se você vai sair por 30, 40 minutos por dia, três vezes por semana ou algo assim, é tipo... qualquer que seja, qualquer que seja a coisa de que você mais gosta, sabe, porque se você não gosta de correr, então provavelmente não vai conseguir manter isso. Então, sabe, vou dizer isso primeiro, mas, sim, no inverno, sabe, eu tenho um gorro, e em Estocolmo também é escuro. Então minha esposa me deu um gorro que tem fibras embutidas que são retrorrefletivas. Ok, então isso é bom. Assim ele pode me manter seguro. E aí tenho uma máscara facial e protetores de orelha que posso colocar. Sim, e aí... Sim, então eu tenho que me agasalhar bem, mas também pode ser bom, porque quando está frio, sabe, eu consigo, consigo manter um ritmo mais baixo e ainda assim conseguir. Sim, exatamente. Exatamente. Jonathan: Ah, que legal. Mas, Brian, eu só queria agradecer enormemente pelo seu tempo esta noite, e provavelmente foi um dia longo, com filhos, trabalho e filhote novo e todo esse tipo de coisa, então eu só queria agradecer pelo seu tempo e por compartilhar com a gente. E para quem está aí ouvindo, vamos colocar as notas do programa na descrição abaixo, para você conferir essas coisas. Se você tiver oportunidade e estiver ouvindo isto, vá dar uma olhada na track de Elixir, e tenho certeza de que... Brian, não sei se você faz alguma mentoria na track de Elixir, mas talvez, se você estiver nesse espaço de mentoria alguma vez, você pode ver gente nova aparecendo e testando as coisas. Eu ouvi muitas coisas boas sobre o Elixir, então acho que é definitivamente uma para ficar de olho no futuro. E é isso, tenha uma noite maravilhosa, Brian. Só espere um pouquinho quando eu parar a gravação. Mas é, foi ótimo ter você com a gente, e obrigado por compartilhar um pouco da sua visão sobre a vida de Brian Underwood. E é isso, obrigado a todos por ouvirem e tenham uma noite maravilhosa. Nos vemos em breve.
Ouça, aprenda e se inspire com os membros da nossa comunidade.