DEV Community

Alberto Luiz Souza
Alberto Luiz Souza

Posted on

1

Como Me Preparei para Trabalhar no Nubank: Minha Jornada de Aprendizagem com Clojure

Disclaimer

Este texto foi inicialmente concebido pela IA Generativa em função da transcrição do episódio do nosso canal, Dev Eficiente. Se preferir acompanhar por vídeo, é só dar o play.

Introdução

A preparação para um novo trabalho pode ser desafiadora, especialmente quando você está lidando com novas tecnologias e métodos. Neste post, vou compartilhar minha experiência de estudo e organização para me preparar para meu novo trabalho no Nubank, onde precisei aprender Clojure, Pedestal e Datomic. Espero que minha jornada possa inspirar você a organizar seus estudos de forma eficaz.

A Base do Método de Aprendizagem

Durante minha jornada de aprendizagem, baseei-me em várias teorias e práticas educacionais, incluindo:

  • Teoria da Carga Cognitiva: Diferencia entre carga intrínseca (complexidade do material) e carga extrínseca (distrações ou elementos externos).
  • Taxonomia de Bloom: Ajuda a definir níveis de exigência cognitiva, como lembrar, aplicar, analisar e criar.
  • Teoria da Prática Deliberada: Enfatiza a necessidade de prática estruturada e reflexão.
  • 4CID (Four Components Instructional Design): Modelo que organiza o aprendizado em componentes, ajudando a lidar com a complexidade de novos conhecimentos.

Essas abordagens me influenciam para criar objetivos de aprendizagem claros e tangíveis.

A Fase de Consciência

Ao aprender algo completamente novo, como o Clojure, começo com o que chamo de "fase de consciência". Nessa etapa, meu objetivo é me ambientar com o conhecimento básico antes de definir objetivos mais específicos. Aqui está o que fiz nessa fase:

  1. Exploração de Recursos:

    • Li a documentação oficial do Clojure, começando pelo overview e depois mergulhando na referência completa da linguagem.
    • Escutei o livro The Joy of Clojure como complemento à leitura.
  2. Reflexão e Prática:

    • Registrei insights sobre o que lia e comparava com o que já conhecia.
    • Realizei uma série de 5 exercícios progressivos em Clojure para ganhar fluência prática.
  3. Uso de IA Generativa:

    • Utilizei ferramentas como o ChatGPT para esclarecer dúvidas e validar meu entendimento, embora sempre com um olhar crítico sobre as respostas geradas.

Definindo Objetivos de Aprendizagem

Após a fase de consciência, defini objetivos de aprendizagem claros e tangíveis. O meu primeiro objetivo de aprendizagem foi o seguinte:

  • Criar API's HTTP simples utilizando Clojure, Pedestal e a biblioteca de validação Malli.
  • Manter o escopo inicial simples, utilizando arrays de mapas como banco de dados em memória, sem adicionar complexidade desnecessária.

Estrutura dos Objetivos

Um objetivo completo inclui:

  • Ação: O que quero ser capaz de fazer. Exemplo: Criar uma API web funcional.
  • Ferramentas: Tecnologias específicas a serem usadas. Exemplo: Clojure, Pedestal e Malli.
  • Critério de Aceite: Como saberei se atingi o objetivo. Exemplo: Testar com um desafio realista, como o da Casa do Código.

Progressão de objetivos

Um objetivo muito bem definido é aquele que você sente que pode alcançar, mas não tem certeza. Você tem que buscar aquele sentimento gostoso da incerteza. Aquele que você quer continuar tentando até chegar lá. Não é fácil.

Não consigo achar melhor exemplo aqui do que os jogos videogames. Se você joga num nível muito fácil, fica sem graça. Se jogar num nível muito acima do seu, perde completamente a graça também. Você quer, progressivamente, jogar nos níveis que realmente te desafiem e que te façam investir um tempo ali.

Baseado nessa ideia, meu segundo objetivo foi: Incorporar o Datomic como banco de dados da aplicação. Já o meu terceiro objetivo foi incorporar uma biblioteca de Injeção de Dependências chamada Components. Por fim, fui buscar o quarto que foi utilizar uma biblioteca chamada Stateflow para escrever testes de integração.

De propósito eu fui progredindo bem de pouco em pouco, afinal de contas tudo era novo para mim. Tem que ser sempre assim? Não. Sempre vai depender do seu background com os conhecimentos necessários para o próximo objetivo.

Reflexão Contínua

A reflexão desempenha um papel crucial no aprendizado. Para isso:

  • Registrei minhas observações sobre cada etapa do estudo.
  • Comparei meu progresso com os objetivos definidos.
  • Utilizei práticas como gravação de vídeos e conversas com outras pessoas para aprofundar o entendimento.

Lições Aprendidas

  • Ter um método estruturado, como o 4CID, me ajudou a lidar com a complexidade do aprendizado.
  • Dividir o estudo em fases (como consciência e prática) torna o processo menos sobrecarregado.
  • Ferramentas como IA generativa podem ser úteis, mas exigem um uso criterioso e reflexivo.

Conclusão

Minha jornada de preparação para trabalhar na Nubank foi enriquecedora e baseada em métodos que me ajudaram a organizar e priorizar meu aprendizado. Espero que essas dicas possam ser úteis para você ao enfrentar seus próprios desafios de estudo e trabalho.

Se você gostou deste conteúdo ou tem algo a acrescentar, deixe um comentário. Sua opinião é sempre bem-vinda!

Jornada Dev + Eficiente

Dentro da Jornada Dev + Eficiente temos um treinamento focado exclusivamente em aprendizagem, chamado Máquina de Aprender. Consideramos que aprender de maneira sistemática é um dos pilares de evolução para quem deseja crescer na carreira como uma pessoa especialista. Você pode saber mais sobre a Jornada acessando https://deveficiente.com/oferta-black-friday-2024 .

Até a próxima!

Hot sauce if you're wrong - web dev trivia for staff engineers

Hot sauce if you're wrong · web dev trivia for staff engineers (Chris vs Jeremy, Leet Heat S1.E4)

  • Shipping Fast: Test your knowledge of deployment strategies and techniques
  • Authentication: Prove you know your OAuth from your JWT
  • CSS: Demonstrate your styling expertise under pressure
  • Acronyms: Decode the alphabet soup of web development
  • Accessibility: Show your commitment to building for everyone

Contestants must answer rapid-fire questions across the full stack of modern web development. Get it right, earn points. Get it wrong? The spice level goes up!

Watch Video 🌶️🔥

Top comments (0)

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay