avatarAndré Sionek

Summary

O autor descreve como criou um gráfico visual para representar sua carreira e aprendizados, destacando insights sobre o processo de aprendizado e desenvolvimento profissional.

Abstract

André Sionek, um engenheiro de software líder, compartilha sua experiência ao criar um gráfico visual para mapear sua carreira e conhecimentos acumulados, enfrentando o desafio de uma trajetória profissional não linear. Ele discute como a representação gráfica ajudou a clarificar padrões de aprendizado e a importância da persistência no início do processo de aprendizado, que se torna progressivamente mais fácil à medida que novos conhecimentos se interconectam com os existentes. O autor também enfatiza a importância do aprendizado sequencial, da paciência e do foco no longo prazo, além de destacar a eficácia de aprender enquanto se trabalha e sair da zona de conforto para adquirir novas habilidades. Ele aconselha a evitar tentar aprender tudo de uma vez e recomenda ensinar como uma forma eficaz de consolidar o conhecimento.

Opinions

  • Aprender é inicialmente lento e quase imperceptível, mas se torna mais fácil com o tempo e a persistência.
  • A ciência cognitiva apoia a ideia de que aprender é um processo de construção de redes interconectadas de informações no cérebro.
  • Aprender exige tempo, seqüência e a criação de esquemas densos e bem organizados de conhecimento.
  • É possível pular etapas de aprendizado de forma estratégica, mas isso deve ser feito com cautela para evitar lacunas de conhecimento.
  • Aprender enquanto se trabalha é uma estratégia eficaz para se preparar para novas oportunidades de carreira.
  • É importante enfrentar desafios fora da zona de conforto para obter uma visão mais holística e criativa na resolução de problemas.
  • Ensinar é uma forma poderosa de aprendizado, pois ajuda a desenvolver uma compreensão mais profunda e a fixar o conhecimento.
  • Aprender tecnologias relevantes para o dia a dia profissional é mais efetivo do que tentar abraçar todas as tecnologias disponíveis.
  • Refletir sobre a trajetória profissional ajuda a tomar decisões melhores no futuro.

Minha carreira em um gráfico

O que descobri ao criar uma representação visual da minha carreira e das coisas que aprendi ao longo do tempo

Programador e representação abstrata dos seus conhecimentos. Fonte: Imagem gerada pelo autor utilizando Midjourney.

Sempre reflito sobre a minha carreira profissional. Gosto de pensar sobre como as escolhas que fiz me levaram ao cargo de Engenheiro de Software Líder, como comecei e como mudei diversas vezes de área. Até mesmo sobre como essas escolhas me permitiram trabalhar em Londres. Mas sempre me deparo com o mesmo problema: minha carreira não é linear. Uma página no LinkedIn, com experiência atrás de experiência, não consegue retratar quem sou, o que já fiz e como cheguei até aqui. Embora a sucessão de cargos possa ser relativamente linear, o conjunto de experiências e aprendizados em cada local é bagunçado, fora de ordem e interconectado. Até agora, eu nunca consegui organizar essa bagunça e extrair alguns aprendizados de maneira clara.

Enfim, esse problema sempre permeia os meus pensamentos. E bem… Para mim, as melhores ideias e as soluções para problemas geralmente acontecem de madrugada. A ideia ou solução aparece de repente, e então fico na cama, de olhos abertos refletindo e bolando um plano sobre como resolver aquele problema. E por mais que eu queira dormir, meu cérebro não deixa. Eventualmente o cansaço físico vence o cérebro inquieto e eu durmo.

Foi assim que ocorreu. Tarde da noite meu cérebro gritou: E se você fizesse uma representação gráfica do seu currículo e experiências? No dia seguinte, quando acordei, não lembrava mais dessa ideia. Trabalhei, levei o cachorro para passear, fiz o jantar e então lembrei que o meu cérebro tinha encontrado uma solução na noite anterior. Liguei o computador e comecei a trabalhar. Às duas da madrugada eu tinha o primeiro esboço. Na noite do dia seguinte voltei para o mesmo problema e investi mais quatro horas aprimorando o resultado da noite anterior. E alguns dias depois, finalmente me senti seguro o suficiente para escrever este artigo. Aqui está o resultado:

Imagem com representação gráfica da minha experiência profissional e do conhecimento acumulado ao longo do tempo. Fonte: André Sionek

Em alta resolução/interativo

O gráfico acima não está numa resolução legal, mas você pode explorar em mais detalhes no dashboard abaixo (ou nesse link aqui):

