Como organizar um plano de estudos

O profissional de TI precisa estar sempre atualizado e em constante evolução. Tecnologias e novos métodos para realizar as tarefas surgem o tempo todo e, portanto, é preciso estudar muito! São diversas bases e ferramentas que um profissional deve estudar. Como montar um plano de estudos eficiente e com foco naquilo em que se deseja estudar? Este texto é baseado em experiências internas dos colaboradores da ZBRA, que os ajudaram a estar cada vez mais preparados para esse universo desafiador.

Por onde estudar? Há plataformas especializadas para cursos dentro da área de tecnologia e desenvolvimento, como a Alura e a Pluralsight (esta última está disponível apenas em inglês). Elas possuem cursos em diversas áreas dentro da computação como, por exemplo, programação, Inteligência Artificial, DevOps, entre outras. Há a vantagem de ter conteúdo audiovisual e mais didático (sempre dependendo, claro, do criador do curso). Além disso, elas também oferecem um ponto inicial para aqueles que acabaram de entrar na plataforma, como trilhas que agrupam vários cursos de uma área específica, ajudando, assim, o aluno a ter um melhor direcionamento de quais cursos estudar. 

É importante ressaltar que sempre há a opção de pesquisar os cursos disponíveis, os quais costumam contar com uma descrição de seus conteúdos, e montar uma trilha personalizada. Isto também pode ser feito com ajuda de uma pessoa mais experiente na área em que se deseja o aperfeiçoamento. Com essa abordagem, há a vantagem de se possuir uma trilha mais personalizada e sob medida para o estudante.

Uma outra opção é a consulta de ‘roadmaps’ específicos, os quais contém os principais conceitos e tecnologias que merecem foco ao serem estudados. Há de se tomar cuidado, porém, pois existem mapas que tendem a ser muito extensos e propiciam o estudo de conteúdos que talvez não sejam tão relevantes quanto parecem. Eles podem ser utilizados como uma espécie de guia, mas o ideal é que o estudante crie o seu próprio roadmap personalizado, com a ajuda de alguém mais experiente na área de estudo.

Um outro ponto importante a ser considerado ao estudar é o de focar em entender bem os conceitos por trás das ferramentas ensinadas. Devemos, por exemplo, entender qual o conceito de uma classe em Orientação a Objeto, ao invés de tentar somente focar em como criar uma nas mais diversas linguagens de programação sem necessariamente entender o seu propósito. Diversas pessoas importantes do mundo de desenvolvimento, como Robert Martin (Uncle Bob) e Martin Fowler, têm mostrado a importância de uma boa base conceitual ao se construir sistemas de softwares complexos, com diversos artigos e textos sobre arquitetura de design de software, código limpo, entre outros. Em nossa experiência, a transição das pessoas entre as diversas ferramentas e tecnologias tende a ser muito mais fácil quando se tem uma boa base conceitual ao invés do foco em uma ferramenta específica (linguagem, framework, entrou outras), as quais tendem a ter diversas formas de implementação e, portanto, diferentes formas de aplicação de um mesmo conceito, tornando o entendimento desses conceitos utilizando única e exclusivamente essas ferramentas em algo confuso.

Ter uma pessoa experiente como tutora pode ajudar muito nesta tarefa. Se o aluno possui contato com uma pessoa mais experiente na área em que deseja focar, é altamente recomendável manter uma conversa com ela de tempos em tempos em um processo de mentoria. Essas conversas ajudam a esclarecer dúvidas que o estudante pode não ter pensado sobre no momento em que estava assistindo a um curso, e também podem esclarecer o racional por trás de uma dada técnica ensinada no curso.

Recomenda-se, também, a aplicação prática do conteúdo estudado, para melhor assimilação. Na experiência do autor que vos escreve (:P), foi sugerida pelo seu tutor, Filipe Sbragio, a realização de ‘Code Kata’s. Dave Thomas, um dos autores de “The Pragmatic Programmer” (junto com Andrew Hunt) e do Manifesto Ágil, foi um dos primeiros a cunhar esse termo. Em um de seus blogs, ele define o Code Kata como “uma tentativa de trazer o elemento da prática para o desenvolvimento de software. Um ‘kata’ é um exercício em Karatê, no qual se repete uma forma [de exercício] várias, várias vezes, produzindo pequenas melhorias a cada repetição”. Além disso, ele afirma que o seu objetivo é a prática de exercícios de programação em um ambiente controlado, no qual a pessoa pode se sentir à vontade para cometer erros e aprender com eles.

O ‘Code Kata’ trabalhado pelo autor deste texto pode ser encontrado no repositório ‘GildedRose-Refactoring-Kata’, por Emily Bache. Neste, em específico, procurou-se trabalhar com leitura de código, refactor, e aplicação de testes unitários e Design Patterns, conceitos essenciais para um desenvolvedor back-end. Alguns anos após ter realizado esses estudos e exercícios práticos, tendo o acompanhamento de perto de uma pessoa mais experiente, foi possível sentir na prática a diferença feita na hora de desenvolver e de transitar entre tecnologias e projetos.

Se você não possui contato com alguém mais experiente na área em que se deseja aprofundamento, algumas dessas plataformas também oferecem o acesso a fóruns para discussão e dúvidas, os quais também podem ajudar.

Por fim, recomenda-se a separação de um tempo para estudo. Isso ajuda no foco e na organização do conteúdo a ser estudado.

Cada pessoa pode aprender melhor de um jeito específico, mas, no geral, a aplicação das técnicas apresentadas acima ajudam muito no aprendizado efetivo dos conteúdos, impactando significativamente no nível de qualidade do código! Esperamos que essas técnicas os ajudem a ter estudos de qualidade!


Posted

in

Daniel Tanaka Avatar

by

Comments

Leave a Reply

Discover more from ZBRA - Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading