---
title: "Como Praticar Kotlin? Guia Completo | Kotlin Brasil"
url: "https://kotlin.dev.br/perguntas/como-praticar-kotlin/"
markdown_url: "https://kotlin.dev.br/perguntas/como-praticar-kotlin.MD"
description: "Aprenda as melhores formas de praticar Kotlin com exercícios, projetos e plataformas online. Dicas práticas para evoluir do básico ao avançado."
date: "2025-10-12"
author: "Karina Melo"
---

# Como Praticar Kotlin? Guia Completo | Kotlin Brasil

Aprenda as melhores formas de praticar Kotlin com exercícios, projetos e plataformas online. Dicas práticas para evoluir do básico ao avançado.


## Como praticar Kotlin?

Aprender a teoria é importante, mas **a prática é o que transforma conhecimento em habilidade real**. Se você quer realmente dominar Kotlin, precisa colocar a mao no código todos os dias. Neste guia, vou mostrar as melhores formas de praticar, desde exercícios para iniciantes até estrategias avançadas para quem já tem alguma experiência.

### 1. Kotlin Playground e REPL

O jeito mais rápido de começar a praticar e usando o [Kotlin Playground](https://play.kotlinlang.org/) no navegador. Nao precisa instalar nada, basta abrir e começar a digitar código.

Para prática local, você pode usar o REPL (Read-Eval-Print Loop) do Kotlin:

```kotlin
// Abra o terminal e digite: kotlinc
// Isso abre o REPL interativo onde voce pode testar codigo rapidamente

// Experimente no Playground ou REPL:
fun inverterPalavras(frase: String): String =
    frase.split(" ").reversed().joinToString(" ")

fun contarVogais(texto: String): Int =
    texto.lowercase().count { it in "aeiou" }

fun main() {
    println(inverterPalavras("Kotlin e incrivel"))
    // Saida: "incrivel e Kotlin"

    println(contarVogais("Desenvolvimento de software"))
    // Saida: 11
}
```

### 2. Kotlin Koans

Os [Kotlin Koans](https://kotlinlang.org/docs/koans.html) são exercícios interativos oficiais criados pela JetBrains. Eles cobrem os principais recursos da linguagem de forma progressiva e são excelentes para quem esta comecando.

Os Koans cobrem topicos como:
- Introdução a sintaxe
- Convenções e operadores
- Coleções e transformacoes
- Propriedades e delegação
- Builders e DSLs
- Generics

### 3. Plataformas de desafios de programação

Resolver desafios em plataformas online e uma forma excelente de praticar lógica e sintaxe simultaneamente.

**Plataformas recomendadas:**
- **HackerRank**: tem seção específica para Kotlin com problemas categorizados por dificuldade
- **LeetCode**: aceita solucoes em Kotlin e e otimo para preparacao de entrevistas
- **Exercism**: oferece trilha de Kotlin com mentoria voluntaria
- **CodeWars**: desafios em formato de "katas" com dificuldade progressiva

```kotlin
// Exemplo de desafio tipico: encontrar o segundo maior numero
fun segundoMaior(numeros: List<Int>): Int? {
    if (numeros.size < 2) return null
    return numeros.distinct().sortedDescending().getOrNull(1)
}

// Desafio: verificar se uma string e palindromo
fun ePalindromo(texto: String): Boolean {
    val limpo = texto.lowercase().filter { it.isLetterOrDigit() }
    return limpo == limpo.reversed()
}

// Desafio: FizzBuzz funcional
fun fizzBuzz(n: Int): List<String> =
    (1..n).map { numero ->
        when {
            numero % 15 == 0 -> "FizzBuzz"
            numero % 3 == 0 -> "Fizz"
            numero % 5 == 0 -> "Buzz"
            else -> numero.toString()
        }
    }

fun main() {
    println(segundoMaior(listOf(5, 3, 8, 1, 9, 2)))  // 8
    println(ePalindromo("A man a plan a canal Panama"))  // true
    println(fizzBuzz(15))
}
```

### 4. Projetos pessoais progressivos

A melhor prática vem de construir algo real. Aqui esta uma progressao recomendada de projetos:

**Nível iniciante:**
- Calculadora de linha de comando
- Lista de tarefas (to-do list) no terminal
- Conversor de unidades (temperatura, moedas, medidas)
- Jogo de adivinhacao de números

**Nível intermediário:**
- API REST com Ktor ou Spring Boot
- App Android simples com Jetpack Compose (lista de notas, calculadora de gorjeta)
- Leitor de RSS que consome feeds da internet
- Sistema de gerenciamento de biblioteca (CRUD completo)

**Nível avançado:**
- App multiplataforma com KMP
- Clone simplificado de um app popular (lista de compras, previsao do tempo)
- Contribuicao em projetos open source
- Ferramenta CLI com kotlinx-cli

```kotlin
// Projeto pratico: calculadora de IMC
fun calcularIMC(peso: Double, altura: Double): Double =
    peso / (altura * altura)

fun classificarIMC(imc: Double): String = when {
    imc < 18.5 -> "Abaixo do peso"
    imc < 25.0 -> "Peso normal"
    imc < 30.0 -> "Sobrepeso"
    imc < 35.0 -> "Obesidade grau I"
    imc < 40.0 -> "Obesidade grau II"
    else -> "Obesidade grau III"
}

fun main() {
    print("Digite seu peso (kg): ")
    val peso = readLine()?.toDoubleOrNull() ?: return

    print("Digite sua altura (m): ")
    val altura = readLine()?.toDoubleOrNull() ?: return

    val imc = calcularIMC(peso, altura)
    val classificacao = classificarIMC(imc)

    println("Seu IMC: ${"%.1f".format(imc)}")
    println("Classificacao: $classificacao")
}
```

### 5. Contribuicao em projetos open source

Contribuir em projetos open source e uma das melhores formas de praticar Kotlin em um contexto profissional. Você aprende padrões de código real, passa por code review e interage com outros desenvolvedores.

**Como começar:**
1. Procure projetos Kotlin no GitHub com a tag "good first issue"
2. Leia o código existente para entender os padrões
3. Comece com contribuicoes pequenas (correção de bugs, melhoria de documentação)
4. Evolua para contribuicoes maiores conforme ganha confianca

**Projetos brasileiros de Kotlin para contribuir:**
- Bibliotecas e ferramentas da comunidade
- Projetos de aprendizado colaborativo
- Aplicativos open source em Kotlin

### 6. Estudo de código alheio

Ler código escrito por outros desenvolvedores experientes e uma forma poderosa de aprendizado. Análise projetos open source populares em Kotlin e tente entender:
- Como eles organizam o código
- Quais padrões de projeto utilizam
- Como lidam com tratamento de erros
- Como escrevem testes

### 7. Testes automatizados como prática

Escrever testes e uma habilidade fundamental e também uma otima forma de praticar:

```kotlin
// Praticando com testes unitarios
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.*

class CalculadoraTest {
    private val calc = Calculadora()

    @Test
    fun `soma de dois numeros positivos`() {
        assertEquals(5, calc.somar(2, 3))
    }

    @Test
    fun `divisao por zero lanca excecao`() {
        assertThrows(ArithmeticException::class.java) {
            calc.dividir(10, 0)
        }
    }

    @Test
    fun `lista filtrada corretamente`() {
        val numeros = listOf(1, 2, 3, 4, 5, 6)
        val pares = numeros.filter { it % 2 == 0 }
        assertEquals(listOf(2, 4, 6), pares)
    }
}
```

### 8. Habitos diarios que aceleram o aprendizado

- **30 minutos por dia**: a consistencia vale mais que sessoes longas esporadicas
- **Caderno de anotações**: anote conceitos novos, erros cometidos e solucoes encontradas
- **Ensine alguem**: explicar um conceito para outra pessoa consolida seu próprio entendimento
- **Revise código antigo**: volte a projetos anteriores e melhore-os com o que aprendeu
- **Participe de comunidades**: tire duvidas, responda perguntas de outros e troque experiencias

### Pros e contras de cada método de prática

**Plataformas de desafios:**
- Pro: exercícios variados e com dificuldade progressiva
- Pro: preparacao para entrevistas tecnicas
- Contra: problemas abstratos que nem sempre refletem o trabalho real

**Projetos pessoais:**
- Pro: motivacao pessoal e resultado tangivel
- Pro: experiência proxima ao trabalho profissional
- Contra: pode ser difícil manter a disciplina sozinho

**Contribuicao open source:**
- Pro: experiência real com code review e colaboracao
- Pro: networking com outros desenvolvedores
- Contra: curva de aprendizado inicial para entender projetos grandes

### O mais importante

Nao existe uma única forma certa de praticar. O segredo e combinar diferentes abordagens e manter a constancia. Comece com o que for mais confortavel para você e va expandindo conforme ganha confianca. O mais importante e escrever código todos os dias, mesmo que seja pouco.

### Perguntas relacionadas

- [Como aprender Kotlin em 2026?](/perguntas/como-aprender-kotlin/)
- [Quanto tempo leva para aprender Kotlin?](/perguntas/quanto-tempo-aprender-kotlin/)
- [Projetos Kotlin para iniciantes](/perguntas/kotlin-projetos-iniciantes/)
- [Kotlin e difícil de aprender?](/perguntas/kotlin-e-difícil/)
- [Melhor IDE para Kotlin](/perguntas/melhor-ide-kotlin/)
