Meu Método de Estudo

Vou compartilhar o meu método de estudo que eu uso quando preciso aprender uma nova tecnologia ou linguagem de programação. A metodologia é muito simples e muito eficaz. Não garanto que seja rápida ou milagrosa, mas ajuda muito para você se planejar e medir o seu progresso.

A Metodologia

Escolho um livro sobre o assunto e sigo todos os exemplos e/ou exercícios do livro, sem exceção. Isso ajuda a te guiar nos estudos, mesmo que depois você descubra que foi por um caminho tortuoso, mas pelo menos você seguiu um caminho. Além do mais, seguindo um livro lhe ajudará a planejar os estudos e medir o seu progresso, ajudando a estabelecer metas e sprints para adiantar o planejamento.

A chave do sucesso dessa metodologia é seguir algumas regras que não podem ser quebradas em hipótese alguma:

Regra 1: “Wax on wax off”

Escrever e não copiar, inclusive os modelos oDATA, JSON e XML.

Você lembra do filme Karate Kid de 1984? O enredo do filme é muito parecido com a versão de 2010. O Daniel san apanha dos alunos da academia Cobra Kai, o senhor Myagi vai tirar satisfação com o professor machão e acaba por desafiá-lo para um torneio de Karatê entre seus alunos e Daniel san, que não sabe Karatê. Durante o treinamento o mestre Myagi manda Daniel san fazer diversas tarefas, como pintar uma grande cerca e lavare encerar um monte de carros.

No video abaixo Daniel san confronta seu mestre dizendo que ele deveria estar sendo treinado em Karatê e não ficar trabalhando de graça para seu mestre. Veja o video e a resposta do mestre (desculpe, não achei em português):

Transcrever  pode parecer sem sentido mas fazendo isso estará ganhando familiaridade com a nova ferramenta e seus detalhes da sintaxe e apenas copiando tais detalhes não podem ser observados. A vírgula naquela posição, o namespace digitado corretamente ou abrir de fechar de parênteses, chaves e colchetes corretamente encadeados, coisas que são mais facilmente percebidas quando transcrevemos o código do livro. Lembre-se, “wax on wax off”.

Regra 2: “Os 3 Passos”

Não seguir para o próximo sem que o exemplo e/ou exercício seja replicado/resolvido com sucesso. Mesmo que isso leve algumas horas ou dias.

Eu costumava contar a seguinte história para meus alunos. Quando eu estava estudando para o vestibular, inúmeras vezes eu gastava algumas horas de estudo para resolver dois ou três exercícios difíceis de Física ou Matemática. Para algumas pessoas, aquilo parecia perda de tempo, afinal eu poderia estar fazendo outros exercícios mais fáceis e assim aprender mais. Isso não era verdade, pois no processo de várias tentativas sem sucesso, eu aprendia a fundo aquele tema, coisa que nenhum outro professor ou livro poderia me ensinar, além do mais, eu nunca mais esqueceria aquela solução. Por isso a importância de ser persistente na resolução de algum problema muito difícil.

Com certo grau de certeza posso afirmar que após transcrever um exemplo do livro para seu computador, você terá cometidos alguns erros de digitação. Quando isso acontece é uma ótima oportunidade para aprender mais sobre investigação de erro, depuração e uso da ferramenta de depuração.

Eu sempre fico na tentação de copiar o código e sobrescrever a minha versão para resolver o problema e partir para um novo exemplo. Se essa tentação aparecer lembre-se que você não está resolvendo um problema de faturamento na produção, mas você está aprendendo.

Portanto, ao “gastar” muito tempo tentando resolver um problema de erro de digitação, você está revisando o código, revisando a API e a documentação. Tudo isso é muito útil no processo de aprendizado e familiarização de uma nova linguagem e de suas ferramentas.

Todo programador precisa conhecer muito bem as sua ferramentas de trabalho e nada melhor do que usá-las para ganhar esse conhecimento. Além do mais, não há nada melhor do que o gostinho de ter conseguido resolver um problema muito difícil pelo seu próprio esforço, é assim na Física, Matemática e em também em programação.

E o que são “Os Três Passos”? É uma receita ensinada pelo meu professor de Física para resolução de qualquer problema difícil:

“Ao encontrar um problema muito difícil, seguir os passos abaixo: Passo 1: Chore. Passo 2: Enxugue as lágrimas. Passo 3: Resolva o problema”.

Regra 3: RFTM, Read The F****** Manual

Abrir a API e/ou documentação de cada classe e controle novo. Entender ponto a ponto porquê o autor escolheu aquele método e/ou função.

