DEV Community

Alberto Luiz Souza
Alberto Luiz Souza

Posted on

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!

Top comments (0)