Voltar à comunidade

Não sejas demasiado produtivo!

Nesta História da Comunidade, a Franziska e o Jonathan conversam sobre dinâmicas de equipa, sobre como pessoas diferentes numa empresa abordam a colaboração e sobre como te posicionares para aprenderes a tornar-te programador.

Ver no YouTube
DURAÇÃO 50MIN

Jonathan: Olá e bem-vinda ao Podcast do Exercism. Chamo-me Jonathan e tenho o privilégio de te receber hoje. E tenho comigo a Franziska, que é uma das pessoas responsáveis pela manutenção dos percursos de Go e de JavaScript. É um privilégio enorme ter a Franziska como parte do Exercism, e ela está envolvida há vários anos. Por isso, se andas por aqui, é possível que já te tenhas cruzado com a Franziska. Seja nos grupos de aprendizagem ou nos percursos de Go e de JavaScript. Franziska, um enorme bem-vinda a ti hoje. Muito obrigado por te juntares a nós. Vou entrar já no assunto e perguntar-te como chegaste onde chegaste.

Franziska: Sim. Muito bem. Sou a Franziska. Sou a June, ou uma June Dev, na internet. Atualmente vivo perto de Frankfurt, na Alemanha, mesmo fora do limite da cidade, num pequeno subúrbio. E há pouco comecei um novo trabalho na Atlassian. A Atlassian é a empresa por trás de muitas ferramentas adoradas ou detestadas, como o Trello, o Jira e o Confluence. Sim, e o que faço lá é desenvolver uma nova ferramenta para ajudar os gestores de produto no seu trabalho. Porque o Jira está focado nos programadores, mas não serve bem o que os gestores de produto precisam de fazer, priorizar coisas e por aí. Por isso estamos a construir algo especificamente para eles. Gosto do Go enquanto linguagem. Gosto mesmo. E o backend está construído em Go. Por isso, quando vi o anúncio de emprego, pensei: olha, que fixe, estão a fazer isto. Candidatei-me e fiquei com o trabalho. Até agora foram só 30 dias, não sei, mas tem sido uma boa experiência. Depois, em criança, sempre me interessei por coisas de tecnologia, ciências naturais, ficção científica, sou grande fã de Star Trek, tudo isso. Descobri que era boa a matemática e a física na escola. Na altura, muita gente ia para informática e diziam-nos sempre para não estudarmos o que os outros estavam a estudar, porque depois haveria gente a mais dessas áreas, e eu pensava: ok, talvez não deva ir para informática, porque vai haver gente a mais. Enfim, pensei: ok, vamos fazer algo parecido. Acabei por estudar física, de que gostava muito na escola. E tinha informática mais como disciplina secundária. Por isso tive algumas cadeiras, mas não tantas como os outros. Dei por mim a chegar ao ponto em que tens de pensar: ok, o que é que vou fazer para o resto da minha vida, certo? Como é que ganho o meu dinheiro a fazer algo de que gosto mesmo? E percebi que esta parte da programação era, na verdade, a parte de que mais gostava do que fiz nos meus estudos e em que era boa. E queria fazer mais disso. E também é algo que paga as contas. Sim, então pensei: ok, como é que arranjo um trabalho nesta área sem ter um curso clássico de informática na altura. A outra coisa era que, naquele momento, não queria tornar-me numa programadora de C, numa programadora de Java, daquele tipo de código bancário antiquado. Sim, então pensei: ok, como é que aprendo as coisas modernas, a internet, a web? Quero construir algo para isso. E depois um amigo disse-me que existia uma coisa chamada bootcamps de desenvolvimento web, onde podes ir durante três meses e ensinam-te as coisas novas e fixes. Sim. Então decidi que queria fazer isso. E depois, a partir daí, teria um ponto de partida melhor para encontrar trabalho. E na altura não havia nada disso aqui na Alemanha. Sim. Ou podias ir para a universidade durante anos e anos, certo? Ou havia alguns sítios onde podias trabalhar um pouco e estudar ao mesmo tempo, mas também programas enormes, com anos e anos de formação. E, em termos de bootcamps, só havia coisas como aceleradoras de startups. Onde aprendias um pouco de código, mas depois também gestão, economia e por aí. Por isso não era bom para mim. Sim, olhei em volta e encontrei um bom em Londres, que tinha as matérias que eu queria aprender.

Jonathan: É aí que está a ação.

Franziska: A ação está a acontecer. Sim, exatamente. Exatamente. Onde as coisas novas e fixes acontecem. Sim, encontrei este bootcamp, fui para lá. Foi mesmo uma experiência ótima. E fizemos Node.js no backend. Depois voltei a Frankfurt e encontrei trabalho como programadora de Node.js. E a empresa era bastante fixe, a tecnologia era mesmo fixe, e entrei em tudo muito depressa, e foi muito divertido, mas tive um pouco de azar com a minha equipa, porque havia muitos colegas com o ego muito grande, muito machões. E era assim: se tinhas uma reunião, quem falasse mais alto ganhava a discussão. E isso não é uma equipa agradável para se estar.

