Voltar para a comunidade

Não seja produtivo demais!

Nesta história da comunidade, Franziska e Jonathan conversam sobre dinâmica de equipe, sobre como pessoas diferentes numa empresa encaram a colaboração e sobre como se posicionar para aprender a se tornar programador.

Assista no Youtube
DURAÇÃO 50MINUTOS

Jonathan: Olá e bem-vindo ao Podcast do Exercism. Meu nome é Jonathan e tenho a honra de apresentar você hoje. E estou acompanhado por Franziska, que é uma das nossas mantenedoras nas trilhas de Go e JavaScript. É uma grande honra ter Franziska como parte do Exercism e ela está envolvida há vários anos. Se você acompanha a comunidade, talvez já tenha esbarrado com a Franziska. Seja nas turmas de aprendizado ou nas trilhas de Go e JavaScript. Então, Franziska, seja muito bem-vinda hoje. Muito obrigado por se juntar a nós. Vou direto ao ponto e perguntar como você chegou aonde chegou?

Franziska: Sim. Certo. Eu sou a Franziska. Sou uma Gopher ou uma desenvolvedora Go na internet. Atualmente moro perto de Frankfurt, na Alemanha, logo depois da fronteira da cidade, num subúrbio pequeno. E recentemente comecei um novo trabalho na Atlassian. A Atlassian é a empresa por trás de muitas ferramentas amadas ou odiadas, como Trello, Jira e Confluence. E o que eu faço lá é desenvolver uma nova ferramenta para ajudar pessoas gerentes de produto com o trabalho delas. Porque no Jira o foco são desenvolvedores, mas não é uma boa opção para o que gerentes de produto precisam fazer, priorizar coisas e por aí. Então estamos construindo algo específico para elas. Eu gosto de Go como linguagem. Gosto muito. E o backend é construído com Go. Quando vi o anúncio da vaga, pensei: "Ei, que legal que eles estão fazendo isso". Me candidatei e consegui o emprego. Até agora foram só 30 dias, sei lá, mas tem sido uma boa experiência. Desde criança, sempre me interessei por coisas de tecnologia e ciências naturais, ficção científica, grande fã de Star Trek, todas essas coisas. Descobri que era boa em matemática e física na escola. Na época, muita gente estudava ciência da computação e sempre nos diziam para não estudar o que os outros estavam estudando, porque depois teria gente demais nessa área, e eu pensei: ok, talvez eu não deva fazer ciência da computação porque vai ter gente demais. Enfim, pensei: ok, vamos fazer algo parecido. Acabei estudando física, que eu gostava muito na escola. E fiz ciência da computação mais como matéria secundária. Então tive algumas aulas, mas não tantas quanto as outras pessoas. Descobri que você chega num ponto em que precisa pensar: ok, o que vou fazer pelo resto da minha vida, né? Como vou ganhar meu dinheiro fazendo algo de que eu realmente gosto? E percebi que essa parte de programação era na verdade a parte de que eu mais gostava no que fiz nos estudos e que eu era boa nisso. E queria fazer mais disso. E também é algo que paga as contas. Então pensei: ok, como consigo um emprego nessa área sem ter um diploma clássico de ciência da computação naquele momento? A outra coisa era que, naquele momento, eu não queria me tornar uma desenvolvedora C, uma desenvolvedora Java, esse tipo de coisa ultrapassada. Código de backend de banco em algum lugar. Aí pensei: ok, como posso aprender as coisas modernas, a internet, a web? Quero construir algo para isso. E um amigo me disse que existia uma coisa chamada bootcamps de desenvolvimento, onde você podia ir para algum lugar por três meses e eles ensinavam as coisas novas e legais. Sim. Então decidi que queria fazer isso. E provavelmente dali eu teria um ponto de partida melhor para encontrar um emprego. E na época eles não tinham nada disso aqui na Alemanha. Sim. Eles tinham, então ou você podia ir para a universidade por anos e anos, né? Ou havia alguns lugares onde você podia trabalhar e estudar um pouco ao mesmo tempo, mas também programas enormes, tipo anos e anos de educação. E em termos de bootcamp, eles só tinham. Coisas como aceleradoras de startups. Onde você aprenderia um pouco de código, mas também gestão, economia e por aí. Então não era uma boa opção para mim. Olhei um pouco em volta e encontrei um bom em Londres que tinha as matérias que eu queria aprender.

Jonathan: É o que roda

Franziska: O movimento está acontecendo. Sim, exatamente. Exatamente. Onde as coisas novas e legais estão acontecendo. Encontrei esse bootcamp, cara, fui para lá. Foi uma experiência ótima, ótima. E fizemos Node.js para o backend. Depois voltei para Frankfurt e realmente encontrei um emprego como desenvolvedora Node. E a empresa era bem legal, e a tecnologia era muito legal, e eu entrei em tudo muito rápido, e foi muito divertido, mas tive um pouco de azar com minha equipe, porque havia muitos membros de equipe com ego grande e machistas por perto. E era tipo, se você tinha uma reunião, quem falasse mais alto ganhava a discussão. E isso, isso, isso não é uma equipe legal de se estar.

