Aprenda Rust
Um curso online de Rust grátis e interativo. Você escreve Rust em cada lição, com dicas de IA quando o borrow checker reclama, e um certificado grátis ao concluir.
17,735+ codders inscritos
- Ideal para iniciantes
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
Seção 1
Fundamentals
Começar seçãoIniciarExpandirRecolherBuild a strong foundation with essential concepts and basic skillsIntrodução
4 lições324- 01RustDesafio
- 02Olá, Mundo!DesafioQuiz
- 03ComentáriosQuiz
- 04Estrutura Básica de um ProgramaDesafioQuiz
Variáveis Parte 1
5 lições539- 01NúmerosDesafioQuiz
- 02CharDesafioQuiz
- 03StringDesafioQuiz
- 04BooleanoDesafioQuiz
- 05Variáveis MutáveisDesafioQuiz
Variáveis Parte 2
5 lições433- 01Declaração de TipoDesafioQuiz
- 02Convenções de NomenclaturaQuiz
- 03Inferência de TipoDesafioQuiz
- 04Recapitulação - Inicializar VariáveisDesafio
- 05Conversão de TipoDesafioQuiz
Operadores Parte 1
5 lições438- 01Operadores AritméticosDesafioQuiz
- 02Operador de MóduloDesafioQuiz
- 03Atalhos AritméticosDesafioQuiz
- 04Operadores de ComparaçãoDesafioQuiz
- 05Comparação de StringsQuiz
Operadores Parte 2
4 lições424- 01Operadores Lógicos Parte 1DesafioQuiz
- 02Operadores Lógicos Parte 2DesafioQuiz
- 03Recapitulação - Lógica SimplesDesafio
- 04Operadores Lógicos Parte 3DesafioQuiz
Tomada de Decisão
5 lições532- 01Expressões IfDesafioQuiz
- 02If-ElseDesafioQuiz
- 03Instrução MatchDesafioQuiz
- 04Recapitulação - If ElseDesafio
- 05If - Else AninhadosDesafioQuiz
Entrada e Saída Básica
4 lições417- 01Exibindo no ConsoleDesafioQuiz
- 02Lendo a Entrada do UsuárioDesafioQuiz
- 03Revisão - Até 120Desafio
- 04Revisão - Verdadeiro ou FalsoDesafio
Aplicativo de Calculadora
Projeto4 lições1- 01Mensagem de Boas-vindasDesafio
- 02Obtendo NúmerosProjeto
- 03Operações BásicasProjeto
- 04Saída FormatadaProjeto
Laços
8 lições851- 01For sobre SériesDesafioQuiz
- 02Laço WhileDesafioQuiz
- 03BreakDesafioQuiz
- 04ContinueDesafioQuiz
- 05Laços AninhadosDesafioQuiz
- 06Rótulos de LoopDesafioQuiz
- 07Loop InfinitoDesafioQuiz
- 08Recapitulação - Entrada DinâmicaDesafio
Vinculação de Variáveis
4 lições230- 01EscopoQuiz
- 02Shadowing Parte 1DesafioQuiz
- 03Vinculação de VariávelQuiz
- 04Shadowing Parte 2DesafioQuiz
Funções
6 lições634- 01Declarando FunçõesDesafioQuiz
- 02Parâmetros e ArgumentosDesafioQuiz
- 03Valores de RetornoDesafioQuiz
- 04Múltiplos Valores de RetornoDesafioQuiz
- 05Recapitulação - Função SigmaDesafio
- 06Recapitulação - Função de ValidaçãoDesafio
Fundamentos de Arrays
5 lições430- 01Declarando ArraysDesafioQuiz
- 02Array como ParâmetroQuiz
- 03Acessando ElementosDesafioQuiz
- 04Modificando ArraysDesafioQuiz
- 05Recapitulação - Pretty Print de ArrayDesafio
Arrays: Continuação
5 lições423- 01Arrays de Referência MutáveisDesafioQuiz
- 02Métodos de ArrayDesafioQuiz
- 03Recapitulação - Array de ProdutoDesafio
- 04Recapitulação - Array InvertidoDesafio
- 05Print MelhoradoQuiz
Iterando sobre Arrays
4 lições333- 01Guia de RangeDesafioQuiz
- 02Loop For AprimoradoDesafioQuiz
- 03Borrow no LoopQuiz
- 04Operações Comuns com ArraysDesafioQuiz
Operações com Strings
4 lições424- 01Métodos de StringDesafioQuiz
- 02Macro format!DesafioQuiz
- 03Conversão de StringsDesafioQuiz
- 04Recapitulação - FormatDesafio
Projetos Finais
3 lições37- 01Padrão NuméricoDesafioQuiz
- 02Localizador de PadrõesDesafio
- 03Calculadora de Notas de AlunosDesafio
Seção 2
Logic & Flow
Começar seçãoIniciarExpandirRecolherDevelop problem-solving skills and create dynamic, interactive programsFluxo de Controle Avançado
6 lições640- 01A Expressão 'match'DesafioQuiz
- 02Correspondência de Múltiplos ValoresDesafioQuiz
- 03Correspondência de IntervalosDesafioQuiz
- 04A Expressão 'if let'DesafioQuiz
- 05Loops como ExpressõesDesafioQuiz
- 06Recapitulação - Parser de Comandos SimplesDesafio
Introdução a Vetores
8 lições756- 01O que é um Vetor?Quiz
- 02Criando um VetorDesafioQuiz
- 03Adicionando Elementos com pushDesafioQuiz
- 04Acessando Elementos do VetorDesafioQuiz
- 05Iterando sobre um VetorDesafioQuiz
- 06Iteração MutávelDesafioQuiz
- 07Removendo ElementosDesafioQuiz
- 08Recapitulação - Rastreador de Pontuação BásicoDesafio
Lista de Tarefas via Linha de Comando
5 lições5- 01Configuração do ProjetoDesafio
- 02Adicionando uma TarefaDesafio
- 03Visualizando Todas as TarefasDesafio
- 04Removendo uma TarefaDesafio
- 05Código FinalDesafio
Agrupando Dados com Structs
7 lições650- 01O que é uma Struct?Quiz
- 02Visão Geral de StructsDesafioQuiz
- 03Acessando Campos de uma StructDesafioQuiz
- 04Structs MutáveisDesafioQuiz
- 05Structs como Parâmetros de FunçãoDesafioQuiz
- 06Tuple StructsDesafioQuiz
- 07Recapitulação - Criando uma Struct BookDesafio
Pares Chave-Valor com Hash Maps
8 lições653- 01O que é um Hash Map?Quiz
- 02Criando um Hash MapQuiz
- 03Inserindo Pares Chave-ValorDesafioQuiz
- 04Acessando ValoresDesafioQuiz
- 05Iterando sobre um Hash MapDesafioQuiz
- 06Atualizando um ValorDesafioQuiz
- 07Removendo um ParDesafioQuiz
- 08Recapitulação - Contador de PalavrasDesafio
Lidando com a Ausência com 'Option'
7 lições645- 01O que é um 'Option'?Quiz
- 02Usando 'match' com 'Option'DesafioQuiz
- 03is_some() e is_none()DesafioQuiz
- 04Fazendo o unwrap de um 'Option'DesafioQuiz
- 05O método expectDesafioQuiz
- 06Fornecendo um valor padrão: unwrap_orDesafioQuiz
- 07Recapitulação - Encontrar um ElementoDesafio
Tratando Erros com 'Result'
7 lições648- 01O que é um 'Result'?Quiz
- 02Usando 'match' com 'Result'DesafioQuiz
- 03is_ok() e is_err()DesafioQuiz
- 04Atalhos: unwrap e expectDesafioQuiz
- 05O Operador de Interrogação '?'DesafioQuiz
- 06Parsing de Strings para NúmerosDesafioQuiz
- 07Recapitulação - Função de Divisão SeguraDesafio
Projeto: Inventário Simples de Itens
5 lições5- 01Configuração do ProjetoDesafio
- 02Adicionando um ItemDesafio
- 03Verificando o EstoqueDesafio
- 04Vendendo um ItemDesafio
- 05Juntando tudoDesafio
Slices de String e Mais
5 lições432- 01String vs. &strQuiz
- 02Criando Slices de StringDesafioQuiz
- 03Slices como Parâmetros de FunçãoDesafioQuiz
- 04Outros SlicesDesafioQuiz
- 05Recapitulação - Encontrar a Primeira PalavraDesafio
Closures & Funções Anônimas
5 lições431- 01O que é uma Closure?Quiz
- 02Definindo uma Closure SimplesDesafioQuiz
- 03Closures com ParâmetrosDesafioQuiz
- 04Capturando o AmbienteDesafioQuiz
- 05Recapitulação - Closure de Soma SimplesDesafio
Desafios Finais
3 lições3- 01Revisão - Itens ÚnicosDesafio
- 02Revisão - Validador de Perfil de UsuárioDesafio
- 03Revisão - Sumarizador de NotasDesafio
Seção 3
Object Oriented Programming
Começar seçãoIniciarExpandirRecolherDiscover how to organize code with classes, objects, and reusable structuresMétodos e Comportamento
7 lições748- 01Introdução a Blocos de ImplementaçãoDesafioQuiz
- 02O Parâmetro SelfDesafioQuiz
- 03Métodos MutáveisDesafioQuiz
- 04Funções AssociadasDesafioQuiz
- 05Múltiplos Blocos de ImplementaçãoDesafioQuiz
- 06Encadeamento de MétodosDesafioQuiz
- 07Recapitulação - Ações de RetânguloDesafio
Encapsulamento e Módulos
6 lições543- 01Fundamentos de MódulosQuiz
- 02A Palavra-chave PublicDesafioQuiz
- 03Campos PrivadosDesafioQuiz
- 04GettersDesafioQuiz
- 05SettersDesafioQuiz
- 06Recapitulação - Cofre SeguroDesafio
Enums Avançados
5 lições535- 01Enums com DadosDesafioQuiz
- 02Métodos em EnumsDesafioQuiz
- 03Correspondência de Variantes de DadosDesafioQuiz
- 04O Enum Option RevisitadoDesafioQuiz
- 05Recapitulação - Enum ShapeDesafio
Projeto: Pet Virtual
Projeto5 lições1- 01Definindo o PetDesafio
- 02Alimentando o PetProjeto
- 03Brincando com o PetProjeto
- 04Relatório de StatusProjeto
- 05Interação FinalProjeto
Genéricos
5 lições533- 01Structs GenéricasDesafioQuiz
- 02Métodos GenéricosDesafioQuiz
- 03Múltiplos Tipos GenéricosDesafioQuiz
- 04Funções GenéricasDesafioQuiz
- 05Recapitulação - Ponto de CoordenadaDesafio
Definição de Traits
6 lições641- 01O que é uma Trait?DesafioQuiz
- 02Implementando TraitsDesafioQuiz
- 03Implementações PadrãoDesafioQuiz
- 04Sobrescrevendo PadrõesDesafioQuiz
- 05Traits com ParâmetrosDesafioQuiz
- 06Recapitulação - Media PlayerDesafio
Traits Padrão
5 lições536- 01A Trait DebugDesafioQuiz
- 02A Trait DisplayDesafioQuiz
- 03Clone e CopyDesafioQuiz
- 04Traits de IgualdadeDesafioQuiz
- 05Recapitulação - Ponto ImprimívelDesafio
Traits como Restrições
5 lições534- 01Sintaxe de Restrições de TraitDesafioQuiz
- 02Restrições MúltiplasDesafioQuiz
- 03A Cláusula WhereDesafioQuiz
- 04Retornando Tipos com TraitsDesafioQuiz
- 05Recapitulação - Impressora GenéricaDesafio
Objetos Trait
4 lições425- 01Despacho DinâmicoDesafioQuiz
- 02Vetores de TraitsDesafioQuiz
- 03Iterando Objetos TraitDesafioQuiz
- 04Recapitulação - Gerenciador de ZoológicoDesafio
Projeto: Sistema de Documentos
Projeto5 lições1- 01A Trait DrawDesafio
- 02Componente de TextoProjeto
- 03Componente de BotãoProjeto
- 04A Struct ScreenProjeto
- 05Executando a TelaProjeto
Padrões de Projeto em Rust
5 lições531- 01Padrão NewtypeDesafioQuiz
- 02ComposiçãoDesafioQuiz
- 03A Trait DropDesafioQuiz
- 04From e IntoDesafioQuiz
- 05Recapitulação - Mock de Smart PointerDesafio
Desafios Finais
3 lições3- 01Pilha GenéricaDesafio
- 02Catálogo de BibliotecaDesafio
- 03Calculadora de Área de FormasDesafio
Cursos de Rust
Cursos práticos de Rust, grátis para começar no navegador.
Desafios para Iniciantes - Pratique Conceitos Básicos
PopularColoque seus conhecimentos básicos de programação à prova e tente resolver estes desafios de programação. Use a linguagem que desejar. Bons códigos!
Certificado ao concluir
- 20
- 20
Problemas de Programação
PopularColoque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com algum conhecimento prévio da sintaxe básica em qualquer linguagem de programação.
Certificado ao concluir
- 32
- 31
Desafios de Programação: Volume 2
Coloque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com conhecimento prévio da sintaxe básica em qualquer linguagem de programação, este curso é uma extensão do primeiro Desafios de Programação.
Certificado ao concluir
- 25
- 24
Pilha - Série Estruturas de Dados #1
Neste curso, você aprenderá sobre a estrutura de dados Pilha, criará uma Pilha do zero usando sua linguagem preferida e praticará desafios de programação com ela!
- 13
- 6
- 1
Heaps e Filas de Prioridade - Série de Estruturas de Dados #7
NovoNeste curso, você aprenderá sobre a estrutura de dados Heap (a base das filas de prioridade), criará um MinHeap do zero usando sua linguagem preferida e praticará desafios de codificação com ela!
Certificado ao concluir
- 14
- 6
- 1
Bootcamp de Padrões de Estrelas
Coloque suas habilidades de resolução de problemas de programação em prática para aprender a imprimir padrões de estrelas que variam do simples ao complexo, envolvendo diferentes níveis de loops aninhados, estruturas condicionais e cálculos matemáticos.
- 30
- 28
Por que aprender Rust com a Coddy
- Escreva e execute código Rust de verdade no navegador. Sem instalar rustup, sem configurar Cargo. Cada aula compila seu programa Rust no servidor e mostra a saída (e qualquer erro do compilador) na hora.
- O que torna Rust único: ownership, borrowing, lifetimes, traits, enums e pattern matching, tratamento de erros com
Result. Os fundamentos de Rust que todo programador de sistemas precisa. - As dicas de IA explicam os erros notoriamente rigorosos do compilador do Rust, transformando o borrow checker em professor em vez de um muro quando você está começando.
- Certificado grátis de Rust ao concluir o curso. Um sinal confiável para vagas em sistemas, infraestrutura, blockchain e embarcados, áreas em que Rust vem se tornando a linguagem preferida.