Programming in Kotlin: Fundamentals
Learn the fundamental building blocks of Kotlin, through hands-on exercises and challenges! Explore the world of data types, comparison and logical operators, loops, control flow, functions, classes as custom types, and more. By Filip Babić.
Who is this for?
Beginner developers who've had some or no experience with Kotlin, who want to gain in-depth knowledge of this majestic programming language!
You'll learn a ton of fun and useful Kotlin concepts, starting off with data types and operators, then moving towards more complex features like statements & expressions, loops, and the flow of control. Then, building upon those concepts, you'll play with collections, functions and classes.
Sound like fun? Let's dive in!
This course isn't suitable for experienced developers. If you're looking for more complex topics, check out our intermediate or advanced Kotlin and Android courses.
Covered concepts
This course is jam-packed with the fundamentals to give you a solid grounding for your Kotlin adventures. Here are some of the concepts you’ll conquer along the way:
- Data Types
- Operations With Types
- Logical Operators
- Statements vs. Expressions
- Nullable Types
- Loops
- Control Flow
- Collections
- Pairs & Triples
- Nesting Expressions & Loops
- Functions
- Parameters vs. Arguments
- Scopes
- Classes
- Custom Types
- Methods vs. Functions
- Data Models
- Mutability
Part 1: Use Data Types & Operations
Welcome to Programming in Kotlin: Fundamentals! Get an overview of the course, and what topics you'll cover in the first part.
Set up the IDE you'll be using throughout the course, and start working with variables, constants, basic data types and comments.
Learn about the Boolean type which represents a true or false value, and how to create it using comparison operators.
Challenge time! Practice comparing values in order to create Boolean values, which can be true or false, then print out those values.
Learn how to use multiple Boolean values with logical operators, to combine and create complex conditions.
Branch out your code, to have multiple different execution flows, using if/else expressions and create code scopes.
Practice what you've learned about if/else expressions, Boolean values, and logical operators.
Sometimes values don't exist! Prepare for such cases by learning about Nullable Types and how to handle them.
Practice dealing with Nullable Types and null, using the safe call operator, the Elvis operator, and null-checks.
Review what you've learned in the first part of the course, and repeat all the concepts by solving a fun challenge.
Part 2: Store Data In Collections
In this part of the course, you'll learn how to store data in collections. Let's get started!
Learn how to group pieces of data in Pairs and Triples, how to work with such constructs, and how to destructure them.
Challenge time! Use what you've learned about Pairs and Triples to solve a short challenge.
Learn what collections of data are and how they behave in memory, then learn about Arrays, a static collection type.
Upgrade from an Array to a List, a dynamic collection of data. Compare the performance between an Array and a List.
Practice what you've learned about Arrays and Lists, the two basic collection types, in a challenge!
Review what you've learned in the second part of the course, and practice the knowledge by solving a challenge!
Part 3: Manage Control Flow
You're doing great! In this part of the course, you'll expand your Kotlin knowledge by mastering the concept of control flow.
Learn how to utilize the while loop, to repeat your code multiple times. Iterate over collections using loops.
Challenge time! Use your new skills and practice using while loops to iterate over collections and print data out.
Add another loop to your loop belt: the for loop. Learn how ranges let you repeat the code a fixed number of times.
Practice creating various ranges and for loops, to print data sequentially, by steps, and in reverse.
Use nested loops to iterate over two dimensional collections, and break and continue strategies to exit from loops early.
Practice iterating over two dimensional collections - matrices, and using exit-early strategies with break and continue.
Learn about the when expression, a more concise larger set of it/else expressions. Use when to return values.
Practice using when expressions, to return values for constants and variables. Build complex checks that rely on smart casts.
You're over halfway through the course! In this episode, review everything you've learned about control flow.
Part 4: Explore More Collections
Review the concepts you've learned so far, and learn about two new collection types - the Map and the Set.
Learn what a Map is, how to create one, and how to store key value pairs within the map.
Expand your knowledge of maps, to add and remove values, mutate the contents, and learn about three types of mutability.
Use what you've learned about Maps to solve a fun challenge. Let's get started!
Learn what a Set is, and how it's unique compared to other collections. Create and use Sets.
Challenge time! In this episode, practice using Sets to store unique pieces of data.
Review the collections you learned about in this part of the course, and find out what's up next!
Part 5: Write Functions
In this part of the course, you'll learn about write functions. Let's get started!
Learn what the function syntax is, and how to write your own functions. Create functions to reuse behavior.
Learn about all the ways to return data from functions, and how to utilize expressions for the returns.
Use what you've learned about using and creating functions to solve this challenge!
In this episode, learn how functions can become parameters, and how you can store functions as values.
Review the concepts you learned in this part of the course, and find out what's next!
Part 6: Create Classes
Almost there! In this final part of the course, you'll finish off your fundamental Kotlin skills by learning how to create classes.
Learn what classes are, what their syntax is, and how to create your own data types. Learn about properties and mutability.
Expand upon properties, learn what methods are, and how exactly mutability affects classes & reference types.
Practice what you've learned about classes, properties and methods by completing the challenge.
Learn what a data model is, and how to create data classes: classes which are used to represent data.
Last challenge of the course! Use what you've learned about data classes to copy, print out, or compare objects.
Congratulations on finishing the course! In this conclusion episode, review the many things you've learned and find out where to go from here.