This intensive, hands-on course bridges the gap between Java and Kotlin, empowering experienced developers to write cleaner, more expressive code. Through a series of practical exercises directly in the IDE, you will move beyond basic syntax to adopt idiomatic Kotlin, leveraging its seamless interoperability to enhance existing Java projects or build robust new backend and Android applications.
Before diving into syntax, you must understand the interoperability architecture that allows Kotlin and Java to coexist. This module explores Kotlin’s design philosophy, its bytecode compatibility, and its primary advantages, demonstrating how to enhance productivity without compromising your existing JVM codebase. Outcome: Gain a clear understanding of why Kotlin has become the modern standard for JVM and Android development.
What's included
4 videos
Show info about module content
4 videos•Total 13 minutes
Introduction to the course•3 minutes
What is Kotlin?•5 minutes
History of Kotlin•3 minutes
Developing Kotlin•2 minutes
Getting Started with Kotlin
Module 2•4 hours to complete
Module details
It’s time to start coding. In this module, you will configure your IDE for optimal Kotlin development and begin writing your first programs. You’ll master core syntax – including variables, functions, and control flow – while comparing Kotlin constructs to their Java equivalents to quickly bridge the gap between the two languages.
Outcome: Confidently navigate Kotlin’s core syntax and write foundational code.
What's included
18 videos1 app item3 plugins
Show info about module content
18 videos•Total 75 minutes
From Java to Kotlin•7 minutes
Introducing Kotlin to an existing project•2 minutes
"Hello, world" example•5 minutes
Variables•5 minutes
Functions•4 minutes
Named & default arguments•6 minutes
Conditionals: if & when•6 minutes
Loops•3 minutes
'in' checks & ranges•4 minutes
Exceptions•4 minutes
Extension Functions•4 minutes
Examples from the Standard Library•9 minutes
Calling Extensions•4 minutes
Importance of extensions•4 minutes
Setting Up Programming Assignments•2 minutes
Solution: Mastermind•3 minutes
Solution: Checking identifier•3 minutes
Solution: Sum as an extension function•1 minute
1 app item•Total 120 minutes
Mastermind game•120 minutes
3 plugins•Total 44 minutes
Kotlin Playground: Checking identifier•20 minutes
Kotlin Playground: Sum as an extension function•4 minutes
Kotlin Playground: Mastermind in a functional style•20 minutes
Null Safety & Functional Programming
Module 3•7 hours to complete
Module details
Explore Kotlin’s most powerful defense: its type system. You will learn to eliminate NullPointerExceptions by effectively managing nullable and non-nullable types. Additionally, this module introduces functional programming patterns, including lambdas and higher-order functions, to make your code more expressive and concise. Outcome: Write safer, more powerful code using modern functional techniques and compile-time null safety.
What's included
19 videos1 reading2 app items4 plugins
Show info about module content
19 videos•Total 92 minutes
Nullable types•10 minutes
Nullable types under the hood•5 minutes
Safe casts•3 minutes
Importance of nullability•3 minutes
Lambdas•4 minutes
Common Operations on collections•7 minutes
Operations Quiz - I•4 minutes
Operations Quiz - II•7 minutes
Function Types•5 minutes
Member References•6 minutes
return from Lambda•6 minutes
Is Kotlin a functional language?•1 minute
Solution: Nice String•6 minutes
Solution: Taxi Park, tasks 1-3•5 minutes
Solution: Taxi Park, tasks 4 & 5•9 minutes
Solution: Taxi Park, task 6•3 minutes
Solution: Checking whether string is null or empty•3 minutes
Solution: Safe casts•1 minute
Solution: Interchangeable predicates•4 minutes
1 reading•Total 1 minute
Mastermind in a functional style•1 minute
2 app items•Total 300 minutes
Nice String•60 minutes
Taxi Park•240 minutes
4 plugins•Total 45 minutes
Kotlin Playground: Checking whether string is null or empty•5 minutes
Move beyond the basics to eliminate boilerplate code. In this module, you will explore properties, data classes, inheritance, and visibility modifiers. You will learn how Kotlin simplifies traditional Object-Oriented patterns and how to write idiomatic code that adheres to official conventions. Outcome: Structure clean, maintainable applications using Kotlin-specific best practices and simplified OOP structures.
Kotlin Playground: Using lateinit property•5 minutes
Kotlin Playground: NPE during initialization•10 minutes
Kotlin Playground: Equality•10 minutes
Advanced Features & the Type System
Module 5•7 hours to complete
Module details
To achieve true mastery, you must move beyond basic logic to leverage Kotlin’s most powerful abstractions. This module covers Sequences for memory-efficient data processing, Generics, and lambdas with receivers – the foundation of Kotlin’s Domain-Specific Languages (DSLs). Outcome: Build sophisticated, high-performance JVM applications using Kotlin’s most advanced architectural tools.
What's included
17 videos1 reading1 app item4 plugins
Show info about module content
17 videos•Total 95 minutes
Library functions looking like built-in constructs•7 minutes
The power of inline•8 minutes
Inline or not inline?..•1 minute
Collections vs Sequences•3 minutes
More about Sequences•5 minutes
Creating Sequences•7 minutes
Library Functions•6 minutes
Lambda with receiver•9 minutes
More useful library functions•5 minutes
Basic types•6 minutes
Kotlin type hierarchy•10 minutes
Nullable Types•11 minutes
Collection types•5 minutes
Solution: Inlining of the 'filter' function•2 minutes
Solution: Fibonacci sequence•2 minutes
Solution: Working with auxiliary functions•3 minutes
Solution: Member extensions•4 minutes
1 reading•Total 5 minutes
Mastering the Transition•5 minutes
1 app item•Total 300 minutes
Game 2048 & Game of Fifteen•300 minutes
4 plugins•Total 45 minutes
Kotlin Playground: Inlining of the 'filter' function•10 minutes
Kotlin Playground: Fibonacci sequence•15 minutes
Kotlin Playground: Working with auxiliary functions•5 minutes
Kotlin Playground: Member extensions•15 minutes
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
At JetBrains, code is our passion. For over 15 years we have strived to make the strongest, most effective developer tools on earth. By automating routine checks and corrections, our tools speed up production, freeing developers to grow, discover and create.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.7
2,128 reviews
5 stars
75.98%
4 stars
18.46%
3 stars
3.52%
2 stars
0.65%
1 star
1.36%
Showing 3 of 2128
K
KH
4·
Reviewed on Jun 13, 2021
Good survey of Kotlin language features. Would have been nice if assignments focused more on Kotlin idioms. Perhaps that's a fundamental issue with using an automated grader?
A
AV
5·
Reviewed on Jun 11, 2020
Great work, now i can understand a lot of concepts that i didn't understand before, the course is clear and very well explain with enough examples to reafirm the concept exposed, good job
K
KA
4·
Reviewed on May 2, 2020
The assignments don't have a detailed explanation. There should be more of code provided with fill the blanks kind of tasks. This would make it much easier and helpful as the assignments are tough.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I purchase the Certificate?
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.