Jonathan: É um tema bem comum: as pessoas entram para programar e a parte periférica, os aspectos de equipe, sempre é o que as pessoas não esperam que seja o problema ou o desafio. Então parece uma coisa bem comum. Desculpa.

Franziska: Sim. Sim. Com certeza. E você pensa: no começo você supervaloriza a parte técnica. Pensa: "Ah, esse trabalho tem exatamente a tecnologia que eu quero fazer, então vai dar tudo certo". Mas, na verdade, a parte da equipe é quase mais importante do que a tecnologia exata que você está usando.

Franziska: Sim. Então, depois de dois anos, um amigo, que também era CTO de outra empresa aqui em Frankfurt, disse que também queríamos transformar nossa tech de impostos e construir algo novo, mas não queríamos fazer Node.js. Queríamos ir de Go. Decidimos isso por alguma razão, e ele disse que eu podia me juntar a eles. Mas eu teria que aprender Go, é claro. E eu disse que, se ele não se importasse que eu tirasse um tempo no começo para aprender, eu topava. Olhei um pouco a linguagem e pareceu legal. Troquei de empresa. E nesse novo lugar a equipe era muito legal. Lá era realmente assim: se você discutisse com o CEO e seu argumento fosse melhor, isso era notado. E as pessoas reagiam a isso. Era muito bom trabalhar com eles, e as pessoas eram muito interessantes e tal. Fiquei lá por cinco anos. Construí muitos serviços de crescimento e também escrevi bastante documentação, conceitos de escrita, ajudando a integrar outros desenvolvedores ao Go, e também fiz algumas coisas de front-end e por aí. Mas depois de cinco anos, você também procura um novo desafio, e o que me influenciou a procurar um novo emprego foi a situação da Covid. Percebi que eu já trabalhava de casa, né? E talvez fosse ao escritório uma vez por semana. Então pensei: existem muitas vagas totalmente remotas por aí. Talvez eu consiga algo muito legal numa empresa maior. Se eu já trabalho de casa, também posso trabalhar para aquela empresa maior e mais legal, né? Então foi quando eu estava trabalhando e encontrei esse emprego na Atlassian.

Jonathan: Então, acho que minha pergunta era se a pandemia toda meio que abriu sua cabeça para pensar: "Ah, talvez haja mais do que só Frankfurt e a cena de startups de Frankfurt". Porque eu ia perguntar: como era a cena de startups de Frankfurt como espaço?

Franziska: Sim, só sobre o ponto da Covid, primeiro: o que a Covid me abriu foi essa ideia de trabalhar totalmente remoto. Porque antes eu sempre era assim, de ir ao escritório. Gosto de ver as pessoas pessoalmente, de como estruturo meu dia e tal. Mas depois percebi que, depois de trabalhar principalmente à distância por dois anos, percebi que tudo bem. Consigo lidar com isso. Tenho minha filha, tenho que sair de casa o tempo todo de qualquer forma, e tal. Então agora tenho estrutura suficiente no meu dia. Isso foi algo que a pandemia meio que me mostrou, e isso me abriu para a ideia de procurar em outro lugar. Quanto a Frankfurt, acontece muita coisa de tecnologia e startups aqui, mas é muito... Como você deve imaginar, tem muito foco em bancos, muitas fintechs e por aí. E isso não é particularmente... eu trabalhei com FinTech no passado, mas não é um assunto pelo qual eu seja especialmente apaixonada. Então isso sempre foi um pouco, sei lá, e também não há muitos desenvolvedores de Go por perto. Não havia nada que me mantivesse especificamente em Frankfurt ou na cena de Frankfurt. Sim, então...

Jonathan: Não, claro. E existem linguagens específicas que você diria que Frankfurt foca? Obviamente, digamos, FinTech, tudo isso. As linguagens que provavelmente sustentam isso, isso é mais um foco? Então você se sente meio uma espécie rara como desenvolvedora Go em Frankfurt? Ou está aumentando? Como isso se parece para você?

Franziska: Sim, é difícil dizer se está aumentando ou não atualmente, porque não havia tantos encontros e coisas assim por causa da Covid, né? Então é difícil dizer se mais pessoas estão vindo aos encontros com o tempo atualmente. Sim, acho que acontece muito mais, por exemplo, no espaço Java. É um pouco difícil dizer como está exatamente, mas, por exemplo, JavaScript geralmente não é tão difícil de reunir uma comunidade porque todo mundo tem alguma coisa de front-end em algum lugar, né? Então costumava acontecer mais nesse mundo de front-end do que no backend.

