A experiência de ministrar um treinamento em meio ao isolamento social

A experiência de ministrar um treinamento em meio ao isolamento social

Neste artigo, pretendo falar um pouco mais sobre a experiência de ministrar meu primeiro treinamento, os sentimentos e aprendizados que tive durante esse processo e, também, os principais desafios que foram enfrentados por mim e por toda a equipe envolvida.

Treinamentos são eventos cotidianos na CWI Software, ocorrem todos os anos com o intuito de circular conhecimento entre os colaboradores da empresa. Já participei de alguns, todas as vezes como aluno, mas sempre tive a vontade de colaborar com essa iniciativa como instrutor ou monitor. Quando recebi o convite, no começo do mês de fevereiro de 2020, para ministrar a edição seguinte do treinamento de React Native juntamente de outros dois colegas de trabalho, fiquei bastante feliz e ao mesmo tempo apreensivo, pois sabia a responsabilidade que estava sendo posta em nossas mãos naquele momento. Nenhum de nós três, até então, tinha passado por algo parecido em nossas carreiras. Ministrar um treinamento e dar aulas era algo novo para todos. Assim, de imediato marcamos algumas reuniões para discutir um pouco mais sobre a dinâmica que adotaríamos durante o treinamento e quais eram as principais preocupações da equipe frente ao desafio proposto.

Num primeiro momento, tivemos que elencar quais seriam os conhecimentos base que alguém que trabalha com a tecnologia deve ter. Com isso em mente, listamos todos os conceitos que deveriam ser abordados no treinamento. Nesse ponto, a documentação do React Native foi muito útil, pois lá tínhamos acesso a tudo que a tecnologia nos provê. A parte mais desafiadora dessa etapa foi ponderar o que realmente era essencial que soubessem e o que era algo extra ou opcional, fazendo um mix disto para que, ao final do treinamento, tivessem uma base sólida na tecnologia, prontos para ingressar em um projeto.

Buscando inspiração

Já sabíamos qual o conteúdo que gostaríamos de passar para eles, então começamos a pensar melhor sobre quais aplicações poderíamos criar para exemplificar e por em prática todos esses conceitos que nós, como instrutores, gostaríamos que tivessem domínio. Além de ser algo divertido e cativante para os alunos, teria que ser algo onde pudéssemos aplicar diversos conceitos de forma fácil e objetiva. Como já falado anteriormente, não tínhamos experiência em ministrar treinamentos, sendo assim, conversamos com outras pessoas mais experientes, que nos indicaram alguns sites para buscar inspiração de aplicações. São eles:

Após algumas discussões e muita pesquisa decidimos então estruturar o treinamento ao redor de 4 principais projetos:

Hello World

Projeto inicial, onde os alunos teriam o primeiro contato com a tecnologia e aprenderiam os conceitos básicos de React Native.

Todo List

Todo List app mockup

Projeto um pouco mais complexo que o anterior, assim, eles poderiam ver alguns conceitos ligeiramente mais avançados com pouco esforço e um resultado visual bacana. Aqui, já começamos a trabalhar com uma estilização mais avançada, controle de estado, componentização e utilização de ícones customizados na aplicação, bem como, persistência de dados via AsyncStorage.

App de Filmes

Movies app mockup

Aplicação bem completa, com um layout mais desafiador, navegação e requisição para uma API. Planejamos construí-la junto dos alunos, intercalando entre explicações e desenvolvimento, para que, assim, eles pudessem exercitar todos os novos conceitos passados em aula.

Pokédex

Pokédex app mockup

Muito semelhante ao app de filmes no quesito conceitos abordados, mas com alguns desafio extras e com o diferencial de que, esse, eles teriam que fazer sozinhos, apenas nos contatando quando necessário para o esclarecimento de dúvidas e dificuldades.

Pode ser observada um linha muito clara de evolução na dificuldade dos desafios que foram propostos a eles. Primeiro apresentamos a tecnologia, depois disso fizemos algo um pouco mais complexo mas ainda junto deles e, por fim, deixamos que eles fizessem uma aplicação completa sozinhos. Isso ajudou muito na evolução da turma de maneira mais uniforme, sem que alguns ficassem muito para trás ou para frente.

Um Plot Twist chamado Covid-19

