Learn Swift, build SwiftUI screens with a live preview, then practice the data structures and algorithms iOS interviews ask, all in Swift.
Overview
Syllabus
- Learn Swift — Variables, types, conditions, loops, functions, strings, dictionaries, sets, closures and error handling.
- Learn Swift — Classes, structs, enums, protocols, inheritance and generics, with a library management project.
- Learn SwiftUI — Views and modifiers, stacks, state and buttons, text fields, toggles, lists and navigation, previewed live.
- Stack - Data Structures Series #1 — Stacks, queues, linked lists, binary trees and hash tables, built by hand.
- Recursion Challenges - Master The Recursive Thinking — Recursion, then bubble, selection, insertion, merge and quick sort.
- Coding Problems — Coding problems of the kind iOS interviews ask, solved in Swift.
- Learn Linux and the Command Line — The command line, then Git: commits, branches, merges and fixing mistakes.
Courses
-
Master Quick Sort, one of the fastest sorting algorithms in practice. Build the partition step, write the full recursive sort in your language of choice, analyze its complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
Master Selection Sort, one of the simplest sorting algorithms. See how it works step by step, build it from scratch in your language of choice, analyze its complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
Master Merge Sort, the classic divide and conquer algorithm. Build the merge step, write the full recursive sort in your language of choice, analyze its O(n log n) complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
In this course, you will learn about the Hash Table data structure, create a Hash Table from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
In this course, you will learn about the Linked List data structure, create a Linked List from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
Put your programming problem solving skills to the test using the exercises with different difficulties in this course. Designed for coders with some prior knowledge of the basic syntax in any programming language. This course is an extension of the first Coding Problems
Prerequisites:
- Intermediate knowledge of programming
- Familiar with conditional statements, loops, functions and lists
- Problem-solving skills and algorithmic thinking skills
-
In this course, you will learn about the Binary Tree data structure, create a Binary Tree from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
Simple yet powerful algorithm. Learn how to efficiently arrange elements, understand time complexity, and enhance your sorting skills. Dive in now!
Prerequisites:
- Knowledge of a programming language of your choice.
-
In this course, you will learn about the Queue data structure, create a Queue from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
In this course, you will learn about the Stack data structure, create a Stack from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
Put your programming problem solving skills to the test using the exercises with different difficulties in this course. Designed for coders with some prior knowledge of the basic syntax in any programming language.
Prerequisites:
- Intermediate knowledge of programming
- Being comfortable with conditional statements, loops, functions and lists
- Having knowledge of problem solving and algorithmic thinking
-
Recursion is an important concept in computer science and a very powerful tool in writing algorithms. In this course, you will use recursion to solve challenges from beginner to advanced. In the end, you will ace this topic.
Prerequisites:
- Good knowledge in any programming language
-
Everything About Bubble Sort
Prerequisites:
- Fundamentals
- A computer and internet connection is required
-
A free, interactive online Swift course. You write Swift on every lesson, with AI hints when an optional surprises you, and a free certificate when you finish.
- Handle optionals safely with if-let and guard
- Build value types with structs and enums
- Use protocols and extensions for clean composition
- Apply closures and higher-order functions in idiomatic Swift
-
A free, interactive Linux course for beginners. You type real commands into a browser-based Linux terminal on every lesson - files, permissions, pipes, bash - with a free certificate when you finish.
- Navigate the filesystem and manage files from the shell
- Read, search, and transform text with grep, sed, and pipes
- Compose commands with redirection and pipelines
- Use environment variables, permissions, and processes confidently