O intuido deste documento é descrever o processo de onboarding nos projetos que envolvem competências técnicas de computação dentro do PAD-UFES, atualmente chamado de PAD-TI.
Primeiramente, é importante saber que o PAD-TI possui duas frentes principais:
-
Frente de desenvolvimento: o objetivo dessa frente é desenvolver, atualizar e manter todo o sistema de coleta e armazenamento de dados do PAD-UFES.
- Nessa frente é utilizado frameworks para desenvolvimento web e para smartphones
- Para mais informações, consulte o repositório de documentação
-
Frente de pesquisa: o objetivo da frente de pesquisa é desenvolver algoritmos para detecção de lesão de pele através de um software.
- Nessa frente é utilizado algoritmos da área de inteligência artificial, principalmente, na área de deep learning
- Para que essa frente funcione, é necessário que a frente de desenvolvimento esteja funcionando, uma vez que obter dados é essêncial
- Para mais informações, consulte o respositório de documentação
Dessa maneira, como o projeto possui duas frentes, é natural que exista um onboarding para cada uma delas. Ambos serão descritos na sequência deste documento.
O principal objetivo do onboarding é iniciar um novo membro do projeto para com as ferramentas utilizadas nele. A ideia é que o novo membro primeiro adquira um certo nível conhecimento dentro do ambiente utilizado antes de começar a solucionar tarefas relacionadas aos projetos que estão em funcionamento. Essa é uma estratégia muito comum em empresas e que tende a fazer com que a integração do novo membro seja mais suave, uma vez que ele não será "jogado" dentro do código principal do software, que tende a ser de milhares de linhas.
- Somente você sabe o seu nível de conhecimento em cada tópico. Logo, é você que define se você pode avançar ou não.
- Você não é obrigado a utilizar os tutorias fornecidos. Caso encontre outro melhor ou que prefira, fique a vontade. Alias, é recomendável que explore outra literatura e, caso tenha sugestão para atualizar esse onboarding, fique a vontade.
- Você não vai aprender por osmose! Apenas assistir os vídeos é a receita para o fracasso. É necessário praticar! Tente replicar o que está vendo e faça o mini-projeto recomendado!
O onboarding de desenvolvimento está disponível neste documento. A ideia principal é que o novo membro seja capaz de aprender/exercitar os conceitos básicos das seguintes ferramentas:
- Kanban
- Git
- Docker
- MySQL
- Spring Boot com Java
- Angular com Typescript
- Android com Kotlin
O onboarding de pesquisa é um pouco mais complexo uma vez que demanda bastante conhecimento de inteligência artificial / machine learning. Ele está disponível neste documento Normalmente, quem novos membros que participam dessa frente possui algum interesse científico, seja uma iniciação científica, projeto de graduação, mestrado ou doutorado. Adquirir o conhecimento mínimo para ser produtivo nessa frente vai exigir meses/anos. Todavia, nada impede de qualquer membro se aventurar nessa área.
De maneira geral, o onboarding de pesquisa tem como objetivo o aprendizado e exercício das seguintes competências:
- O básico de cálculo, álgebra e estatística
- Fundamentos básicos de machine learning
- Principais algoritmos de machine learning
- Fundamentos básicos de deep learning
- Introdução do ambiente Python para machine learning
- Numpy e Scipy
- Pandas
- Matplolib
- Pytorch