Jonathan: E você, presumivelmente, quando começou a programar e foi para o bootcamp, deve ter tido uma parte de front-end. Olhou um pouco, e agora você é mais focada em backend. Por que você prefere o backend ao front-end? Ou isso é só uma suposição que eu fiz?

Franziska: Não, é definitivamente... isso é algo que percebi durante o bootcamp, que eu gosto mais da parte de backend, e há aspectos de retorno nisso. Primeiro, não sou uma pessoa designer, então se você faz front-end, geralmente também precisa tomar algumas decisões sozinha. Às vezes, como isso deve ficar? O que posso fazer aqui? Para melhorar isso, escrever um CSS e tal. E é superdifícil para mim tomar essas decisões. Claro que você também recebe designs se estiver fazendo isso no mundo real. Mas é que eu simplesmente não tenho tanto olho para as coisas. E vi que as pessoas desenvolvedoras de front-end que têm isso e conseguem fazer isso são mais eficazes no trabalho. Então essa foi uma coisa em que pensei: "Isso não é bem para mim". E a outra parte era que, atualmente, o espaço de front-end é realmente supercomplexo. Os frameworks que existem por aí, a maioria dos mais usados, são muito difíceis. De certa forma, o backend atual também é um pouco mais fácil. É mais difícil no sentido de que você não... é mais difícil de visualizar, né? Você não vê o resultado final olhando para a tela e dizendo "este é o resultado final", como no front-end. Mas, pela complexidade da tecnologia envolvida, achei que atualmente é bem mais fácil do que o que acontece no espaço de front-end. Então, para mim, definitivamente em algum ponto da minha carreira, quero voltar a fazer front-end também. Mas estou esperando aparecer um framework melhor. E então, quando toda essa bagunça que existe atualmente passar, quando toda a bagunça diminuir e houver algo melhor, eu volto e me torno uma desenvolvedora de front-end.

Jonathan: Talvez eu espere você decidir quando esse framework aparecer e aí me junto a você, porque, olhando para frameworks e coisas construídas em JavaScript, e eu sou novo. Em todos os sentidos da palavra. Estou tentando aprender Go no momento e estou gostando. Mas só os conceitos e o modelo mental que você precisa ter já são um mundo completamente novo em si. E eu queria perguntar como você fez a ponte entre aprender JavaScript quando começou a programar e depois aprender Go, porque você faz parecer que foi um processo bem direto: ok, JavaScript para Go. Mas como foi isso? O que você fez para fazer essa transição?

Franziska: Sim. Boa pergunta. Algo importante aqui é que JavaScript não era minha única linguagem, né? Na universidade não me aprofundei em muitas linguagens, mas aprendi C. Aprendi Java, aprendi C++, aprendi Scala e algumas dessas linguagens mais esotéricas. Então, para mim, JavaScript já era minha quinta linguagem ou algo assim, e Go foi minha sexta. Para mim, por exemplo, Go tinha toda essa questão dos ponteiros e tal, e, vindo só de JavaScript, isso teria sido algo completamente novo, e eu teria que aprender o que era tudo aquilo. Mas, tendo todas essas outras linguagens como base, eu já sabia disso por causa de C e C++ e tal. Então me apoiei muito em coisas que já tinha aprendido na universidade, e isso tornou a entrada muito fácil. E a outra coisa que ajuda com Go é que é uma linguagem bem minimalista. Não tem tantas palavras-chave, não tem tantas construções que você pode montar. Você consegue passar por isso bem rápido. Costumo dizer para ir ao tour oficial, no site ou no A Tour of Go, sei lá. E você consegue terminar em duas, três semanas. E você tem uma compreensão sólida. Para JavaScript isso seria impossível. Você precisa de muito mais tempo só para ter uma compreensão sólida do básico, e depois há muito mais para aprender. Então, o fato de minha linguagem-alvo ser assim também ajudou muito a fazer uma transição fácil.

Jonathan: Ok. Agora você trabalha na Atlassian e mencionou um pouco sobre a sobreposição entre produtos, tecnologia e todo esse tipo de coisa. E você disse que FinTech não te dá muito, não era particularmente empolgante para você. Você diria que o espaço de produto e a interface entre a tecnologia e o produto é uma área de que você realmente gosta? E, ou o que no espaço de tecnologia especificamente seria sua paixão, se você pudesse resumir? Sei que é uma pergunta muito ampla, mas pode nos contar um pouco sobre isso?