Agora que você explorou um pouco o gráfico, deixa eu te mostrar algumas lições que aprendi ao criar uma representação visual da minha carreira.

Quanto mais você aprende, mais fácil é aprender

Desde meu primeiro contato com Python, levei pelo menos cinco anos para ganhar confiança com testes unitários e aprender sobre fixtures, mocks, etc. Demorei seis anos para chegar ao ponto de sempre escrever testes unitários para qualquer funcionalidade ou código novo. No entanto, só levei dois anos, desde que aprendi sobre integração contínua e GitHub Actions, para ser capaz de implementar CI/CD do zero para todos os repositórios da empresa.

Se você está começando a estudar programação, uma língua estrangeira ou qualquer outra coisa, saiba que o começo será difícil e sua evolução será lenta e quase imperceptível. Mas se você persistir, ficará cada vez mais fácil aprender.

Gráfico mostra conhecimento acumulado ao longo do tempo. Fonte: André Sionek

A ciência cognitiva respalda essa ideia. Aprender é o processo de criar uma rede, esquema ou estrutura interconectada de informações dentro do cérebro. Aprender coisas novas reforçará o que já está lá e preencherá essa estrutura em maior detalhe. A nova informação é incorporada ao que você já aprendeu. A nova informação também é melhor retida porque se encaixa na estrutura existente.

Imagine sua cabeça como uma gaveta de arquivos. Aos dois anos de idade, você começa um arquivo chamado “cachorro”. Neste arquivo está a informação de que cachorros são animais de quatro patas e peludos. Durante os próximos oito anos, você adiciona ao arquivo os nomes das raças e as diferenças entre mais de 50 cachorros diferentes — beagle, labrador, etc. Você continua adicionando informações a esse arquivo ao longo do tempo. Adicionar novas informações é sempre fácil porque você está construindo conhecimento que foi sendo acumulado ao longo dos anos.

Iniciar um novo arquivo é sempre mais desafiador e demorado, pois é preciso classificar e armazenar cada nova informação. No entanto, nosso cérebro é capaz de aproveitar informações de outros arquivo relacionados para ajudar na organização do conhecimento. Por exemplo, o arquivo chamado “cavalo” utilizará informações previamente adquiridas sobre “cachorros”: ambos são animais de quatro patas, cavalos são maiores que cachorros, etc.

Aprendizado é um processo demorado e sequencial

Aprender é um processo que requer tempo e seqüência. Pense em quantos anos você gastou aprendendo conceitos básicos de matemática, como soma, subtração, multiplicação e divisão. Agora, esses conceitos parecem simples e você pode construir conceitos mais complexos, como potência e logaritmos, com relativa facilidade. No entanto, tente ensinar logaritmos para crianças de 5 anos sem que elas tenham aprendido as operações matemáticas básicas. O resultado certamente será frustrante para as crianças e professores.

Ao aprender algo, queremos gerar um conhecimento rico, poderoso e bem organizado. Novamente, a ciência cognitiva nos dá o modelo de esquemas: essa rede de pedaços de informação interconectados. Quando começamos a aprender algo novo, possuímos esquemas limitados naquele assunto: poucas peças de informação, poucas conexões e possivelmente conceitos e conexões equivocadas.

Representação do esquema de conhecimento em uma cabeça humana. Fonte: Imagem gerada pelo autor utilizando Midjourney.

O objetivo do aprendizado é criar esquemas densos, bem ligados e organizados. Esse processo de construção acontece ao longo do tempo. O tempo e o conteúdo são as duas características críticas para o aprendizado.

Ao começar a aprender uma nova linguagem de programação, não comece pelos problemas mais avançados. Se você tem o objetivo de se tornar um engenheiro de dados, aprender Apache Spark estará na sua lista. Mas se você começar a aprender Spark sem antes fixar os conceitos básicos e avançados de uma linguagem de programação, tornará o processo de aprendizagem muito mais demorado e frustrante.

Um exemplo aleatório: não é possível aprender a fazer bolos comprando-os já prontos na confeitaria. Para preparar um bolo, é necessário observar cuidadosamente a lista de ingredientes, o método de preparo, a ordem dos ingredientes, o tempo de cozimento e o método de preparação da cobertura. Na primeira vez que você fizer, algo certamente sairá errado e o bolo não será o melhor da sua vida. Por mais que você tenha seguido a receita e assistido vídeos no YouTube, o bolo estará feio, meio disforme e talvez com um gosto não muito agradável. Mas, com a prática, cada nova tentativa é baseada em algum conhecimento que você já adquiriu. Quanto mais bolos você fizer, mais bonitos e saborosos eles serão.

