Venkat Subramaniam: Programming in Kotlin – GOTO Academy NL

Venkat Subramaniam: Programming in Kotlin


           

           

Why should you attend?

Kotlin is a language that is gaining immense popularity for a few good reasons. It is a language that has been built from the strengths and powerful features of many different languages. This masterclass has been designed to bring your team up to speed on Kotlin so they can be quickly productive in using the language.

This masterclass has a good balance of interactive lectures and hands-on exercises. The attendees are expected to pair-up and work on the lab exercises. The instructor will assist the attendees as they work on the labs. The objective of the course is for the attendees to gain an in depth practical knowledge of the concepts so they can put them to immediate use on their real projects.

 

Who is this masterclass for?

Programmers, team leaders, and architects who are interested in learning and creating software systems using Kotlin.


                Agenda: Day 1

    • Building Kotlin Code
      • Why Kotlin?
      • Compiling
      • Bundling Kotlin
      • Using the REPL
      • Running as a Script
      • Compiling to Java bytecode
      • Compiling to JavaScript
      • Exercises
    • Kotlin Essentials
      • Defining variables and constants
      • String Templates
      • Raw Strings
      • Expressions over statements
      • Type Inference
      • Exercises
    • Working with Functions
      • Creating Functions
      • Default and Named Arguments
      • varargs and spread
      • Destructuring
      • Exercises
      • Collections
        • Java Collections in Kotlin
        • Pair and Triple
        • Generics
        • Variance
        • Sequences
        • Iteration
        • Exercises
        • Types and Argument Matching
          • Types in Kotlin
          • Type Safety
          • Nullable
          • Casting
            • when as a statement and an expression
            • Extension Functions on Any: let,also,apply,run
            • Exercises

           

                      Agenda: Day 2

            • Classes and OO Programming
              • Creating Classes
              • Inheritance
              • Writing Constructors
              • Overriding Methods
              • Data Classes
              • Exercises
              • Delegation and Extensions
                • Extension Methods
                • Delegation
                • Lazy
                • Creating custom delegations
                • Exercises
                • Functional Programming in Kotlin
                  • Imperative vs Functional
                  • Kotlin's Lambdas
                  • Idioms and styles in Kotlin
                  • Lexical vs dynamic scoping
                  • Inline functions with lambdas
                  • Non-local returns and labeled returns
                  • Exercises 
                • Internal Iterators and Lazy Evaluation 
                  • External vs internal iterators
                  • Filter, map, reduce
                  • Flatten and flatmap
                  • Sorting and grouping
                  • Sequences and infinite series
                  • Exercises

                 

                           Agenda: Day 3

                  • Coroutines
                    • Asynchronous Programming
                    • Why use coroutines?
                    • Making use of Coroutines
                    • Internal representations
                    • Exercises
                    • Creating DSLs
                      • Creating Fluent Syntax
                      • Infix
                      • Learning about implicit objects 
                      • Designing DSLs
                      • Exercises
                      • Java Integration
                        • Calling Java code from Kotlin
                        • Calling Kotlin code from Java
                        • Keeping an eye on interops
                        • Exercises
                      • Automated Testing with Kotlin
                        • Test Driven Development
                        • Empirical vs Interaction Tests
                        • Data Driven Tests 
                        • Mocking out dependencies
                        • Testing Coroutines
                        • Exercises

                     

                    Are there any prerequisites?

                    Knowledge of programming fundamentals is required and some knowledge of Java will be helpful.

                     

                     

                    Would you like to join as a group? - Contact us here

                    Upcoming training dates