Franziska: Sim, há diferentes tipos de domínios ou tópicos que me interessam. Não é só onde trabalho agora, mas, por exemplo, gosto muito da área de produtos de consumo. Existem empresas como a Hello Fresh, que fazem muitas coisas legais. Coisas legais relacionadas à tecnologia também, ou há muita coisa no espaço de educação, como o Exercism e tal. E depois o outro espaço é em torno de ferramentas para desenvolvedores ou ferramentas para equipes em geral. Então há várias áreas, e essa era uma em que eu conseguia pensar: "Ei, faz muito sentido ajudar as pessoas com isso". E, sobre gestão de produto em particular, posso contar uma anedota do Jeremy e também do meu CEO na minha empresa anterior. Contei a ele sobre esse novo emprego e no que eu trabalharia, e ele disse o mesmo que o Jeremy, fundador do Exercism. Ele me disse exatamente a mesma coisa: "Você escolheu esse emprego porque estava frustrada com minhas habilidades de gestão de produto?" E isso mostra que gestão de produto e melhorar isso sempre foi algo pelo qual eu era apaixonada. Porque a questão é: como desenvolvedora, você pode escrever o melhor código do mundo. Mas, se estiver escrevendo a coisa errada, se estiver construindo a coisa errada, então é tudo em vão, né? Se sua pessoa gerente de produto não fez um bom trabalho ao descobrir o que você deveria construir, talvez ninguém nunca use o que você construiu, porque não analisaram bem o mercado, não priorizaram bem e por aí. E já vivi isso em empregos passados. Construí muitas coisas que nunca viram a luz do dia porque não havia um bom processo de priorização, né? Por isso acho que melhorar essa área de gestão de produto em geral também melhora muito a vida de desenvolvedores pelo mundo, porque aí eles podem construir as coisas certas e realmente criar valor, e não construir algo que vai acabar no lixo ou nunca será visto pelos usuários.

Jonathan: Sim, não, é muito interessante, porque o que você parece captar é que, mentalmente, acho que muitas vezes tivemos essa mentalidade de que, se você é bom em tecnologia, você faz tudo nos bastidores. Você nunca aparece como pessoa porque faz a parte técnica, e esse é realmente o estereótipo, digamos. Mas parece que nos últimos anos tem havido uma sobreposição cada vez maior entre a tecnologia e o lado de negócios das coisas. E, para mim, eu sempre pensava em agile como conceito. E o conceito de agile, acho, é uma mentalidade de negócios ou uma forma de olhar as coisas imposta a uma equipe técnica. Na minha opinião, se for realmente sincero, é o que parece: é útil, mas acho que nunca vi um ambiente ágil. Ou que produzisse frutos na hora, se é que faz sentido. E talvez seja porque vi isso mal gerenciado no passado, mas parece que há mais sobreposição, com desenvolvedores começando a querer se envolver mais no lado de negócios das coisas, o que acho muito interessante e acho que é realmente uma coisa boa, porque aí as decisões são melhores como um todo.

Franziska: Sim, é... algumas pessoas desenvolvedoras querem se envolver mais, mas outras também não querem se envolver mais, mas precisam se envolver de qualquer forma. A questão é que simplesmente não funciona assim: a gestão de produto senta, quebra tudo em pedaços, joga por cima do muro, a pessoa desenvolvedora constrói e pronto. Nunca funcionou bem, nem no passado, quando esse era o modelo padrão. E hoje em dia há mais foco nisso, mas sempre foi a coisa certa ter mais diálogo entre desenvolvedores e designers, desenvolvedores e gerentes de produto. E também quando você tem mais gente a jusante, como uma equipe de suporte e talvez alguém que faça manutenção para você, quanto mais próximos trabalharem juntos e realmente chegarem à melhor solução para algo juntos, melhor, mais valor vocês criam juntos. E isso sempre foi verdade. Por exemplo, atualmente, na feature em que estamos trabalhando, a gestão de produto tem muitas ideias. O que poderia fazer parte da primeira iteração dessa nova feature, mas para eles não dá para julgar sozinhos. Adicionar isso é mais um dia de trabalho ou isso explodiria todo o escopo e viraria mais três meses de trabalho? Então, para eles, é impossível julgar. A única forma de encontrarmos um bom pacote para essa primeira iteração é conversando uns com os outros e dizendo: "Isso seria fácil de adicionar. Isso é difícil de adicionar" e tal. Aí encontramos um bom escopo. E a coisa boa no meu trabalho na Atlassian é que temos um gerente de produto que vê isso do mesmo jeito. Ele sempre diz que escopo é uma coisa de mão dupla. "Eu tenho algumas ideias aqui, mas você também precisa me dar informações sobre o que faz mais sentido". E aí resolvemos algo juntos. Também vejo que, quando passei pelo processo seletivo, todo esse tema de comunicação com outras pessoas, com outras equipes e tal, tem muito foco atualmente. Muitas pessoas perguntam: "Como você trabalhou com outras equipes?" E elas realmente julgam, só conversando com você, o quão bem você se articula, porque é superimportante que você se importe com o que as outras equipes estão fazendo e esteja envolvido. E só assim você consegue realmente aproveitar ao máximo o tempo que tem.