Então, estávamos há cerca de dois meses planejando o treinamento e montando as aulas, com tudo pronto para as iniciarmos… mas nem tudo é tão fácil quanto parece, fomos surpreendidos pela Covid-19.. As aulas que estavam planejadas para um modelo presencial não serviam mais, pois o modelo de ensino a distância tinha limitações e exigências diferentes. Sendo assim, teríamos que replanejar a estrutura de todas as aulas e o cronograma pré-estabelecido. Ao menos, já sabíamos qual o conteúdo que seria passado e quais as aplicações que iríamos construir. Bastava, então adaptarmos as aulas para que elas se adequassem a esse novo modelo.

Baseado na experiência com as aulas online da faculdade, das quais participávamos como alunos, sabíamos que elas eram muito mais cansativas e, também, que era muito mais difícil prender a atenção dos alunos por longos períodos de tempo. Partindo deste pressuposto, inicialmente, atacamos principalmente este ponto, fazendo a seguinte pergunta: como podemos tornar as aulas mais dinâmicas e interessantes para os alunos?

Após diversas reuniões, chegamos a conclusão de que intercalar mais as aulas com explicações e momentos de código seria o ideal, já que, dessa forma, os alunos estariam pondo em prática o que foi explicado anteriormente e se mantendo ocupados. Isso faz com que os períodos em que eles apenas escutassem e assistissem as aulas fossem muito menores, possibilitando que surgissem dúvidas que pudessem colaborar no processo de aprendizado deles.

Comunicação

Reformulamos as aulas. Mas e agora? Como vamos passar esse conteúdo para eles? Existem infinitas ferramentas para fazer esse meio de campo entre aluno e instrutor: Zoom, Slack, Discord, Jitsi Meet, Google Meetings, entre outros. Após algumas conversas, decidimos utilizar duas dessas ferramentas em conjunto, Zoom e Discord.

Zoom: Além de a CWI ter contas com plano pago, o que permitia que tivéssemos reuniões sem interrupções, a ferramenta já era conhecida por todos da equipe. Logo, sabíamos que era de fácil utilização e nos proporcionava uma conexão estável com qualidade de áudio e vídeo. Outro ponto importante é que ela permitia que gravássemos as aulas e as enviássemos diretamente para a nuvem, sendo assim, não precisávamos nos preocupar com essa questão.

Discord: Escolhemos ele para fazer comunicados fora do período das aulas, tirar dúvidas e compartilhar conteúdo referente ao treinamento. Além disso, durante as aulas, dois dos três instrutores estariam, também, presentes no Discord para tirar dúvidas mais específicas e pontuais de alunos mais tímidos, que não se sentiam à vontade em interromper a aula para esclarecê-las.

Além dessas duas ferramentas, utilizamos o Github para fazer o versionamento de todo o código produzido em aula. Assim, após as aulas, os alunos poderiam revisar esse código para refrescar alguns conceitos caso necessário. O Whatsapp também entrou na jogada, com o intuito de fazer avisos rápidos e pontuais e ter uma comunicação mais próxima deles fora das aulas.

Conseguimos

Finalmente, nos reorganizamos e estava tudo pronto para iniciarmos o treinamento. Logo nas primeiras aulas, vimos que alguns tinham maior domínio sobre a tecnologia do que outros. Sabendo disso, replanejamos algumas aulas e elaboramos alguns conteúdos extras para que eles pudessem se desafiar fora dos horários de aula, buscando deixar o processo um pouco menos monótono para aqueles que estavam mais confortáveis com os conceitos apresentados. Além disso, após cada aula, fazíamos uma reunião de cerca de 15 minutos apontando os pontos positivos e negativos dela, bem como o que precisava ser mudado para que a próxima fosse ainda melhor.

Em um contexto geral, o treinamento foi bastante produtivo. Conseguimos passar todo o conteúdo que gostaríamos de ter passado e os alunos deram diversos feedbacks positivos sobre ele.

