Para aprender Rust do zero, instale a linguagem, domine ownership e tratamento de erros, pratique traits e testes e só então avance para concorrência, APIs e WebAssembly. Esta trilha reúne os tutoriais em português do Rust Brasil em uma ordem que evita pular fundamentos importantes. Se você já programa, comece pelos primeiros passos; se está conhecendo a linguagem agora, faça antes a instalação completa.
Trilha rápida: qual tutorial estudar agora?
| Seu objetivo | Comece por | Continue com |
|---|---|---|
| Escrever o primeiro programa | Instalando Rust | Primeiros passos |
| Entender a sintaxe | Variáveis, tipos e funções | Structs, enums e pattern matching |
| Dominar o diferencial do Rust | Ownership e borrowing | Tratamento de erros |
| Escrever código reutilizável | Traits e generics | Testes em Rust |
| Criar software concorrente | Concorrência em Rust | API REST com Axum |
| Trabalhar com backend e dados | API REST com Axum | Rust com PostgreSQL |
| Compilar para o navegador | WebAssembly com Rust | Projetos práticos |
Etapa 1: prepare o ambiente e aprenda a sintaxe
Comece instalando rustup, rustc e Cargo. O tutorial Como instalar Rust cobre Linux, macOS e Windows, além da configuração do VS Code com rust-analyzer. Depois, em Primeiros passos com Rust, você cria um projeto, entende cargo run, compila o primeiro programa e conhece a estrutura básica de um pacote.
A seguir, estude variáveis, tipos e funções. Essa etapa apresenta imutabilidade, shadowing, tipos escalares e compostos, expressões e retorno de funções. O objetivo não é decorar toda a sintaxe, mas conseguir ler um programa pequeno e alterar seu comportamento sem depender de copiar código pronto.
Resultado esperado: você consegue criar um projeto com Cargo, editar src/main.rs, interpretar mensagens simples do compilador e executar o programa localmente.
Etapa 2: domine ownership, structs e erros
O sistema de ownership e borrowing é o conceito central de Rust. Ele permite segurança de memória sem garbage collector, mas exige entender quem possui cada valor, quando uma referência pode ser usada e por que o compilador rejeita determinados acessos. Reserve tempo para escrever exemplos com String, empréstimos imutáveis e mutáveis e slices.
Depois, aprenda a modelar domínio com structs, enums e pattern matching. Enums como Option<T> e Result<T, E> aparecem em praticamente todo projeto real. Eles se conectam diretamente ao tutorial de tratamento de erros, que mostra match, o operador ? e a criação de erros claros sem recorrer a exceções.
Uma sequência eficiente é:
- criar uma struct para representar um dado do programa;
- usar um enum para representar estados possíveis;
- retornar
Resultnas operações que podem falhar; - corrigir os avisos de
cargo clippyantes de avançar.
Resultado esperado: você entende erros comuns do borrow checker, evita unwrap() indiscriminado e consegue modelar estados válidos no sistema de tipos.
Etapa 3: escreva abstrações e testes
Com os fundamentos consolidados, avance para traits e generics. Traits descrevem comportamentos compartilhados; generics permitem reutilizar código sem perder segurança de tipos ou desempenho. Você verá trait bounds, impl Trait, cláusulas where, implementações padrão e a diferença entre dispatch estático e dinâmico.
Em seguida, use testes em Rust para transformar exemplos em código confiável. Pratique testes unitários, testes de integração, assert_eq!, casos que devem falhar e organização do diretório tests/. Executar cargo test desde o início torna a evolução do projeto mais segura e cria uma habilidade valorizada em revisão de código e processos seletivos.
Se o objetivo é criar ferramentas de terminal, o tutorial de CLI com Clap combina bem com esta etapa: argumentos tipados, mensagens de ajuda e erros testáveis formam um projeto de portfólio pequeno, mas completo.
Etapa 4: escolha uma aplicação avançada
Depois da base, escolha uma direção conforme o tipo de software que deseja construir:
- Concorrência e sistemas: estude threads, canais,
Arc,Mutexe async. O compilador ajuda a impedir data races, mas ainda é necessário escolher corretamente entre paralelismo, concorrência e I/O assíncrono. - Backend: construa uma API REST com Axum e conecte-a ao PostgreSQL com Rust. Você praticará rotas, JSON, estado compartilhado, SQL, migrations e tratamento de falhas.
- WebAssembly: siga o guia de Rust e WebAssembly para compilar código Rust para o navegador e integrá-lo a JavaScript.
Não tente estudar todas as áreas ao mesmo tempo. Um projeto concluído com README, testes e instruções de execução ensina mais do que vários tutoriais lidos sem prática. A seção de projetos em Rust oferece ideias para aplicar cada etapa, de utilitários de linha de comando a emuladores e serviços web.
Como estudar Rust sem travar
Use um ciclo curto: leia um conceito, execute o exemplo, altere uma regra e observe a mensagem do compilador. Em Rust, os erros de compilação são parte do material didático. Quando o borrow checker rejeitar um programa, procure identificar a duração da referência e o proprietário do valor antes de adicionar .clone() apenas para silenciar o erro.
Para uma rotina consistente:
- estude de 30 a 60 minutos por sessão;
- digite os exemplos em vez de apenas copiá-los;
- rode
cargo fmt,cargo clippyecargo test; - mantenha um projeto pequeno durante toda a trilha;
- consulte a documentação de Rust em português quando precisar revisar um conceito;
- acompanhe vagas Rust para identificar ferramentas e competências pedidas pelo mercado.
Perguntas frequentes
Qual é a melhor ordem para aprender Rust?
A ordem recomendada é: instalação, Cargo e sintaxe básica; ownership e borrowing; structs, enums e erros; traits e generics; testes; depois uma especialização como concorrência, backend ou WebAssembly. Essa sequência reduz a dificuldade porque cada tutorial reutiliza conceitos anteriores.
Rust é difícil para iniciantes?
Rust tem uma curva inicial maior que linguagens com garbage collector, principalmente por ownership e lifetimes. Em compensação, o compilador aponta muitos problemas antes da execução. Avançar com programas pequenos e testar cada conceito separadamente torna o aprendizado mais previsível.
Quanto tempo leva para aprender Rust?
Em poucas semanas de prática regular é possível escrever CLIs e projetos básicos. Para trabalhar com backend, sistemas ou código assíncrono em produção, conte com alguns meses de projetos, testes, leitura de crates e depuração. O tempo depende mais da prática deliberada do que da quantidade de conteúdo consumido.
Preciso saber C ou C++ antes de Rust?
Não. Experiência com outra linguagem ajuda, mas não é requisito. Quem vem de Python, JavaScript, Java, Go ou Kotlin pode aprender Rust diretamente. Conceitos de memória e concorrência serão apresentados durante a trilha.
O que construir depois dos tutoriais?
Comece com uma CLI, uma API CRUD ou um processador de arquivos. Depois adicione testes, persistência, logs e CI. Para escolher algo adequado ao seu nível, consulte os projetos práticos em Rust e transforme um deles em portfólio público.
CLI com Clap em Rust: Tutorial Completo
Introdução Rust é uma das melhores linguagens para criar ferramentas de linha de comando (CLI). O ecossistema oferece crates excelentes, e o Clap se destaca …
WebAssembly com Rust: Tutorial Completo
Introdução WebAssembly (WASM) é um formato binário de instruções que roda em navegadores modernos com performance próxima ao código nativo. Rust é uma das …
Testes em Rust
Introdução Testes são cidadãos de primeira classe em Rust. A linguagem possui suporte nativo para testes unitários, testes de integração e doc tests, sem …