Jonathan: Parece uma abordagem muito mais integrada nesse sentido. E isso me leva a outro pensamento aqui: muitas vezes

Franziska: Ah, talvez antes de seguirmos, você mencionou a palavra-gatilho agile, né? Então tenho que comentar. Não sei se foi de propósito só para me provocar ou não. Sobre agile, eu sempre acho que as ideias de base de onde tudo isso vem, pessoas são mais importantes que processos e todas essas coisas básicas que surgiram há muito tempo ainda fazem muito sentido. Tem muita mágica em volta delas. Mas aí vieram todos os consultores, inventaram esses frameworks enormes e tal, venderam isso, e existem scrum masters e por aí. E também, pela minha experiência, como você disse, muita coisa disso não ajuda tanto. Se, por exemplo, produto e desenvolvedores não estão se comunicando bem, só colocar todas essas estruturas por cima também não conserta direito. Então também não sou grande fã dessas práticas padrão de scrum, práticas ágeis. Também não vi isso funcionar super bem em lugar nenhum.

Jonathan: É interessante, porque parece... Se você procura emprego no LinkedIn para product owner ou gerente de produto, é tudo scrum, agile. Em todo lugar, é incrível. Mas é engraçado como as equipes de desenvolvimento mais... como você diria? Mais engenhosas que vi usam Kanban, onde não há pressão de necessariamente produzir dentro de um prazo, mas produz qualidade, e você devolve a responsabilidade à pessoa para ela prestar contas disso, o que tem sido muito interessante de acompanhar, porque equipes jovens ficam presas no agile, não funciona, se frustram, e aí acabam no Kanban, onde vamos avançando aos poucos, de forma consistente, e as coisas funcionam. Mas acho que também é interessante quando você tem um produto como negócio versus quando você constrói produtos para outras pessoas. Não sei qual era seu trabalho anterior, se era um produto interno. Sei que na Atlassian você basicamente constrói seus próprios produtos.

Franziska: Sim, sempre construí meus próprios produtos. Nunca trabalhei em agências.

Jonathan: Sim. A parte de agência é um pesadelo, porque é onde todo mundo examina cada hora de desenvolvimento, sei lá, e ficam tipo: "Mas eu não entendo. Por que esse botão me custou 400 dólares?" E é porque você queria movê-lo daqui para aqui, o que exigiu refazer o backend inteiro. Então eu queria te fazer uma pergunta que já fizemos para muita gente em nossos vários podcasts e transmissões ao vivo. E é todo esse conceito da colina pela qual você morreria, ou a coisa que você defenderia com a vida quando se trata de uma opinião ou na tecnologia. Não é que a gente queira dizer que essa é a opinião que você deve ter, mas é mais: que valor ou opinião você tem que diria ser absolutamente essencial para você e que adoraria ver em todo lugar no espaço de tecnologia? É uma pergunta bem ampla, mas há uma coisa que você defenderia com muita força na tecnologia?

Franziska: Achei que você fosse deixar isso um pouco mais leve. Eu queria ir com a opinião impopular mais leve. Tudo bem também?

Jonathan: Sim, com certeza.

Franziska: Ok, não tenho muitas colinas enormes pelas quais morreria. Então, uma das coisas sobre as quais tenho uma opinião forte é que muita gente sugere que você otimize sua configuração pessoal de desenvolvimento. E acho isso, em grande parte, superestimado. As pessoas vão te dizer: "Ah, você precisa aprender Vim, porque aí nunca mais vai pegar o mouse, e é tão bom" e tal. E as pessoas acreditam nisso quando estão começando na indústria. Aí passam um ano aprendendo todos os atalhos mágicos e tal. E no fim, sei lá, economizam talvez um dia por ano ou algo assim. Então aquele ano de sofrimento não valeu a pena. E há muitas dessas coisas, como pessoas dizendo que você precisa ter todos os seus aliases configurados no terminal, nos dotfiles, e que precisa saber todos os cartões de atalho e tal. Você gasta tanto tempo aprendendo essas coisas, mas economiza tão pouco. E acho que o que acontece é que as pessoas superestimam o tempo que passam digitando no trabalho, né? Como mencionamos antes, boa parte do trabalho também é comunicação. Boa parte do trabalho é, na verdade, pensar. Sim. E só uma parte do seu dia é realmente digitando algo, digitando código ou comandos e tal. Então muita gente otimiza essa parte muito pequena do dia e, na minha opinião, se esse é seu hobby, então vá em frente. Ou se isso tem algum valor semelhante para você. Se você é SRE, ou seja, engenharia de confiabilidade de site, e mexe em servidores e tal, pode fazer sentido saber Vim, né? Porque você não pode abrir uma interface gráfica. Mas, se você não precisa, não se preocupe com isso. Use o que você se sentir confortável e pronto. Por exemplo, sobre atalhos, eu sempre digo: a maioria das interfaces gráficas mostra o atalho ao lado da coisa em que você clica. Então, se você clica naquilo cinco vezes por dia, ok, pode fazer sentido... ou a cada cinco minutos, pode fazer sentido lembrar, sabe? O atalho para salvar, se você clica nele o tempo todo, mas se não, fique feliz na sua interface gráfica, faça suas coisas e prefira gastar o tempo melhorando suas habilidades reais de programação. Faça alguns exercícios, algo assim. Aprenda uma nova linguagem. O que for. Mas é isso que sempre tento dizer a desenvolvedores novos: não se intimidem com essas pessoas que dizem que você precisa usar um desses editores antigos e otimizar sua produtividade ali e...