Bolo de morango decorado sobre um balcão de cozinha. Uma pessoa sem prática em preparar bolos, nunca conseguirá preparar algo assim logo na primeira tentativa. Fonte: Imagem gerada pelo autor utilizando Midjourney.

Aprender programação pode ser uma tarefa desafiadora, mas com a ajuda de ferramentas como o Stack Overflow ou o GitHub Copilot, é possível pular etapas do processo. Embora isso possa resolver o problema temporariamente, como comprar um bolo pronto na confeitaria, é importante lembrar que o objetivo é se tornar um confeiteiro. Para isso, é necessário aprender a preparar um bolo sozinho.

Sem pressa, com foco no longo prazo

Se você está procurando aprender algo rapidamente, é provável que se frustre com o lento progresso e desista. Por isso, é importante ter paciência e fazer um plano de estudos a longo prazo. Dessa forma, você terá mais resiliência e chances de sucesso.

Pule etapas de forma estratégica

Aprender programação pode ser mais rápido se você pular etapas de forma estratégica. É importante avaliar se já está pronto para progredir para um assunto avançado.

Eu gosto sempre de testar se eu já estou pronto. Para isso, tento compreender algo avançado. Se for muito difícil, volto para o conteúdo básico e aguardo alguns dias ou semanas para fixar bem o conhecimento. Em seguida, faço o teste novamente e avalio meu conforto com o conteúdo avançado. Se tiver facilidade, paro de estudar o básico e foco no avançado.

Essa estratégia deixa lacunas no seu conhecimento básico. Essas lacunas podem ser preenchidas automaticamente ao estudar o conteúdo avançado, mas também existe o risco da criação de conexões erradas e mal entendidos no seu conhecimento.

Aprenda enquanto trabalha

Analisando meu currículo, percebi que sempre utilizei o meu trabalho para me preparar para o próximo cargo. Aprendi SQL e Pandas enquanto trabalhava como Assistente Financeiro no Grupo Boticário e, com isso, consegui um cargo de Cientista de Dados no Olist. Lá, comecei a trabalhar com ETL e a aprender sobre AWS, o que me levou a ser contratado como Engenheiro de Dados na EmCasa.

Sempre busquei oportunidades para aprender sobre a minha área, mesmo que não estivesse diretamente ligado às minhas atividades principais. Eu costumo procurar essas oportunidades quando enfrento desafios ou dificuldades em meu trabalho.

Por exemplo, quando fui contratado como Engenheiro de Dados Sênior na Util, encontrei vários problemas que impediam o desempenho da minha função. Como a falta de uma esteira de CI/CD consistente e a ausência de separação dos ambientes de desenvolvimento e produção em contas diferentes da AWS. Então, decidi trabalhar para resolver essas questões.

Mas, para minha surpresa, ter trabalhado nesses problemas não diretamente relacionados ao meu cargo me proporcionaram muito conhecimento sobre a plataforma e infraestrutura da empresa e me permitiram ser promovido a Engenheiro de Software Líder. Se eu tivesse tentado fazer engenharia de dados sem antes resolver essas dores, eu provavelmente estaria fazendo um mal trabalho e estaria reclamando dos problemas sem fazer nada para resolvê-los. E eles teriam contratado alguma outra pessoa para ser Engenheiro de Software Líder.

Da mesma forma, quando trabalhava na Olist e queria me envolver em Ciência de Dados, mas não tinha acesso aos dados necessários, comecei a fazer ETL. Isso me levou a ser contratado como Engenheiro de Dados na EmCasa.

Minha dica é tentar identificar as dores e problemas que você tem no seu trabalho atual e que não estão sendo resolvidos. Seja proativo e estude/trabalhe para resolvê-los. Isso pode ser uma grande oportunidade para mudar de área ou ser promovido.

Saia da sua zona de conforto

Conheço muitas pessoas que não gostam de determinadas tecnologias e não se esforçam para aprendê-las. Por exemplo: cientistas de dados que se recusam a trabalhar com ETL, engenheiros de dados que detestam infraestrutura como código, e engenheiros de software que têm medo de pipelines CI/CD.