Parece óbvio, mas não é. Tendemos a aceitar tudo que nos foi dado no livro, sem criticar e não pensar se aquela é a melhor forma se resolver aquele problema. Olhando a documentação além de entender porque o autor usou aquela forma e não outra, você adquire familiaridade com a documentação e API.

Evite a todo custo a “programação orientada a Google e Stackoverflow”. Lembro de não ter seguido essa regra quando estava estudando Objective-C e Cocoa Framework (usados para programar para iPhone). Pesquisava a solução no Stackoverflow e conseguia invariavelmente resolver o meu problema copiando a solução. Resolvia o problema, mas meu conhecimento permaneceu raso.

Um bônus, ao olhar na API, você pode encontrar outro método que poderia fazer também aquela tarefa, nada melhor do que testar! Isso nos leva a próxima regra.

Regra 4: Não Apresse o Aprendizado

Testar outros parâmetros não mostrados pelo autor.

Quando eu uso a regra 3, muito frequentemente eu enxergo outra forma de se fazer além da apresentada pelo autor do livro. A melhor coisa que você pode fazer para o seu aprendizado é efetivamente testar e comparar o resultado.

Mais uma vez, lembre-se que você não está resolvendo um chamado emergencial na produção, mas está aprendendo. Então não se afobe e extraia o quanto puder desse processo.

Regra 5: Se Não “Debugou”, Não Funcionou

Use o debugger o máximo que você puder. Apenas considere um programa terminado, quando você o executou com o debugger.

Ao usar a ferramenta de depuração durante o processo de aprendizado irá te ajudar a ter fluência e quando for algum problema mais grave, você não perderá tempo aprendendo a ferramenta “durante o voo”. Geralmente quando isso acontece você se acomoda e acaba por conhecer superficialmente a ferramenta. Em outras palavras, seu cérebro entende que você consegue “se virar” com aquele conhecimento e você fica incentivado em não procurar se aprofundar no conhecimento daquela ferramenta, afinal “você já consegue trabalhar com que o que você já sabe”.

Conclusão

A sensação de terminar um livro usando essas regras que eu mostrei acima é tão boa que dá vontade de colocar no currículo. Uma sensação de dever cumprido! Essa sensação só aparece quando você conseguiu alcançar algo com algum esforço, daí eu dizer que essa metodologia não é milagrosa nem imediata, pois envolve um grande grau de disciplina e esforço. Mas os frutos são sempre muito bons.

Se você estiver em dúvida de qual livro adotar para aplicar essa metodologia, que tal esse: ABAP 101 Exercises – Beginner Starting from scratch. Tente aplicar esse método e resolva todos os exercícios. Isso não o tornará um programador pleno, mas pelo menos um júnior acima da média.

    • Muito obrigado! Mas lembre-se que para ser “certificado” na minha metodologia, tem que seguir as 5 regras 🙂

  1. AMEI O ARTIGO E O LIVRO!!!! MUITO OBRIGADA POR ISSO! voce esta ajudando a formar profissionais melhores e motivados a aprender da forma correta. Belissimo trabalho! que Deus lhe abencoe, abracos.

  2. Olá.
    SAP Certified Development Associate – ABAP with SAP NetWeaver ainda é um livro recomendado para se iniciar estudos em ABAP? Ganhei-o de presente e gostaria de saber se iniciar por ele ainda é vantajoso.

    • Eu não compraria, pois é um livro mais voltado para a certificação. Eu não conheço e tendo a achar que ele não seja tão didático assim.

      Mas conhece aquele ditado, “cavalo dado não se olha os dentes”? Se aplica perfeitamente aqui. Comece a estudar por ele, tenho certeza que você aprenderá bastante coisa.

      Abraços e bons estudos!

      • Flávio, obrigado pelo retorno.

        Qual livro você recomendaria então para iniciantes? Posso ir atrás dele após terminar este!

        Obrigado novamente e parabéns pelo blog.

  3. Pingback: Resenha do Livro do Fábio - ABAP101

  4. Como falei no Twitter, um dos seus melhores posts (e no meio de tanto post bom, nao eh pouca coisa)

    Nunca tive uma metodologia, sempre fui lendo sem parar que nem tonto. Talvez por isso nao sei porcaria nenhuma fora ABAP 😀

    Abraco!

  5. Pingback: Resenha- OpenSAP SAPUI5 - Semana 1 e 2 - ABAP101

  6. Pingback: Introdução ao TDD em ABAP - ABAP101