Jonathan: É engraçado, porque muitas vezes as paixões das pessoas meio que entram na conversa, compreensivelmente. Porque é: "Ah, estou superempolgado porque otimizei minha vida". Mas, pensando bem, nem sempre é o melhor. Foi mais ou menos minha experiência de aprendizado: havia tantas coisas, recomendações que as pessoas recebem. E se você vai no YouTube e pesquisa "como aprender a programar", alguém começa com "como configurar seu GitHub". Alguém começa com "como entender o terminal", etc. Eu fico tendo que puxar para trabalhar localmente e no editor online, sei lá. Acho que esse é um conselho muito bom. Mantenha as coisas bem simples. Então, se você vai passar mais tempo pensando, como você faz, o que você faz para pensar nos problemas? Se você tem uma situação no trabalho, ou em geral, o que você faz no seu dia? Você reserva um tempo? Como é seu processo?

Franziska: Uma coisa com que gosto de começar é basicamente receber o problema um pouco antes de precisar resolvê-lo e depois deixá-lo no fundo da cabeça por uma semana ou algo assim. Aí, no chuveiro, penso um pouco nele. E antes de dormir, penso um pouco nele, fico virando aquilo na cabeça por um tempo. E geralmente isso me ajuda a encontrar alguns pontos de partida. E dali, especialmente se for para o trabalho, costumo começar anotando alguns dos pontos, porque escrever as coisas definitivamente me ajuda a clarear a mente, a encontrar os pontos, por exemplo, onde ainda preciso falar com a pessoa gerente de produto porque não sei exatamente o que precisamos ali para os clientes. Então eu anotaria o que já sei e como resolver essas coisas. E também anotaria uma tabela, geralmente bem grande, de perguntas em aberto, seja para outra pessoa da equipe, seja para mim mesma, coisas a descobrir. E isso realmente me ajuda a clarear as coisas. E depois, a partir do conceito de altíssimo nível, tento quebrar em tarefas de programação mais concretas. Como fica a API? Que dados preciso armazenar para isso? E como isso vai da história ao dado e volta, e que lógica precisa acontecer no caminho. Depende. Pode ser que eu já tenha encontrado muitos dos problemas que precisam ser resolvidos no processo de pensar antes, mas também às vezes, quando começo a codar, encontro problemas novos que não tinha previsto, e aí preciso voltar, pensar de novo e depois voltar ao código de fato. Isso também pode acontecer. Mas geralmente o sistema é primeiro tentar pensar um pouco na coisa. Resolver alguns problemas com antecedência me ajuda muito. E aí, ou o código fica direto, ou encontro mais problemas e volto, mas tudo bem também.

Jonathan: Ok. Não, isso é legal. Agora, muitas vezes na minha cabeça eu tenho a ideia de que, se você é programador em tempo integral, você literalmente senta no computador. De manhã até a noite, só trabalhando aos poucos. Mas estou percebendo que a capacidade de pensar nos problemas, e acho que isso é algo que o Exercism também tenta enfatizar, é pensar bem no problema. Garantir que você tem todo o contexto. E aí a parte de codar é realmente só a expressão desse processo implementada. E o Jeremy também diria o mesmo. Acho que ele pensaria em muitas coisas e depois codaria bem pouco.

Franziska: Sim. Também, sim. Uma dica comum é começar escrevendo, em comentários, o que você quer que essa coisa faça. "Ok, preciso fazer isso primeiro, depois aquele foi o resultado, depois aquilo", e então preencher os pedaços de código para cada parte. Isso também ajuda muito.

Jonathan: Tem sido engraçado, porque o que você está dizendo eu vou definitivamente tentar agora, porque percebo... quando você tem que programar e especialmente para aprender Go ou sei lá. Um dos exercícios que eu estava tentando fazer era pegar uma entrada do teclado, armazenar e depois retornar algo como "você teve este número de tentativas" ou algo assim. Mas todo o processo de pensar em quebrar esse problema em tarefas realmente granulares era algo com que eu não estava muito familiarizado. Então tem sido muito interessante aprender a pensar em um problema desse tipo. Passo a passo. Então, não, essas são algumas dicas legais que vou levar com certeza.

