Giter Site home page Giter Site logo

learnkotlinyesterday's Introduction

Learn Kotlin Yesterday

A guide to learning Kotlin (fast!) for developers who can already code in other languages.

The Learn Kotlin Yesterday document header image

Overview

This repo contains a document and code examples that cover the core principles & techniques of using the Kotlin programming language. I developed it as I needed to get up to speed with Kotlin as quickly as possible - and figured that my write-up and demo projects might be useful to any other devs who may need to learn Kotlin quickly, too.

Topics Covered / Chapters:

  • 00 - Intro / Overview / Use Case
  • 01 – Kotlin Basics and Compiling from the Command Line
  • 02 - Classes, Types, and Basic Syntax
  • 03 - Organising Code, Imports, and Packages
  • 04 - Extending Classes & Implementing Interfaces
  • 05 - Singletons, Functions, Parameters, and Arguments
  • 06 – Further Classes and Functions, Companion Objects, and Java/Kotlin Interaction
  • 07 – Smart Casts and Type Checking
  • 08 – Flow Control
  • 09 – String Templates and Multi-Line Strings
  • 10 – References, Values, Types, and Equality
  • 11 – Collections and Streams
  • 12 – Loops and Iteration
  • 13 – VarArg Parameters
  • 14 – Filtering Data in Collections
  • 15 – Running Map, Reduce, and Sort on Collections
  • 16 – Working with Ranges and Progressions
  • 17 – Extension Functions
  • 18 – Extension Properties
  • 19 – Higher Order Functions and Lambda with Receiver
  • 20 – Overloading Operators
  • 21 – Working with Generics
  • 22 – Infix Function Calls

Erata / Feedback

Any and all feedback is cordially invited =D Please feel free to raise an issue if you feel something isn't quite right, or make some changes and submit a pull request if you'd prefer. If taking the PR route and modifying the Word document (whether in Word or LibreOffice or similar), please be aware that Track Changes is enabled in the document, so please leave it on when making any adjustments so I can see what's changed & where (although you don't have to update the PDF or HTML document versions - I'm happy to take care of that).

To protect your anonymity, prior to including any changed version of the document in a PR you may wish to create a version with all metadata removed by (in Windows) right-clicking on the document, then selecting Properties from the pop-up menu, then in the Details tab click Remove Properties and Personal Information then make sure Create a copy with all possible properties remove is selected and click [OK]:

Steps to remove Microsoft Word metadata from documents

TODO:

  • Add/edit text in chapters that are missing write-up (all the code is there - just not some of the discussion around it).
  • Add Windows versions of IntelliJ IDEA projects (I don't think Linux projects open cleanly in Windows? Or is it that Windows projects don't open cleanly in Linux? Anyways, check & try to get a single set of projects across Linux/Windows - and failing that create Windows versions of the projects).
  • Fix issue with bad/missing characters in HTML version of document as rendered via github pages.

learnkotlinyesterday's People

Contributors

alansley avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.