Jonathan: É um tema bastante comum, em que as pessoas começam a programar e depois os aspetos periféricos, os aspetos de equipa, são sempre aquilo que as pessoas não esperam que seja o problema ou o desafio. Por isso parece ser uma coisa bastante comum. Desculpa.

Franziska: Sim. Sim. Sem dúvida. E pensas... no início sobrevalorizas a parte técnica. Pensas: ah, este trabalho tem exatamente a tecnologia que quero, por isso vai correr bem. Mas, na verdade, a parte da equipa é quase mais importante do que a tecnologia exata com que trabalhas. Sim. Então, dois anos depois, um amigo era também CTO noutra empresa aqui em Frankfurt. Disse: também gostamos de transformar a nossa stack tecnológica e queremos construir algo novo, mas não queremos fazer Node.js. Queríamos ir... decidiram isso por alguma razão. E ele disse que eu podia juntar-me a eles. Mas teria de aprender Go, claro. E eu disse que, se não se importassem que eu levasse algum tempo no início a aprender, estava disponível. Olhei um pouco para a linguagem e pareceu tudo fixe. Sim, mudei de empresa. E nesse novo sítio a equipa era mesmo fixe. Lá era mesmo assim: se estivesses a discutir com o CEO e o teu argumento fosse melhor, isso era notado. E as pessoas reagiam a isso. E era mesmo agradável trabalhar ali, e as pessoas eram muito interessantes, e por aí. Fiquei lá cinco anos. Construí muitos serviços de crescimento e também escrevi muita documentação e conceitos, ajudei a integrar outros programadores no Go e fiz também algumas coisas de frontend, e por aí. Sim, mas ao fim de cinco anos também andas à procura de um novo desafio, e o que me levou a procurar um novo trabalho foi a situação da Covid. Reparei... eu trabalhava a partir de casa de qualquer forma, certo? E ia talvez ao escritório uma vez por semana. Então pensei: há imensos trabalhos totalmente remotos por aí. Talvez consiga algo mesmo fixe numa empresa maior. Se trabalho em casa de qualquer forma, também podia trabalhar para essa empresa maior e mais fixe, certo? Sim, foi então que, quando estava a trabalhar, encontrei este trabalho na Atlassian.

Jonathan: Então acho que a minha pergunta era: toda a pandemia te abriu a ideia de que talvez haja mais do que Frankfurt e a cena das startups em Frankfurt? Porque ia perguntar-te como era a cena das startups em Frankfurt enquanto espaço.

Franziska: Sim, só quanto à questão da Covid, primeiro: o que a Covid me abriu foi esta ideia de trabalhar totalmente remoto. Porque antes era sempre assim, de ir ao escritório. Gosto de ver as pessoas pessoalmente, de como estruturo o meu dia, etc. Mas depois percebi que, ao fim de dois anos a trabalhar sobretudo à distância, percebi que está tudo bem. Consigo lidar com isso. Tenho a minha filha, tenho de sair de casa de qualquer forma, etc. Por isso tenho estrutura suficiente no meu dia agora. Isso é algo que a pandemia me mostrou e que me abriu para a ideia de procurar noutro sítio. Quanto a Frankfurt, há muita coisa a acontecer, tecnologia e startups aqui, mas é muito... Como seria de esperar, há muita coisa focada em banca, muitas fintechs e por aí. E isso não é particularmente... já trabalhei em fintech no passado, mas não é um assunto que me apaixone particularmente. Sim, por isso isso era sempre um pouco... não. E também não há assim tantos programadores de Go por aqui. Sim, não havia nada que me prendesse especificamente a Frankfurt ou à cena de Frankfurt. Sim, então...

Jonathan: Não, claro. E há linguagens específicas que dirias que Frankfurt foca? Obviamente, dizes fintech, tudo isso. As linguagens que estão por trás disso são presumivelmente esse foco? Sentes-te um pouco uma espécie rara enquanto programadora de Go em Frankfurt? Ou está a aumentar? Como é que te parece?

Franziska: Sim, é difícil dizer se está a aumentar ou não neste momento, porque não havia assim tantos encontros e coisas do género por causa da Covid, certo? Por isso é difícil dizer se está a chegar mais gente aos encontros ao longo do tempo. Sim, acho que há muito mais a acontecer, por exemplo, na área de Java. Sim, por isso é um pouco difícil dizer como está exatamente, mas, por exemplo, JavaScript normalmente não é assim tão difícil de juntar uma comunidade, porque toda a gente tem alguma coisa de frontend em algum lado, certo? Por isso havia normalmente mais atividade no mundo do frontend do que no backend.