Franziska: Também é algo que muita gente... comentou no Exercism? Então, muita gente não tem tanta dificuldade em entender a linguagem e a sintaxe. Mas essa parte geral de "como resolvo este problema mais amplo" é com o que as pessoas têm dificuldade. E tentamos um pouco fornecer documentação sobre isso também, dizendo: "Aqui, este é um bom recurso para aprender a pensar como programador" e tal. Mas talvez também possamos melhorar isso no...

Jonathan: Não, isso... Não, é verdade. E acho que isso leva a uma pergunta interessante que já fiz para algumas pessoas, e que sempre foi interessante quando conversei com outras. É sobre todo esse conceito de quando a programação "clicou" para você. Não sei se você já teve essa sensação. Eram conceitos e teoria, você passou por livros, mas aí acordou uma manhã e de repente pensou: "Ah, agora faz sentido". Essa costuma ser minha experiência de aprender algo. Quando foi isso para você, ou aconteceu com você? Ou foi mais gradual: "Ok, entendi isso devagar"? Como foi?

Franziska: Ah, sim, pensei um pouco nisso e acho que houve um momento de "clique". Mas deixe-me começar. Não clicou, se puder ser assim. Quando eu era adolescente, tinha um desses laptops de brinquedo que tinham alguns jogos. E também tinha uma função de programar em BASIC. Meu avô apareceu e ele... ele começou programando com cartões perfurados, basicamente. Ele sempre gostou de tecnologia, e ele disse: "Ah, que legal que dá para programar aí". Ele queria me mostrar que programar é uma coisa legal. E ele começou, como todo mundo começa. Digitou "print Hello world" e apareceu "Hello world", e eu fiquei: "Eu sei digitar Hello World. O que você está fazendo?" E ele disse: "Não, ele faz o que você manda". E aí ele digitou algo como "um mais dois é" e apareceu três. E eu fiquei: "Minha calculadora faz isso. O que você quer me mostrar aqui?" Não entendi. E depois, mais tarde, tive uma coisa de ciência da computação na escola. Lá tínhamos Turbo Pascal, e tinha um plugin ou algo assim em que você podia ter uma tartaruguinha que desenhava algo na tela. E deram alguns exercícios legais em que você inseria fórmulas e ele desenhava fractais superlegais e intricados. Que pareciam folhas e tal, e você conseguia isso só digitando a fórmulinha que dizia à tartaruga o que desenhar. E esse foi para mim o ponto em que clicou, porque percebi que, dando instruções super simples, dá para criar essa coisa complexa que eu nunca teria conseguido fazer sozinha. Eu não conseguiria desenhar tantas linhas, né? Então essa foi a coisa para mim: "Ah, sim, isso pode fazer mais do que eu conseguiria de qualquer forma". Mas antes, com as explicações do meu avô e o que ele me mostrou ali, aquilo não funcionou. Mas ver a parte gráfica e ver como poucas instruções são necessárias para fazer o computador fazer essa coisa complexa foi onde clicou para mim.

Jonathan: Ok, isso é legal, porque tive isso com métodos outro dia. Eu fiquei tipo: "Que diabos é um método?" E a ficha simplesmente não tinha caído. E foi igual para mim com química. Tive que estudar por dois anos e, de repente, a tabela periódica fez todo sentido. Eu tinha uns 16 anos na época. E lembro de pensar: "Ah, meu Deus, isso é a coisa mais fácil. Não acredito que não entendi isso por dois anos", e aí a prova foi moleza. Porque eu pensava: todas as respostas estão na tabela periódica. Você só precisa fazer sua coisinha e tudo se sincronizou no meu cérebro. E tem sido interessante também conversar com pessoas sobre quando esse momento clicou. A Rebecca, que você conhece, talvez conheça da trilha de Unison no Exercism, eu perguntei para ela, porque ela fez faculdade de literatura inglesa. E eu perguntei: "Como você foi da literatura inglesa para a programação?" E qual foi o método que você usou na sua mente para conceituar? Essa mudança. E ela disse que imaginava o programa que estava escrevendo como uma história, uma narrativa com um protagonista, e as funções eram personagens e tal. E eu fiquei: "Ah, uau, isso é tão interessante. Nunca teria pensado nisso desse jeito". Não, isso é realmente

Franziska: Sim. Mas isso volta ao que estávamos falando sobre os comentários, né? Você escreve antes do código. É exatamente assim: primeiro conta a história, depois escreve o código extra para ela.

Jonathan: Que legal que você mencionou isso, porque acho que perceber que na verdade estou escrevendo uma história nos meus comentários... vou levar isso com certeza. Não.

