Introduction to Kotlin

Learn Kotlin, a modern language for the JVM
4.3 (22 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
91 students enrolled
$19
$20
5% off
Take This Course
  • Lectures 36
  • Length 3 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2016 English

Course Description

This is a course on the Kotlin programming language. This course is designed for people already familiar with Java who are looking for a more modern, expressive and powerful language for the JVM.

In this course, you will learn about:

  • How to install and run Kotlin and why toolability matters
  • Type inference and how it can save you a lot of time
  • Smart control flow structures that let you write more succinctly
  • Mutability options (val and var), what they mean and how to use them
  • Nullability guarantees and how they make your code more safe
  • The power of functional literals (nested functions and lambdas)
  • Powerful built-in delegation functionality

... and a lot more!

This course is completely live-demo based. All the lectures are examples of real code being edited and executed using the IntelliJ IDEA Community Edition IDE.

What are the requirements?

  • A good knowledge of Java is required

What am I going to get from this course?

  • Solve problems in Kotlin
  • Understand Kotlin's advantages over Java
  • Effectively leverage Kotlin's null safety and mutability guarantees
  • Have fun with a new JVM language!

What is the target audience?

  • Java developers looking for a better programming language
  • Developers looking for interesting language design ideas

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction to Kotlin
04:28

A brief overview of why Kotlin is so good.

02:03

A little note about the options available for downloading and installing Kotlin.

03:53

Let's set up the IDE and run our first Kotlin program.

Section 2: Types and Variables
06:31

Learn about the difference between val and var. Also: there is no new and no semicolons.

01:33

Thanks to type deduction, most variable type decorations are not necessary. Woo-hoo!

08:20

Ranges of values. Self-explanatory, right?

05:59

A look at how arrays are represented and used in Kotlin.

06:44

Strings aren't complicated, but interpolation makes them more powerful.

Section 3: Control Flow
08:17

Kotlin provides powerful support for dealing with nullability. Lean everything about ?, ?., ?: and !!

03:22

Yer olde if is an expression that can return values and can appear in interpolated strings.

02:26

Why should the IDE check if you are risking an NPE, if the compiler can do it just as well? This awesome compiler feature also takes care of type conversions and more.

02:55

This ain't your father's for loop!

05:56

Kotlin's powerful alternative to Java's switch.

Section 4: Functions
03:15

Kotlin has functions which are not inside any class. What is this, C++?!?

04:53

Kotlin supports default argument values and calls with named arguments.

03:03

Call a function with any number of arguments, comma-separated-like.

04:09

Functions within functions.

02:45

Explains how functions such as downTo are implemented.

Section 5: Lambda Functions
06:17

Yay, lambdas! Oh, wait, Java has lambdas too? Yeah, but not like these!

03:15

Functions taking functions, but why?

01:50

Define the context of the function's operation. Advanced topic!

04:17

Give a class a magic method called invoke and call it like a function (a.k.a. functor).

Section 6: Classes
06:33

What, no fields? With Kotlin, forget about fields and getter/setter hell: properties take care of it all!

06:28

Give any type additional functionality.

03:28

Primary constructors provide an epic level of succinctness. But if you need to do more than initialize some fields, init block to the rescue!

06:29

You can override the implementation of a property in an external class. But why?!?

04:04

Simple, yet powerful, data classes auto-implement the basic scaffolding for you. Don't worry, you can override anything you don't like!

03:03

Kotlin lets you make Singletons with ease. It doesn't have static functions, but companion objects are a close alternative.

05:17

Kotlin doesn't have statics. But you can still get them, in a way.

03:34

Learn about the override keyword, base call disambiguation, opening types and more.

02:42

Interfaces... can contain properties as well as functions.

04:49

The Decorator pattern is essentially built-in in Kotlin.

Section 7: Odds & Ends
06:35

Yes, enumerations, with abstract functions and whatnot.

01:58

Kotlin has no checked exceptions. But try-catch is an expression.

02:03

But only standard operators, none of that F#-inspired operator <#%$> magic.

11:28

A look at how function types with receivers, together with lambda expressions, can help us make Groovy-style builders.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Dmitri Nesteruk, Quantitative Finance Professional

Dmitri Nesteruk is a developer, speaker and podcaster. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C#, F# and C++ programming as well high-performance computing using technologies such as CUDA. He has been a C# MVP since 2009.

Dmitri is a graduate of University of Southampton (B.Sc. Computer Science) where he currently holds a position as a Visiting Researcher. He is also an instructor on an online intro-level Quantitative Finance course, and has also made online video courses on CUDA, MATLAB, D, the Boost libraries and other topics.

Ready to start learning?
Take This Course