# Kotlin4Noobs > Learn Kotlin from scratch with a free guide in English and Portuguese: variables, functions, collections, classes, null safety and coroutines, with examples that run in the browser. The notes are published in English and in Portuguese (Brazil), with the same topics in both. Source: https://github.com/gustavofreze/kotlin4noobs ## English (US) - [Kotlin4Noobs](https://gustavofreze.github.io/kotlin4noobs/): Learn Kotlin from scratch with a free guide in English and Portuguese: variables, functions, collections, classes, null safety and coroutines, with examples that run in the browser. - [Setting up a Kotlin development environment on Linux](https://gustavofreze.github.io/kotlin4noobs/linux/): Installing Kotlin on Linux with SDKMAN. - [Variables](https://gustavofreze.github.io/kotlin4noobs/variables/): `val` and `var`, mutability and the scope of variables. - [Data types](https://gustavofreze.github.io/kotlin4noobs/data-types/): Numbers, characters, booleans, strings and arrays. - [Functions](https://gustavofreze.github.io/kotlin4noobs/functions/): Declaration, parameters, return values and single-expression functions. - [Operators](https://gustavofreze.github.io/kotlin4noobs/operators/): Arithmetic, comparison, logical, range and type operators. - [Conditional Expressions](https://gustavofreze.github.io/kotlin4noobs/conditions/): `if` and `when` as expressions that return a value. - [Loops](https://gustavofreze.github.io/kotlin4noobs/loops/): `for`, `while`, `do-while`, ranges and flow control. - [Scope functions](https://gustavofreze.github.io/kotlin4noobs/scope-functions/): `let`, `run`, `with`, `apply` and `also`, and when to use each one. - [Collections](https://gustavofreze.github.io/kotlin4noobs/collections/): Lists, sets and maps, read-only and mutable. - [Classes and objects](https://gustavofreze.github.io/kotlin4noobs/classes-objects/): Classes, constructors, inheritance, data classes and objects. - [Generics](https://gustavofreze.github.io/kotlin4noobs/generics/): Generic classes and functions, constraints and variance. - [Exceptions](https://gustavofreze.github.io/kotlin4noobs/exceptions/): `try`, `catch`, `finally` and throwing exceptions. - [Null Safety and Safe Operators](https://gustavofreze.github.io/kotlin4noobs/null-safety/): Nullable types, safe calls, Elvis and the `!!` operator. - [Coroutines](https://gustavofreze.github.io/kotlin4noobs/coroutines/): Structured concurrency with `launch`, `async`, `suspend` and dispatchers. - [Coding Conventions](https://gustavofreze.github.io/kotlin4noobs/conventions/): The Kotlin coding conventions: naming, formatting and layout. ## Português (Brasil) - [Kotlin4Noobs](https://gustavofreze.github.io/kotlin4noobs/pt-br/): Aprenda Kotlin do zero com um guia gratuito em português e inglês: variáveis, funções, coleções, classes, null safety e corrotinas, com exemplos que rodam no navegador. - [Configurando ambiente de desenvolvimento Kotlin em ambientes Linux](https://gustavofreze.github.io/kotlin4noobs/pt-br/linux/): Instalando o Kotlin no Linux com o SDKMAN. - [Variáveis](https://gustavofreze.github.io/kotlin4noobs/pt-br/variables/): `val` e `var`, mutabilidade e escopo das variáveis. - [Tipos de dados](https://gustavofreze.github.io/kotlin4noobs/pt-br/data-types/): Números, caracteres, booleanos, strings e arrays. - [Funções](https://gustavofreze.github.io/kotlin4noobs/pt-br/functions/): Declaração, parâmetros, retorno e funções de expressão única. - [Operadores](https://gustavofreze.github.io/kotlin4noobs/pt-br/operators/): Operadores aritméticos, de comparação, lógicos, de intervalo e de tipo. - [Expressões condicionais](https://gustavofreze.github.io/kotlin4noobs/pt-br/conditions/): `if` e `when` como expressões que devolvem valor. - [Loops](https://gustavofreze.github.io/kotlin4noobs/pt-br/loops/): `for`, `while`, `do-while`, intervalos e controle de fluxo. - [Funções de escopo](https://gustavofreze.github.io/kotlin4noobs/pt-br/scope-functions/): `let`, `run`, `with`, `apply` e `also`, e quando usar cada uma. - [Coleções](https://gustavofreze.github.io/kotlin4noobs/pt-br/collections/): Listas, conjuntos e mapas, imutáveis e mutáveis. - [Classes e objetos](https://gustavofreze.github.io/kotlin4noobs/pt-br/classes-objects/): Classes, construtores, herança, data classes e objetos. - [Genéricos](https://gustavofreze.github.io/kotlin4noobs/pt-br/generics/): Classes e funções genéricas, restrições e variância. - [Exceções](https://gustavofreze.github.io/kotlin4noobs/pt-br/exceptions/): `try`, `catch`, `finally` e o lançamento de exceções. - [Null Safety e operadores seguros](https://gustavofreze.github.io/kotlin4noobs/pt-br/null-safety/): Tipos anuláveis, chamada segura, Elvis e o operador `!!`. - [Corrotinas](https://gustavofreze.github.io/kotlin4noobs/pt-br/coroutines/): Concorrência estruturada com `launch`, `async`, `suspend` e dispatchers. - [Convenções de codificação](https://gustavofreze.github.io/kotlin4noobs/pt-br/conventions/): As convenções de código do Kotlin: nomes, formatação e organização.