Jonathan: E tu, presumivelmente, quando começaste a programar e foste para o bootcamp, terias tido uma parte de frontend. Olhaste um pouco para isso e agora estás mais focada no backend. Porque é que preferes o backend ao frontend? Ou é só uma suposição minha?

Franziska: Não, é mesmo... foi algo que percebi durante o bootcamp, que gosto mais desta parte de backend, e há razões para isso. Primeiro, não sou uma pessoa de design, por isso, se fazes frontend, normalmente também tens de tomar algumas decisões sozinha. Às vezes, como é que isto devia ficar? O que posso fazer aqui para melhorar isto, escrever algum CSS, etc. E é super difícil para mim tomar essas decisões. Claro que também recebes designs se estiveres a fazer isto no mundo real. Mas sim, simplesmente não tenho muito olho para estas coisas. E vi que os programadores de frontend que têm isso e que conseguem fazê-lo são mais eficazes a fazer o trabalho. Isso foi uma coisa em que pensei: isto não é bem para mim. E a outra parte era que, atualmente, o espaço do frontend é mesmo super complexo. Os frameworks que andam por aí, a maioria dos que são usados habitualmente, são mesmo difíceis. De certa forma, o backend atual também é um pouco mais fácil. É mais difícil no sentido de que não... é mais difícil de visualizar, certo? Não vês o resultado final como olhar para o ecrã e dizer "este é o teu resultado final", como no frontend. Mas, quanto à complexidade da tecnologia envolvida, achei-o atualmente bastante mais fácil do que o que se passa no espaço do frontend. Por isso, para mim, definitivamente, em algum momento da minha carreira quero voltar também a fazer frontend. Mas estou à espera que apareça um framework melhor. E depois, quando toda esta confusão que existe atualmente acalmar e houver algo melhor, volto e torno-me programadora de frontend.

Jonathan: Talvez espere que decidas quando esse framework aparecer e depois junto-me a ti, porque, olhando para frameworks construídos sobre JavaScript, e... eu sou novo. Em todos os sentidos da palavra. Estou a tentar aprender Go neste momento e estou a gostar. Mas só os conceitos e o modelo mental que tens de ter, é um mundo completamente novo em si mesmo. E queria perguntar-te como é que fazes a ponte entre começar a aprender JavaScript quando começaste a programar e depois aprender Go. Porque fazes parecer que foi um processo bastante direto, ok, de JavaScript para Go. Mas como foi isso? O que fizeste para fazer essa transição?

Franziska: Sim. Boa pergunta. Uma coisa importante aqui é que JavaScript não era a minha única linguagem, certo? Na universidade não me aprofundei muito em muitas linguagens, mas aprendi C. Aprendi Java, aprendi C++, aprendi Scala e algumas dessas linguagens mais esotéricas. Por isso, para mim, Java já era a minha quinta linguagem ou algo assim, e depois Go foi a sexta. Para mim, por exemplo, Go foi toda aquela coisa de... também ouviste falar dos pointers e por aí, e, vindo só de JavaScript, isso teria sido algo completamente novo e eu teria de aprender o que é isso tudo, etc. Mas, tendo todas essas outras linguagens como base, já sabia isso de C e C++, etc. Sim, apoio-me muito em coisas que já tinha aprendido antes na universidade, e isso tornou muito fácil entrar. E a outra coisa que ajuda com Go é que é uma linguagem bastante minimalista. Não tem assim tantas palavras-chave, não tem assim tantas construções que possas construir. Consegues passar por ela... bastante depressa. Por exemplo, costumo dizer: vai ao tour oficial, vai ao site ou à documentação ou o que for. E consegues passar por tudo em duas semanas, três semanas. E ficas com uma compreensão sólida. E com JavaScript isso seria impossível. Precisas de muito mais tempo só para ter uma compreensão sólida do básico, e depois há imenso mais para aprender. Sim. E esse facto de a linguagem de destino também ajudou muito a tornar a transição fácil.

Jonathan: Ok. Então agora trabalhas na Atlassian e falaste um pouco da sobreposição entre produtos, tecnologia e tudo isso. Disseste que a fintech não te dá muito, não era particularmente excitante para ti. Dirias que o espaço do produto e a interface entre a tecnologia e o produto é uma área de que gostas mesmo? E, ou o que no espaço da tecnologia especificamente seria a tua paixão, se pudesses resumir? Sei que é uma pergunta muito grande, mas conta-nos um pouco sobre isso.

