Skip to content

Latest commit

 

History

History
174 lines (139 loc) · 4.23 KB

about.md

File metadata and controls

174 lines (139 loc) · 4.23 KB

About this course

Kotlin is

Statically typed programming language for modern multiplatform applications

100% interoperable with Java and Android

-- kotlinlang.org

Kotlin is a concise and safe language that helps to avoid lots of common problems in software development. Being interoperable with Java allows Kotlin to use all the experience and benefits of Java platform and ecosystem.

In this course we will learn how to use Kotlin and it's ecosystem for backend development.

We will

  • give you a kickstart into the Kotlin world
  • provide relevant materials and links
  • share the practice of Kotlin usage in production

You will

  • explore how to work with mature java frameworks and brand new Kotlin ones
  • learn how to build and ship Kotlin applications
  • create a final project in small teams

Tech stack

  • Lang: Kotlin, Java
  • Frameworks: Spring(boot, data, mvc)
  • Build: Gradle (Kotlin DSL)
  • Transport: Http, Websocket, mq(?)
  • Storage: PostgreSQL
  • Containerization: Docker
  • CI/CD: Travis-Ci, codecov, codacy
  • Version control: Git

Who is this class for

This class is intended for experienced developers who has at least 1 year of Java development experience or 3+ years development in any other language.

We expect you know or able to know:

  1. How to install JDK and setup IDE
  2. Build tools basics (Maven / Gradle / Ant / ...)
  3. OOP basics (class, interface, polymorphism)
  4. What is Http and how it works
  5. How git works (clone, pull, fetch, push, rebase)

We expect you to spend 10+ hours a week on coding/reading/learning.

In this class you will not

  • learn anything about Android

How to enter (Technosphere only)

  • java test
    • problem solving skill
    • collections(list, map, set, complexity)
    • OOP
  • git test
    • clone
    • pull / push / commit
    • rebase
  • general test
    • todo

Final project

Working in a small groups (2-3 devs) We will create a multiplayer backend for a Bomberman game.

Your project will be implemented using microservice architecture:

  • 2+ microservices (metagame, matchmaking, game server, ...)
  • frontend application (provided by us)
  • http / websocket / mq transport

For curious there will be a possibility to create kotlin-js project for your bomberman frontend.

Created by

  1. Sergey Rybalkin

    • 9 years development experience in Java
    • 2 years development experience in Kotlin
    • author of Java development course
  2. Sasha Pomosov

    • 7 years development experience in Java

General info

Level: Intermediate

Format:

  • Lectures: offline (no recording)
  • Slides: online
  • Code (examples, assignments): online
  • All other materials: online

Language:

  • Lectures: Russian
  • Slides: English

Hardware Req:

  • laptop

Syllabus

  1. Kotlin introduction #1

    • Language overview
    • Basic syntax
    • Hello world application
  2. Kotlin introduction #2

    • Extension functions
    • FP in Kotlin, high order functions
    • interaction with Java
    • Kotlin bytecode
  3. Kotlin introduction #3

    • OOP in Kotlin
      • class hierarchy
      • object midifier and singletones
    • type system
    • spring
      • introduction #1
  4. Generics and Collections

    • Generics basics
    • Functiona API
    • Collcetions
    • spring
      • introduction #2
  5. Web #1

    • spring
      • web
      • mvc
      • flux
    • http
      • client
      • server
      • okhttp
  6. Hackaton/Workshop

    • Making application based on previously covered topics
  7. Advanced Kotlin #1

    • operators
    • contracts
    • web #2
  8. Introduction to course Project

  9. Storage

    • PostgreSql basics
    • Spring-data
    • Kotlin exposed
  10. Infrastructure

    • Docker
    • Shipment / Deployment
    • Routing / Load Balancing
  11. Hackaton/Workshop

    • Making application based on previously covered topics
  12. Advanced Kotlin #2

    • Kotlin DSL
    • Gradle Kotlin DSL overview
  13. Practical Concurrency

    • Common problems
    • Memory model
    • Kotlin-specific features
    • Coroutines
  14. Additional topics

    • ecosystem
    • frameworks
    • etc
  15. Exam

    • Demonstration and review of The Project