Uma jornada pública de 30 dias aprendendo a linguagem de programação Rust do zero, com um foco prático na resolução de problemas de Biologia Computacional e Bioinformática.
Este repositório é o meu diário de bordo digital. Durante 30 dias, dedicarei um tempo para aprender, praticar e documentar minha evolução com a linguagem Rust, aplicando os conceitos diretamente em desafios da bioinformática. A intenção é criar um roteiro estruturado que possa, quem sabe, inspirar e ajudar outros que queiram trilhar um caminho semelhante.
De forma simples, a bioinformática é o campo da ciência que utiliza a computação para entender a biologia. Nós usamos algoritmos e poder computacional para ler, analisar e interpretar o volume massivo de dados gerado por experimentos biológicos. Pense em decifrar um genoma completo, comparar proteínas ou entender como os genes são regulados, nesse ponto que entram ferramentas computacionais robustas.
A bioinformática exige ferramentas que atendam a um trio de necessidades críticas, e Rust se encaixa perfeitamente nelas:
-
Performance Bruta: As análises genômicas processam terabytes (ou pentabytes o.O) de dados. Rust compila para código de máquina nativo, oferecendo uma velocidade comparável a C/C++, o que significa que análises que levariam dias podem ser concluídas em horas.
-
Segurança e Confiabilidade: Um bug de gerenciamento de memória no meio de uma análise de 48 horas pode ser catastrófico. O sistema de ownership e borrowing de Rust garante a segurança da memória em tempo de compilação, eliminando uma classe inteira de bugs e tornando os programas incrivelmente robustos e confiáveis. Chega de "segmentation faults"! Quem já sofreu com isso?
-
Concorrência sem Medo: Servidores de pesquisa geralmente possuem dezenas de núcleos de CPU. Rust foi projetado para facilitar a escrita de código que aproveita todos esses núcleos de forma segura, permitindo um paralelismo massivo para acelerar ainda mais as análises.
Cada dia da jornada terá seu próprio arquivo de anotações e código, documentando o que foi aprendido.
Módulo 1: A Base de Rust - Primeiros Passos no Código
Módulo 2: Estruturas e Conceitos Essenciais
Módulo 3: Mergulhando na Bioinformática com Crates
Módulo 4: Análise de Dados e Interfaces
- Dia 22: Análise de Dados com Polars - Introdução
- Dia 23: Lendo CSV com Polars
- Dia 24: Filtrando e Selecionando Dados
- Dia 25: Introdução a Interfaces Web com Actix Web
- Dia 26: Recebendo Dados via Web
- Dia 27: Introdução a Interfaces Gráficas (GUI) com
egui - Dia 28: Mini-Projeto: Juntando Tudo (Parte 1)
- Dia 29: Finalizando o Mini-Projeto (Parte 2)
- Dia 30: Conclusão e Próximos Passos
- Cada dia de aprendizado terá seu próprio arquivo
DIA_XX.mdcom anotações, teoria e desafios. - Os códigos desenvolvidos em cada dia estarão dentro de pastas nomeadas
dia_xx_nome_do_projeto/. - Este
README.mdservirá como o índice central da jornada.
Este é um projeto de aprendizado pessoal, mas a jornada é pública! Fique à vontade para:
- Explorar os arquivos diários para ver o que aprendi.
- Sugerir melhorias, correções ou recursos interessantes abrindo uma Issue.
- Clonar o repositório e fazer sua própria Jornada!
- Canal do Slack em andamento!