← Courses

Advanced Swift Course

An intensive, in-person course to help intermediate-level Swift programmers take their programming skills to the next level.

In this course, we will take a deep dive into the Swift programming language. We will learn techniques that will help us make our code more concise and less likely to contain bugs!

Course Topics

Course Structure

Class time is divided roughly equally between lectures and hands-on work.


Dates & Times

The course will be held over four to five consecutive Saturdays, running from the morning to the afternoon.


Kuwait— exact location to be announced.


The course is run by me, Ahmad Alhashemi. I have 20 years of programming experience and have been immersed in Swift since the day it was publicly announced in 2014. I have written iOS, macOS, and command-line applications in Swift. I participate in Swift language evolution discussions and have made a (very small) contribution to the Swift compiler.

Most importantly, I’m passionate about teaching Swift and I’m looking forward to helping you become a proficient Swift programmer!


Courses are run periodically. Sign up to be notified by email as soon as new course dates are announced.

Your email will never be sold or shared with anyone else. I will not spam you. You can unsubscribe at anytime.


Is this an iOS programming course?

No. This course is more about the Swift language itself and we won’t talk about iOS programming. However, the techniques and lessons you will learn in this course are very applicable to writing iOS applications (and any other kind of code written in Swift or other language).

What if I don’t have Swift experience?

If you don’t have Swift experience but you do have a lot of experience in another statically typed language, such as Java, C#, C++, Kotlin, TypeScript, Go, Dart, or others; and you feel comfortable picking up a new programming language as you go, then you’ll still be able to benefit from this course.

Why did you pick Swift to teach this course?

Swift is unique in offering a large number of programming paradigms in one language: objects and classes, higher-order functions, algebraic data types, protocols and generics.

Swift is also carefully designed to be easy to use when the advanced features are needed but also powerful when you do want to use them. This makes it a good candidate as a teaching language, as we can explore each of the different features without being overwhelmed with all of them at the same time.

Why didn’t you pick [insert my favorite language] to teach this course?

It’s possible to teach an advanced course in any programming language. But there are certain topics that we couldn’t have covered if we were using some of the other programming languages. For example:

This doesn’t mean that what you will learn in this course doesn’t apply to the other programming languages mentioned above. It just means that I couldn’t teach you everything I wanted to using one programming language.

Can you create a custom version of this course for our company?

Yes. Contact me for details.