Franziska: E mais uma coisa sobre esse tópico: também fizeram alguns estudos sobre em que pessoas são boas, tipo programação e tal, e descobriram que, na verdade, suas habilidades verbais, tipo quantas palavras você conhece e tal, têm um grande papel nisso. Então, por exemplo, nomear coisas é algo que sempre dizem ser difícil em programação. Se você é bom em inventar boas palavras que descrevem aquilo com que está lidando, isso deixa seu código muito melhor. Então, na verdade, não é só matemática e coisas analíticas. Também tem muito a ver com ser bom com palavras, o que talvez você não esperasse de início.

Jonathan: Não, é linguagem, imagino, no fim das contas, o que é um pensamento interessante que eu tive. Para você, você é alemã naturalmente, mas essa é a sua língua. Você desenvolve agora na Atlassian em inglês? E antes você já estava em inglês? Tipo, como... porque eu diria que talvez, infelizmente, tudo esteja em inglês. E você fala inglês muito bem, mas você aprendeu inglês na escola e então a programação era toda em alemão? Ou como você aprendeu tudo isso a partir dessa experiência?

Franziska: Sim, na maior parte, tive a sorte de que a maior parte das coisas de programação estava em inglês, e todos os comentários estavam em inglês e tal. Nem sempre é o melhor inglês, mas tudo bem. Para mim, aprender inglês, eu nunca fui boa em inglês na escola. Mas tive a sorte, na universidade, de passar um ano, tipo um ano de intercâmbio no Reino Unido. Então foi realmente viver o idioma. E aí meu inglês melhorou muito. Depois disso foi moleza, mas antes era realmente ruim. E aquele ano, de realmente aprender o idioma, também me ajudou mais tarde a conseguir me comunicar com colegas que não são da Alemanha e tal. E isso com certeza é um fator. Se o inglês não é sua língua nativa, isso torna mais difícil você lutar pelo nome certo para as coisas, né? E nomear coisas. Você faz isso a cada linha de código que escreve, né? Você está sempre atribuindo algo a algo e precisa nomear essa coisa o melhor possível para deixar o código claro.

Jonathan: Não, não me parece tão fácil para quem não fala inglês. É algo que acho que também vai começar a mudar. Vi um artigo outro dia dizendo que a Índia é o espaço de tecnologia que cresce mais rápido no mundo no momento. E o inglês, se eles ficam com o inglês ou com seus dialetos locais, que eu sei que são muitos na Índia. É interessante pensar, refletir sobre tudo isso. Estamos chegando a quase uma hora. Gostei muito disso. Tenho mais uma pergunta para você, Franziska. E aí você pode fazer uma recomendação. Para a comunidade do Exercism. Qual seria sua recomendação? Pode ser qualquer coisa, desde uma comida para experimentar até algo como dar uma caminhada, ou o que você quiser recomendar à comunidade. Qual seria sua recomendação para a comunidade do Exercism esta semana?

Franziska: Sim, vou voltar àquela questão de produtividade que mencionei na opinião impopular. Minha recomendação seria: faça uma pausa, maratone aquela série da Netflix que você sempre quis ver, ou qualquer coisa assim. Normalmente as pessoas ficam muito focadas em ser produtivas o dia inteiro. E isso não é bom para o seu cérebro. Não é bom para o seu cérebro otimizar tanto assim, porque seu cérebro, para ser bom no trabalho, para ser criativo e tal. Seu cérebro precisa de pausas e, durante essas pausas, processa coisas. E aí só sentar no sofá e assistir um pouco de alguma série ou sei lá, isso é bom. É uma coisa boa de fazer, só dar ao seu cérebro um tempo para fazer o que precisa nos bastidores. E acho que fazer pausas, tirar um tempo, é subestimado. Então essa seria minha recomendação. Não se sinta culpado por fazer pausas e simplesmente relaxar.

Jonathan: Legal. Não, gostei muito disso. Bom, pessoal, quando vocês estiverem ouvindo isso, essa é a recomendação, o conselho desta semana da Franziska. Então, Franziska, muito obrigado pelo seu tempo, por tudo que você coloca no Exercism e por todo o pensamento e engajamento que você tem com a comunidade. Sei que você se envolveu muitíssimo com o Exercism, melhorando e ajudando, e agradecemos muito isso. Só queria dizer obrigado e obrigado pelo seu tempo esta manhã. Um feriado nacional em que você poderia estar comemorando ou fazendo algo divertido. E você ofereceu seu tempo aqui, então agradeço imensamente. Fiquei preso na chamada quando parei a gravação, mas só queria agradecer muito e... tenha um resto de dia maravilhoso. Legal.

Franziska: Obrigada por me receber.

Mais histórias da nossa comunidade

Ouça, aprenda e se inspire com os membros da nossa comunidade.