Python Tutorial #2: Installing Python and Your First Program

In the previous tutorial, we learned what Python is and why it is worth learning. Now it is time to install it and write your first program. By the end of this tutorial, you will have Python running on your computer. You will know how to use the Python REPL, write a script, and run it from the terminal. Installing Python Python works on macOS, Linux, and Windows. Let me show you how to install it on each system. ...

April 24, 2026 · 9 min

Python Tutorial #1: Why Python? A Simple Guide for Developers

Python is the most popular programming language in the world right now. It has been the number one language on the TIOBE Index since 2021 and holds a record-breaking 26% rating in 2025-2026. But why? What makes Python so popular? And should you learn it? In this tutorial, we will answer these questions. By the end, you will understand what Python is, where it is used, and why it is worth learning in 2026. ...

April 24, 2026 · 9 min

10 Python Concepts Every Developer Must Know

These ten concepts appear in almost every Python project. If you know all of them, you can read and write real Python code. If you are missing one, that is the one that trips you up on every project. 1. Variables and Data Types Python infers types automatically. No declaration needed. name: str = "Alex" age: int = 25 score: float = 9.5 active: bool = True nothing = None print(type(name)) # <class 'str'> The four built-in collection types: numbers = [1, 2, 3] # list — ordered, mutable point = (10, 20) # tuple — ordered, immutable tags = {"python", "dev"} # set — unique items user = {"name": "Alex", "age": 25} # dict — key/value pairs Use type() to check the type of any variable at runtime. Use type hints for documentation and IDE support. ...

April 14, 2026 · 5 min

KMP Tutorial #3: Understanding KMP Project Structure — Source Sets, Dependencies, and expect/actual

In the previous tutorial, we created a KMP project and ran it on Android and iOS. Now let’s understand exactly how that project is organized — because once you understand the structure, everything else in KMP makes sense. This is the tutorial that separates developers who struggle with KMP from those who build confidently. Take your time. The Core Idea: Source Sets A KMP project is organized into source sets. Each source set is a collection of Kotlin files that compile to specific platforms. ...

April 1, 2026 · 12 min

KMP Tutorial #2: Setting Up Your First Kotlin Multiplatform Project

In the previous tutorial, we learned what KMP is and why it matters. Now let’s get our hands dirty — create a real project, understand every file in it, write shared code, and run it on both Android and iOS. This is a long tutorial. Take your time. By the end, you will have a working cross-platform app and understand exactly how every piece fits together. Part 1: Setting Up Your Environment What You Need Tool Required Purpose Android Studio Yes IDE for KMP development (latest stable) Xcode Yes (Mac only) Builds and runs iOS apps JDK 17+ Yes Kotlin compiler depends on it Mac computer For iOS Apple requires Xcode, which only runs on macOS CocoaPods Optional Some KMP libraries need it for iOS If you are on Windows or Linux, you can still write shared code and build the Android app. But you cannot build or run iOS. There is no way around this — Apple controls iOS builds. ...

April 1, 2026 · 14 min

KMP Tutorial #1: What is Kotlin Multiplatform and Why Should You Learn It?

You are a Kotlin developer. You build Android apps. But your company also needs an iOS app. And maybe a desktop app. And a web app. Do you write everything four times? Do you switch to Flutter and learn Dart? Do you hire a separate iOS team? Or do you use the Kotlin you already know — and share your code across all platforms? That is what Kotlin Multiplatform (KMP) does. ...

April 1, 2026 · 8 min

Rust Tutorial #4: Ownership — The Key Concept

In the previous tutorial, we learned variables, types, and functions. Now we tackle the most important concept in Rust — ownership. Ownership is what makes Rust unique. It is the reason Rust has no garbage collector, yet never leaks memory. Every Rust programmer must understand ownership. Once you get it, the rest of Rust clicks into place. Why Ownership Exists Most languages manage memory in one of two ways: Garbage collector (Java, Kotlin, Go, Python) — A background process finds and frees unused memory. Simple for the programmer, but uses extra CPU and can cause pauses. Manual management (C, C++) — The programmer allocates and frees memory. Fast, but easy to make mistakes — use-after-free, double-free, memory leaks. Rust takes a third approach: ...

March 26, 2026 · 9 min

Rust Tutorial #5: Borrowing and References

In the previous tutorial, we learned about ownership. We saw that passing a value to a function moves it, and you cannot use it anymore. That works, but it is limiting. What if a function only needs to read the data? What if it needs to modify it but give it back? You should not have to move ownership every time. This is where borrowing comes in. Borrowing lets you use a value without taking ownership of it. The value stays with the original owner. ...

March 26, 2026 · 7 min

Rust Tutorial #6: Structs and Methods

In the previous tutorial, we learned borrowing and references. Now we learn how to create custom types with structs and attach behavior to them with methods. If you have used classes in Kotlin, Java, or Python, structs will feel familiar. Rust does not have classes, but structs with impl blocks give you the same power — without inheritance. Defining a Struct A struct groups related data together: struct User { name: String, email: String, age: u32, active: bool, } Each field has a name and a type. This is similar to a data class in Kotlin or a class in Python. ...

March 26, 2026 · 7 min

Rust Tutorial #3: Variables, Types, and Functions

In the previous tutorial, we installed Rust and wrote “Hello, world!”. Now let’s learn the building blocks — variables, types, and functions. If you know Kotlin, Python, or JavaScript, most of this will feel familiar. But Rust has a few surprises — especially around mutability and shadowing. Variables: let and mut Immutable by Default In Rust, variables are immutable by default. You cannot change them after creation: let name = "Alex"; name = "Sam"; // ERROR: cannot assign twice to immutable variable This is the opposite of most languages. In Kotlin, val is immutable and var is mutable. In Rust, let is immutable and let mut is mutable. ...

March 26, 2026 · 9 min