Franziska: Sim, há diferentes tipos de domínios ou temas que me interessam. Não é só onde trabalho agora. Por exemplo, gosto muito das coisas... em produtos de consumo. Há empresas como a Hello Fresh, que fazem muitas coisas fixes. Coisas relacionadas com tecnologia, também. Ou há muita coisa na área da educação, como o Exercism e por aí. E depois a outra área é a das ferramentas para programadores ou ferramentas para equipas em geral. Sim, há várias áreas, e esta era uma das coisas em que podia pensar: olha, faz todo o sentido ajudar as pessoas com isto. E depois, em particular com a gestão de produto, posso contar esta anedota do Jeremy e também o meu CEO na minha última empresa... falei-lhe deste novo trabalho e do que estaria a fazer, e ele disse o mesmo que o Jeremy, o fundador do Exercism. Disse-me exatamente a mesma coisa: "Escolheste este trabalho porque estavas frustrada com as minhas capacidades de gestão de produto?" E isto, esta coisa toda... isto diz-nos que esta questão da gestão de produto e de a melhorar era, e sempre foi, algo que me apaixonava. Porque a questão é: enquanto programadora podes escrever o melhor código de sempre. Mas, se estiveres a escrever a coisa errada, se estiveres a construir a coisa errada, então é tudo em vão, certo? Se o teu gestor de produto não fizer um bom trabalho a descobrir as coisas certas que devias construir, então talvez ninguém use aquilo que construíste, porque não analisaram bem o mercado, não priorizaram bem, etc. E eu vivi isso em trabalhos anteriores. Construí muitas coisas que nunca viram a luz do dia, porque não havia um bom processo de priorização, certo? É por isso que penso que melhorar esta área da gestão de produto em geral também melhora muito a vida dos programadores em todo o mundo, porque assim podem construir as coisas certas e criar valor a sério, e não construir algo que vai acabar no lixo ou que os utilizadores nunca vão ver.

Jonathan: Sim, é mesmo interessante, porque o que pareces destacar é que, mentalmente, muitas vezes tivemos aquela mentalidade de que, se és bom na parte técnica, fazes tudo nos bastidores. Nunca vês a luz do dia como pessoa, porque fazes a parte técnica, e isso é realmente o estereótipo, digamos. Mas parece que nos últimos anos tem havido uma sobreposição cada vez maior entre a parte técnica e a parte de negócio. E, para mim, eu pensava sempre no agile como conceito. E, na verdade, o conceito de agile, acho eu, é uma mentalidade de negócio ou uma forma de olhar para as coisas imposta a uma equipa técnica. Na minha opinião, se for mesmo honesto, é o que parece, é útil, mas não me lembro de alguma vez ter visto um ambiente ágil produzir frutos a tempo, se é que faz sentido. E talvez seja porque o vi mal gerido no passado, mas parece que há mais sobreposição, com os programadores a começar a querer envolver-se mais na parte de negócio, o que acho muito interessante e que é, na verdade, uma coisa boa, porque significa que as decisões são melhores no seu conjunto.

Franziska: Sim, alguns programadores querem envolver-se mais, mas outros também não querem, e no entanto precisam de se envolver de qualquer forma. A questão é que aquilo simplesmente não funciona assim, de a gestão de produto se sentar e partir tudo em pedaços e depois passar por cima do muro, e o programador constrói e depois está tudo bem. Nunca funcionou bem, mesmo 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 os programadores e os designers, os programadores e os gestores de produto. E também, sempre que... quando tens dúvidas mais a jusante, tens uma equipa de apoio e talvez alguém que faz manutenção por ti ou o que for. Quanto mais de perto trabalharem juntos e realmente encontrarem a melhor solução para algo em conjunto, melhor, mais valor podem criar juntos. E isso sempre foi verdade. Por exemplo, neste momento, na funcionalidade em que estamos a trabalhar, a gestão de produto tem imensas ideias. O que poderia fazer parte da primeira iteração desta nova funcionalidade, mas, para eles... não conseguem julgar sozinhos. Acrescentar esta coisa é mais um dia de trabalho? Ou isto faria explodir todo o âmbito e tornaria o trabalho mais três meses? Sim. Para eles é impossível julgar isso. Por isso a única forma de encontrarmos um bom empacotamento para esta primeira iteração é falarmos uns com os outros e dizermos: isto seria uma coisa fácil de acrescentar. Isto é uma coisa difícil de acrescentar, etc. E depois encontramos um bom âmbito e... e a coisa boa no meu trabalho, na Atlassian, é que temos um gestor de produto que vê isto da mesma forma. Ele diz sempre que o âmbito é uma coisa de dois sentidos. "Eu tenho aqui algumas ideias, mas tu também tens de me dar contributos sobre o que faz mais sentido." E depois trabalhamos algo em conjunto. Também vejo isso, por exemplo, quando passei pelo processo de recrutamento, todo este tema de comunicar com os outros, com outras equipas, etc. Tem muito foco atualmente. Muita gente pergunta: como é que trabalhaste com outras equipas? E eles, só por falar contigo, avaliam quão bem te consegues expressar, porque é super importante que te importes com o que as outras equipas estão a fazer e que te envolvas. E só assim consegues realmente tirar o máximo partido do tempo que tens.

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