Em princípio, pode parecer correto que um engenheiro de dados deva se concentrar apenas em Airflow e Spark. Qualquer outra coisa seria considerada um desvio de seu foco de aprendizado e carreira em engenharia de dados. No entanto, isso é uma ideia equivocada por algumas razões:

  • Se você se concentrar apenas em aprender mais sobre o que já sabe, você estará fortalecendo as conexões já existentes, mas não criará novas conexões com informações diferentes. O trabalho em tecnologia exige criatividade para resolver problemas de maneiras diferentes. Aprender sobre diferentes ferramentas e conceitos irá ajudá-lo a resolver mais problemas com soluções melhores.
  • Conforme você avança em sua carreira, a expectativa é que você tenha uma visão holística do sistema e das diferentes tecnologias. Se você se concentrar apenas em uma parte do conhecimento, provavelmente limitará suas chances de crescimento profissional.
  • Sair da zona de conforto ao aprender força nosso cérebro a reorganizar conceitos já existentes para que a nova informação possa ser incorporada. Por exemplo, você se tornará um engenheiro de dados melhor se também estudar ciência de dados.
Momento em que comecei a ter contato com diferentes ferramentas. Fonte: André Sionek

Não tente aprender tudo de uma só vez

Há muitas tecnologias disponíveis no mercado e, se você tentar aprender todas de uma só vez, provavelmente acabará se frustrando e desistindo. Em vez de tentar abraçar tudo, escolha as tecnologias que são mais prováveis de ser utilizadas no seu dia a dia.

Sua empresa utiliza a GCP (Google Cloud Platform) ao invés da AWS (Amazon Web Services)? Então, investir tempo em aprender AWS pode não ser a estratégia mais adequada. O ideal é que você aprofunde seus conhecimentos em GCP. Se, no futuro, você mudar para uma empresa que use a AWS, sua curva de aprendizado será muito mais fácil se o seu conhecimento em GCP estiver consolidado.

Por exemplo, eu ouvi falar sobre o GraphQL pela primeira vez em 2019, quando trabalhava na EmCasa. No entanto, eu não me apressei em aprender imediatamente, pois não era algo que eu usaria no meu dia a dia. Em vez disso, concentratei-me em aprender AWS, Airflow e Infraestrutura como Código. Quando, no final de 2022, surgiu a oportunidade de refatorar todas as APIs da Util, lembrei-me de que o GraphQL era uma opção a ser considerada. Decidimos usá-lo e só então comecei a estudá-lo mais a fundo. Aprender o GraphQL em 2023 foi muito mais fácil e rápido do que se eu tivesse tentado aprender em 2019 sem ter a oportunidade de aplicar o conhecimento no meu dia a dia.

Ouvi falar sobre GraphQL em 2019, mas esperei até precisar utilizar a tecnologia em 2023 para começar a estudar. Aprender GraphQL em 2023 foi muito mais fácil do que se eu tivesse tentado aprender em 2019. Fonte: André Sionek

Ensinar é uma forma efetiva de aprender

Ensinar é uma forma efetiva de aprofundar e fixar o conhecimento em comparação com simplesmente estudar sozinho. Quando você se prepara para ensinar um conteúdo, seu cérebro desenvolve uma compreensão mais profunda e duradoura do material (fonte). Também ao ensinar, as perguntas feitas pelos nossos alunos nos ajudam a elaborar sobre o material, monitorar a nossa própria compreensão e a corrigir mal-entendidos. Ensinar também traz benefícios adicionais, como melhorar sua confiança e habilidades de comunicação.

Eu pude reparar esses benefícios ao escrever artigos para o Medium e ao lecionar bootcamps de engenharia de dados. Quanto mais ensino, mais aprendo.

Mas ensinar não se limita a dar aulas e cursos. Aqui estão algumas maneiras de praticar o ensino:

  • Escreva um artigo sobre um novo assunto que você está aprendendo.
  • Demonstre uma nova ferramenta para seus colegas de trabalho.
  • Faça pair programming com um colega, ensinando-lhe como usar algo novo que você aprendeu.
  • Escreva e publique documentação em um repositório da empresa.
  • Ofereça-se para dar uma palestra sobre o assunto.
  • Crie um mini-curso ou workshop.
  • Sugira usar uma nova tecnologia em um projeto da empresa e explique aos colegas como ela funciona e por que seria interessante usá-la.

Apesar deste post ter focado principalmente na minha carreira, acredito que os conceitos abordados são aplicáveis a qualquer pessoa.

Se você é um profissional experiente, te convido a refletir sobre sua trajetória e compreender melhor sua jornada de aprendizado até agora. Revisitar suas decisões passadas certamente lhe ajudará a tomar decisões melhores no futuro.

E se você está apenas começando agora, espero ter ajudado a definir algumas estratégias de carreira e aprendizado. Tenha uma jornada incrível!

Engenharia De Dados
Engenharia De Software
Carreira
Currículo
Visualização De Dados
Recommended from ReadMedium