Virtual | Venkat Subramaniam: Kotlin for Developers – GOTO Academy NL

Virtual | Venkat Subramaniam: Kotlin for Developers



Approximate schedule each day:

 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 

 Agenda: Day 2

      • 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 3

          • 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 

             Agenda: Day 4

              • Internal Iterators and Lazy Evaluation 
                • External vs internal iterators
                • Filter, map, reduce
                • Flatten and flatmap
                • Sorting and grouping
                • Sequences and infinite series
                • Exercises
              • 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

               Agenda: Day 5

                  • 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.

                Upcoming training dates