Franziska: Ah, talvez antes de avançarmos... mencionaste a palavra-chave agile, certo? Por isso tenho de me atirar a isso. Não sei se foi de propósito, só para me provocar ou não. Sim. Quanto ao Agile, acho sempre que as ideias base, de onde vem esta coisa toda, de que as pessoas são mais importantes do que os processos e todas essas coisas básicas que surgiram há muito tempo, continuam a fazer muito sentido. Há muita magia à volta delas. Mas depois vieram todos os consultores e inventaram todos aqueles frameworks enormes, etc., e venderam-nos, e há scrum masters, etc. E também a minha experiência, como disseste, muito disso não ajuda assim tanto. Se, por exemplo, os produtos e os programadores não comunicam bem, simplesmente pôr todas essas estruturas por cima também não resolve isso como deve ser. Por isso sim, também não sou grande fã destas práticas padrão de scrum, práticas ágeis, e também nunca vi isso a funcionar muito bem em lado nenhum.

Jonathan: É interessante, porque parece... se fores à procura de emprego no LinkedIn, para product owner ou gestor de produto, é tudo scrum, agile. Em todo o lado, é incrível. Mas é tão engraçado como as equipas de desenvolvimento mais... como é que se diz... mais eficazes que vi foram de Kanban, onde não há pressão para ter de produzir dentro de um prazo, mas produz qualidade, e é como se devolvesses a responsabilidade ao indivíduo, para que seja responsável por isso, o que tem sido muito interessante de acompanhar, porque é assim: as equipas jovens ficam presas no agile, não funciona, ficam frustradas, e acabam no Kanban, onde vamos avançando de forma consistente, e as coisas funcionam. Mas também acho interessante quando tens um produto como negócio, comparado com quando construis produtos para outros. Não sei qual era o teu trabalho anterior, se era um produto interno. Sei que na Atlassian constroem os vossos próprios produtos, essencialmente.

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

Jonathan: Sim. As agências são um pesadelo, porque é aí que toda a gente esquadrinha cada hora de desenvolvimento ou o que seja, e dizem: "Mas eu não entendo. Porque é que este botão me custa 400 dólares?" E foste tu que pediste para o mover daqui para ali, o que foi refazer todo o backend. Por isso queria fazer-te uma pergunta que já fizemos a muita gente nos nossos vários podcasts e transmissões em direto. E é todo este conceito da causa por que morrerias, ou a coisa que defenderias com toda a tua vida, quando se trata de uma opinião ou de tecnologia. Não é que queiramos dizer que esta é a opinião que deves ter, é mais: qual é o valor ou a opinião que tens e que dirias ser absolutamente fulcral para ti, e que adorarias ver em toda a indústria tecnológica? É uma pergunta bastante ampla, mas há uma coisa que defenderias com muita força na tecnologia?

Franziska: Pensei que ias tornar isto mais leve. Eu queria ir só pela opinião leve e impopular. Também serve?

Jonathan: Sim, claro.

Franziska: Ok, não tenho assim tantas causas enormes por que morrer. Uma das coisas em que acredito fortemente é que muita gente sugere que otimizes a tua configuração pessoal de desenvolvimento. E acho que isso é, em grande parte, sobrevalorizado. Por exemplo, as pessoas dizem-te: "Ah, tens de aprender Vim, porque assim nunca mais pegas no rato e é tão bom", etc. E depois as pessoas... as pessoas acreditam nisso quando são novas na indústria, acreditam nisso. E depois passam um ano a aprender todos os atalhos mágicos, etc. E depois, no fim, não sei, poupam talvez um dia por ano ou algo assim. Por isso aquele ano de sofrimento não compensou. E há muitas destas coisas, as pessoas dizem-te que tens de ter todos os teus aliases configurados para o terminal, nos teus dotfiles, e dizem-te que tens de saber todos os cartões de atalhos, etc., e passas imenso tempo a aprender essas coisas, mas depois só poupas tanto, e acho que o que acontece aqui é que as pessoas sobrestimam o tempo que passas a escrever no teu trabalho, certo? Como referimos antes, grande parte do trabalho é também comunicar. Grande parte do trabalho é, na verdade, pensar. Sim. E só uma parte do teu dia é que passas mesmo a escrever algo, a escrever código ou comandos, etc. Por isso muita gente está a otimizar esta parte muito pequena do dia e, na minha opinião, se isso é o teu passatempo, então força, faz isso. Ou se tiver algum valor semelhante para ti... Se és um SRE, ou seja, engenheiro de fiabilidade de sites, e entras em servidores, etc., então pode fazer sentido saber Vim, certo? Porque não consegues abrir uma interface gráfica. Mas, se não precisas, então não te preocupes com isso. Usa aquilo com que te sentes confortável e pronto. Por exemplo, quanto aos atalhos, digo sempre: ok, a maioria das interfaces gráficas mostra-te o atalho ao lado da coisa em que clicas. Por isso, se clicas na coisa cinco vezes por dia, então talvez faça sentido... ou a cada cinco minutos, então talvez faça sentido lembrares-te, sabes? O atalho para guardar, se clicas nisso todo o tempo... mas, se não, então fica feliz na tua interface gráfica e faz a tua coisa, e dedica antes o tempo a melhorar as tuas competências de programação. Faz alguns exercícios, algo assim. Aprende uma nova linguagem. O que for. Mas sim, isto é algo que tento sempre dizer aos programadores novos: não se deixem intimidar por estas pessoas que vos dizem que precisam de usar um destes editores antigos e otimizar a vossa produtividade ali.

