An intensive, in-person course to help intermediate-level Swift programmers take their programming skills to the next level.
By completing this course, you will:
Class time is divided roughly equally between lectures and hands-on work. In addition, you will have a number of assignments to work on at home.
But see the FAQs below if you don't meet the pre-requisites and are still interested in registering for this course.
Classes will be held on four consecutive Saturdays:
Classes will run from 9am to 4pm with a one-hour break from 12pm to 1pm.
260 KD per participant.
Capped at 8 participants.
CODED Campus (Google Maps).
This course is delivered by me, Ahmad Alhashemi. I've been programming for 20 years and have been writing Swift code since the day Swift was 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!
You will notice that there are no iOS projects. This is simply because we want to focus on learning the Swift language itself without having to worry about UIKit, AutoLayout, IBOutlets, and the iOS simulator.
What you learn in this course will be directly applicable to your iOS work. In fact, after taking this course, you should see a significant difference in the way you write iOS applications.
All of the projects can be implemented in about 500 lines of code and you will get plenty of guidance. The projects are selected because they give you opportunities to apply the concepts you will learn in the course.
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.
Swift is also officially supported on some versions of Ubuntu. All of the code and projects in this course is compatible with Swift on Linux. If you feel comfortable installing and using Swift on Linux, then feel free to register! You can use your favorite text-editor or IDE instead of Xcode. I highly recommend installing a Swift plugin to your editor that adds autocompletion. There are ones for VS Code, Atom, Sublime, CLion, and others.
Swift is unique in offering a large number of programming paradigms in one language: objects and classes, protocols, higher-order functions, algebraic data types, and generics.
The alternative would have been to use two or three different programming languages to learn the different paradigms. Using one language simplifies the course and makes it possible to experiment by refactoring code from one paradigm to the other within the same code base.
This doesn't mean that what you learn in this course doesn't apply to Java, for example. It just means that Java doesn't have all of the features I want to teach you in this course.
Yes. Contact me for details.
Registration for the June 2019 session is still open.
Alternatively, feel free to email me directly at firstname.lastname@example.org.