Vantagens e desvantagens do modelo online

  1. Permite com que o tamanho das turmas seja escalado, não estando limitado ao espaço físico disponível.
  2. Todos tem a mesma visão do conteúdo que está sendo passado, a galera do fundão não precisa mais levantar a mão pedindo pra aumentar a fonte no projetor.
  3. Torna o treinamento muito mais inclusivo, possibilitando pessoas que estão trabalhando no modelo remoto participem também.
  4. Infelizmente, o networking é prejudicado, já que não rola aquela conversa de corredor ou na hora de buscar o café.
  5. Alunos e instrutores acabam ficando um pouco mais distantes, dificultando um pouco a avaliação de entendimento ou não de algo que foi explicado.
  6. Dependendo da internet que o aluno tem, podem ocorrer algumas perdas de conexão fazendo com que ele perca partes das aulas.

Desafios e Aprendizados

  1. Planeje. Muitos imprevistos serão encontrados no meio do caminho e, sem planejamento prévio, a qualidade das aulas e o aprendizados dos alunos poderão ser prejudicados. Não basta apenas conhecer a tecnologia para ministrar um treinamento.
  2. Readapte-se. Apesar do planejamento prévio, imprevistos podem ocorrer. No nosso caso, por exemplo, o Covid-19 fez com que tivéssemos que replanejar o treinamento para o formato online.
  3. Se possível, forme as turmas com alunos com o nível de conhecimento parecido. Assim, as aulas não ficarão monótonas para alguns, ou difíceis para outros. No nosso caso, tivemos que adicionar alguns conteúdos durante o treinamento para que ele se adequasse ao conhecimento dos alunos.
  4. Colha feedback. Você pode fazer um pequeno formulário e pedir para que os participantes o respondam ao final do treinamento, assim, você saberá o que os alunos acharam sobre ele e terá a oportunidade de melhorar treinamentos futuros.
  5. Documente o processo e guarde informações. Uma das dificuldades que tivemos ao iniciar o planejamento foi encontrar informações sobre como eram estruturados os treinamentos, quais os conteúdos passados, quais as dificuldades e aprendizados que outras pessoas já tiveram com esse processo.
  6. Grave as aulas. Mesmo que as gravações não sejam utilizadas para nada no futuro, caso um aluno fique sem internet ou não entenda por completo o conteúdo passado em aula, ele poderá retomá-lo posteriormente para refrescá-lo em sua memória. Além disso, você pode assistir a si mesmo explicando o conteúdo e perceber pontos de melhoria.
  7. Crie projetos. Para os alunos é muito mais satisfatório terem feito um projeto com propósito do que diversas aplicações pequenas apenas exercitando determinado conceito. Além de verem um real resultado, conseguem absorver melhor o conteúdo passado.
  8. O modelo online torna aluno e professor mais distantes um do outro. Tente fazer com que os alunos liguem suas câmeras durante as aulas e faça com que eles participem ao máximo com sugestões e dúvidas.
  9. Permita-se não saber tudo. Caso um aluno pergunte algo que você não sabe, apenas diga que não sabe e vá atrás num momento posterior. Não é errado não saber algo.
  10. Tenha um trabalho de conclusão do treinamento. Esse momento é um dos mais importantes ao meu ver, pois é nele que surgirão as principais dúvidas e é onde poderá ser avaliado se o aluno absorveu realmente o conhecimento passado em aula, já que ele terá que desenvolver uma aplicação sozinho ou em conjunto com seus colegas de aula.

Conclusão

Gostaria de agradecer todos que fizeram, de alguma forma, parte do processo, em especial, a Camille Grings Silva e ao Luís poze que estiveram ao meu lado em todas as etapas, do começo ao fim. Foi extremamente gratificante poder compartilhar esse conhecimento com outras pessoas e além disso aprender com todos os desafios enfrentados.

Other Blog Posts

O que são Boolean Traps e como evitá-las no Javascript
O que são Boolean Traps e como evitá-las no Javascript

Recentemente fiz uma talk sobre este assunto, para a equipe na qual trabalho, tentando expor um pouco do problema e a possível solução para ele. Gostei bastante do conteúdo passado e o feedback das pessoas foi positivo o que me levou a transcrever a talk neste artigo.

Increase React render performance by avoiding unnecessary useEffects
Increase React render performance by avoiding unnecessary useEffects

A common mistake I see people making while creating their React component is creating extra states and effects. That may cause unexpected bugs and extra renders.

How to setup multiple environments in React Native
How to setup multiple environments in React Native

In this article I’ll explain a bit more about how to setup different environments in React Native and how to properly manage them across Javascript and native code.