Jonathan: É engraçado, porque muitas vezes as paixões das pessoas entram na conversa, e compreensivelmente. Porque é: "Ah, estou super entusiasmado porque otimizei a minha vida." Mas, pensando bem, nem sempre é o melhor. Seria a minha experiência de aprendizagem, havia simplesmente tantas coisas, recomendações, que as pessoas recebem. E depois, se vais ao YouTube e procuras "como aprender a programar", alguém começa por "como configurar o teu GitHub". Outro começa por "como entender o terminal", etc. Tenho de fazer download para trabalhar localmente e no editor online, o que seja. Agora, acho que é um bom conselho. Mantém as coisas bastante simples. Então, se vais passar mais tempo a pensar, como é que fazes, o que fazes para pensar nos problemas? Se tens uma situação no trabalho e é... ou em geral, o que fazes no teu dia? Reservas tempo? Como é o teu processo?

Franziska: Uma coisa com que gosto de começar é basicamente ter o problema um pouco antes de o ter de resolver, e depois mantê-lo no fundo da cabeça durante uma semana ou algo assim. E depois, debaixo do chuveiro, penso um pouco nisso. E antes de dormir, penso um pouco nisso e ando a virá-lo na cabeça durante um bocado. E normalmente isso ajuda-me a encontrar alguns pontos de partida. E depois, a partir daí, especialmente se for para o trabalho, costumo começar por escrever alguns pontos, porque escrever as coisas ajuda-me definitivamente a clarificar a mente, a encontrar os pontos, por exemplo, onde ainda preciso de falar com o gestor de produto porque não sei bem o que precisamos ali para os clientes. Por isso escrevia o que já sei e como resolvê-las, essas coisas. E também escrevia, normalmente, uma tabela bastante grande de perguntas em aberto, ou para outra pessoa da equipa ou para mim mesma, coisas a descobrir. E depois isso ajuda-me mesmo a clarificar as coisas. E depois, a partir do conceito de alto nível, tento decompô-lo em tarefas de programação mais tangíveis. Como é que a API fica? Que dados preciso de guardar para isto? E depois como é que passa da história aos dados e de volta, e que lógica tem de acontecer pelo caminho. Depende. Pode ser que já tenha encontrado muitos dos problemas que precisam de ser resolvidos no meu processo de pensamento anterior, mas também às vezes, quando começo a programar, encontro problemas novos que não tinha antecipado, e depois preciso de recuar e pensar tudo de novo, e depois voltar ao código propriamente dito. Isso também pode acontecer. Mas normalmente o sistema é primeiro tentar pensar um pouco na coisa e resolver alguns problemas com antecedência, o que me ajuda imenso. E depois, ou o código é simples, ou encontro mais problemas e volto atrás, mas isso também está bem.

Jonathan: Ok. Não, isso é fixe. Agora, isso parece ser... muitas vezes, na minha cabeça, tenho a ideia de que, se és programador a tempo inteiro, literalmente sentas-te ao computador da manhã à noite e vais avançando. Mas estou a perceber que a capacidade de pensar nos problemas, e acho que é algo que o Exercism também tenta incutir, é pensar bem no problema. Garantir que tens todo o contexto. E depois a parte de programar é apenas a expressão desse processo implementada. E o Jeremy também diria o mesmo. Acho que ele pensava muito nas coisas e depois programava de forma bastante curta.

Franziska: Sim. Também... também é um conselho comum começar por escrever, nos comentários, o que queres que isto faça. Ok, preciso de fazer isto primeiro, e depois este foi o resultado, e depois aquilo, e depois preencho as partes de código para as peças concretas. Isso também ajuda imenso.

Jonathan: Tem sido engraçado, porque o que dizes é que vou definitivamente tentar agora, porque percebo... quando tens de programar, e sobretudo para aprender Go ou o que seja. Um dos exercícios que tentava fazer era receber uma entrada do teclado, guardá-la, e depois devolver algo como "tiveste este número de tentativas" ou o que seja. Mas todo o processo de pensar, de decompor o problema em tarefas mesmo granulares, era algo com que eu estava muito pouco familiarizado. E tem sido mesmo interessante aprender a pensar num problema deste tipo, passo a passo. Por isso, são umas dicas fixes que vou definitivamente aproveitar.

Franziska: É também algo que muita gente mencionou no Exercism. Muitas pessoas não têm assim tantas dificuldades em compreender a linguagem e a sintaxe. Mas depois este "como é que resolvo este problema mais geral" é o que as pessoas acham difícil. E tentámos um pouco fornecer alguma documentação também em torno disto, onde dizemos: aqui está, este é um bom recurso para aprender a pensar como um programador, etc. Mas sim, talvez também possamos fazer melhor quanto a isto.

Jonathan: Não, isso é... Não, é verdade. E acho que leva a uma pergunta interessante que também já fiz a algumas pessoas, que tem sido sempre interessante quando falei com outras. É sobre todo este conceito de: quando é que a programação "clicou" para ti? Não sei se alguma vez tiveste essa sensação. Eram conceitos e teoria, e passaste por manuais, mas depois acordaste uma manhã e de repente era: "Ah, faz todo o sentido." Seria a minha experiência muitas vezes de aprender algo. Quando é que foi isso para ti? Ou aconteceu-te? Ou foi só gradual, "ok, lá fui percebendo devagar"? Como foi isso?

Franziska: Ah, sim, pensei um pouco nisto e, sim, acho que houve um momento de clique. Mas deixa-me começar. Não clicou, se isso for ok. Quando era adolescente, tinha um daqueles portáteis de brinquedo que tinham alguns jogos. E também tinha uma funcionalidade que permitia programar em BASIC. E o meu avô apareceu e ele tinha começado a programar com aqueles cartões perfurados, basicamente. Por isso sempre gostou de tecnologia e disse: "Ah, que fixe, conseguimos programar aí." E queria mostrar-me que a programação é uma coisa fixe. E começou, como toda a gente começa. Escreveu print "Hello World" e saiu "Hello World", e eu fiquei: "Eu também sei escrever Hello World. O que estás tu a fazer?" E ele disse: "Não, faz o que lhe dizes para fazer", etc. E depois escreveu "um mais dois é" e saiu três. E eu fiquei: "A minha calculadora também faz isso. O que é que me queres mostrar aqui?" Não percebi. E depois, mais tarde, tive uma coisa de informática na escola e ali tínhamos Turbo Pascal, que tinha um plugin ou algo assim onde tinhas uma pequena tartaruga que desenhava algo no ecrã. E aí deram-nos alguns exercícios fixes, onde introduzias umas fórmulas e ela desenhava uns fractais mesmo fixes e intricados, que pareciam folhas, etc., e obtinhas isso só escrevendo a pequena fórmula que dizia à tartaruga o que desenhar. E foi esse o momento em que cliquei, porque percebi que, a partir de instruções super simples, se pode criar esta coisa complexa que eu nunca conseguiria fazer sozinha. Não conseguia desenhar tantas folhas, certo? Por isso foi isso para mim: "Ah, sim. isto consegue fazer mais do que eu conseguiria de qualquer forma." Mas antes, com as explicações que o meu avô me deu e o que me mostrou ali, não funcionou. Mas ao ver esta coisa gráfica e ao ver quão poucas instruções são necessárias para fazer o computador fazer esta coisa complexa, foi aí que clicou para mim.

Jonathan: Ok, isso é fixe, porque eu tive isso com os métodos outro dia. Fiquei: "que raio é um método?" E simplesmente ainda não tinha caído a ficha. E foi o mesmo para mim com a química. Tive de a estudar durante dois anos e depois, de um dia para o outro, a tabela periódica fez todo o sentido. E eu tinha 16 anos na altura. E lembro-me de pensar: "Meu Deus, isto é a coisa mais fácil. Não acredito que não percebi isto durante dois anos!" E depois o exame foi canja. Porque pensei: todas as respostas estão na tabela periódica. Basta fazer o pequeno esforço, e tudo se sincroniza na minha cabeça. E tem sido interessante também falar com pessoas sobre quando esse momento clicou. E a Rebecca, que tu conheces, talvez conheças do percurso de Unison no Exercism, perguntei-lhe... porque ela tirou uma licenciatura em literatura inglesa. E perguntei: como é que passaste da literatura inglesa para a programação? E que método usaste na tua cabeça para conceptualizar essa mudança? E ela disse que imaginava o programa que estava a escrever como uma história, como uma narrativa com um protagonista, e as funções eram personagens, etc. E eu fiquei: "Ah, uau, isso é tão interessante. Nunca teria pensado nisso dessa forma." Não, isso é mesmo

Franziska: Sim. Mas isso remete para o que falávamos sobre os comentários, certo? Escrever antes do código. É exatamente isso: contar primeiro a história e depois escrever o código extra para ela.

Jonathan: O que é mesmo fixe que tenhas mencionado isso, porque acho que perceber que, na verdade, estou a escrever uma história nos meus comentários é algo que vou definitivamente adotar. Não

Franziska: E mais uma coisa sobre este tema: também fizeram alguns estudos sobre em que é que as pessoas são boas na programação, etc., e descobriram que, na verdade, as competências verbais, tipo, quantas palavras sabes, etc., têm um grande papel nisso. Por exemplo, nomear coisas é algo que se diz sempre ser difícil em programação. Por isso, se és bom a arranjar boas palavras que descrevam aquilo com que estás a lidar, isso torna o teu código muito melhor. Não é só matemática e coisas analíticas. É também, em grande parte, seres bom com palavras, o que talvez não esperes à partida.

Jonathan: Não, é isso, é linguagem, suponho, no fim do dia, o que é um pensamento interessante que tive. Para ti, és alemã naturalmente, mas essa é a tua língua. Desenvolvias agora com a Atlassian em inglês. E antes já era em inglês? Como é que... porque eu diria que talvez, infelizmente, está tudo em inglês. E falas um inglês ótimo, mas aprendeste inglês na escola e depois a programação, era tudo em alemão? Como é que aprendeste tudo isso a partir dessa experiência?

Franziska: Sim, sobretudo, tive a sorte de a maior parte das coisas de programação ser em inglês e todos os comentários serem em inglês, etc. Nem sempre é o melhor inglês, mas pronto, está bem. Sim, quanto a aprender inglês, nunca fui boa a inglês na escola. Mas tive a sorte, na universidade, de passar um ano, um ano de intercâmbio no Reino Unido. E foi isso que fez a diferença, mesmo imersa na língua. E depois o meu inglês melhorou imenso. E depois disso foi canja, mas antes disso era mesmo mau. E sim, esse ano, ao aprender mesmo a língua, também me ajudou mais tarde a conseguir comunicar com colegas que não são da Alemanha, etc. E depois no... Isso é definitivamente um fator. Ou, se o inglês não é a tua língua nativa, isso torna mais difícil lutar pelo nome certo para as coisas, certo? E nomear coisas. Fazes isso em cada linha de código que escreves, certo? Estás sempre a atribuir algo a algo e precisas de nomear essa coisa o melhor possível para tornar o código claro.

Jonathan: Não, não me parece assim 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 que dizia que a Índia é o espaço tecnológico que cresce mais depressa no mundo neste momento. E o inglês, se continuam com o inglês ou com os seus dialetos locais, que sei que há muitos na Índia. É só interessante pensar em tudo isso. Estamos quase a chegar a uma hora. Gostei imenso disto. Tenho mais uma pergunta para ti, Franziska. E é aqui que podes fazer uma recomendação. Comunidade do Exercism. Qual seria a tua recomendação? Pode ser qualquer coisa, desde comida para experimentar, ou algo como ir dar um passeio, ou o que quer que queiras recomendar à comunidade. Qual seria a tua recomendação para a comunidade do Exercism esta semana?

Franziska: Sim, vou voltar àquela coisa da produtividade de que falei na opinião impopular. Por isso a minha recomendação seria: faz uma pausa, vê de uma vez aquela série da Netflix que sempre quiseste ver, ou o que for. Normalmente as pessoas são muito focadas em ser produtivas todo o dia. E isso não faz bem ao teu cérebro. Não faz bem ao teu cérebro otimizar tanto... o teu cérebro, para ser bom no trabalho, para ser criativo, etc., precisa de pausas. E é nessas pausas que processa as coisas. E depois, simplesmente sentares-te no sofá e veres uma série ou o que for, isso é bom. É uma boa coisa a fazer, dar ao teu cérebro algum tempo para fazer o que tem a fazer em segundo plano. E acho que fazer pausas, tirar tempo para descansar, é subvalorizado. Por isso seria essa a minha recomendação. Não te sintas culpado por fazer pausas e simplesmente relaxar.

Jonathan: Fixe. Não, gosto muito disso. Bom, a todos os que estão a ouvir isto, essa é a recomendação, o conselho para esta semana da Franziska. Por isso, Franziska, muito obrigado pelo teu tempo, por tudo o que dás ao Exercism e por todo o pensamento e o envolvimento que tens com a comunidade. Sei que te envolves imenso com o Exercism e que o melhoras e ajudas, e agradecemos muito isso. Por isso só queria dizer obrigado e obrigado pelo teu tempo esta manhã. É um feriado nacional, em que podias estar a celebrar ou a fazer algo divertido. E ofereceste o teu tempo aqui, por isso agradeço imenso. Fiquei preso na chamada quando parei a gravação, mas só queria agradecer-te imenso e... tem um resto de dia maravilhoso. Fixe.

Franziska: Obrigada por me receberes.

Mais histórias da nossa comunidade

Ouve, aprende e deixa-te inspirar pelos membros da nossa comunidade.