Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Swift Concurrency Course

9 months of a Swift Concurrency Course

In March this year, I launched my flagship course on Swift Concurrency & Swift 6. It quickly migrated to Swift Concurrency & Swift 6.2 as we got a major release full of concurrency changes. While I already had experience launching my going-indie.com course the year before, this course was different.

I initially developed 39 lessons, but I’ve grown it to 73 today. Early responses were positive: developers recognized the patterns from my articles. I’m known for explaining complex topics simply, resulting in lessons for the concurrency course that are easier to digest. Today, I want to share some experiences of developing this course and what I’ve learned.

If there’s one thing you read from this article, it’s this: I’m doing a pricing research to make my course more accessible to the whole community. Could I please take 1 minute of your time for this pricing research?

Go to the research

Thanks a lot!

Swift is moving fast, so is concurrency

When I started the course in March, I already knew from the vision document that changes were coming. In fact, it was one of the reasons to start this course. While we use AI a lot these days, we also need the knowledge to validate what’s coming out of AI. We can’t simply accept responses and hope for the best.

AI is learning fast, but in my experience, it hasn’t been so great at validating concurrency. I am working on a custom GPT and AGENTS.md companion for the course members, but that’s still in development. It’s at least been clear to me since the very beginning that we need dedicated learning material to remain the expert on any code we write.

Swift is moving fast, and so is concurrency. I sometimes wish that we had started with concurrency in Swift 6.2. Many developers learned how concurrency works, finding out it all changed again in Swift 6.2. Let me be clear: these changes are great! Especially the approachable concurrency changes that I explain in this video:

However, if you’ve already learned a pattern, it can be hard to get rid of it.

Some of my students had the same. They started the course before WWDC, only learning about Swift 6.2 shortly thereafter. Yet, my course updates helped them adjust.

FREE 5-day email course: The Swift Concurrency Playbook by Antoine van der Lee

FREE 5-Day Email Course: The Swift Concurrency Playbook

A FREE 5-day email course revealing the 5 biggest mistakes iOS developers make with with async/await that lead to App Store rejections And migration projects taking months instead of days (even if you've been writing Swift for years)

Pricing courses is challenging

I did do pricing research before launching the course, but it had one major issue: I was looking for a single price across the whole community. There’s no one-price-fits-all. We do this all the time for our apps: individual pricing per country. Yet, the course platform I’m using doesn’t make it easy to adjust the pricing.

I did experiment with a different pricing in India. I reached out on LinkedIn and Twitter:

I reached out on X/LinkedIn to find out a better Swift Concurrency Course pricing for India.
I reached out on X/LinkedIn to find out a better Swift Concurrency Course pricing for India.

And something interesting happened. Here are a few responses:

  • Consider Pakistan 🇵🇰 too 🥹
  • What about Egypt 🇪🇬
  • You have a significant following from Pakistan as well.. Consider them too
  • Please add indonesia, my currency (Rupiah) is getting beat up if compared to USD. 1 USD = 16,700 Rupiah. Our minimum wage is just $1.5 per hour.

India was a proof of concept, but that single post alone surfaced more countries with the struggle. It’s clear to me that I need to make my resources more approachable, and that’s been appreciated:

  • Very considerate in today’s world! Thank you Antoine van der Lee
  • This is a great gesture towards others development. Thanks 🙏 for making it affordable for me.

I need your help — A pricing research

To further improve my pricing, I want to conduct country-based pricing research. It only takes 1 minute to fill:

Fill in the form

This will significantly help me make my course more approachable across the community.

Feedback & Continous improvements

Alongside other learnings are generous students who continuously provide feedback from small grammar mistakes to actual lesson improvements. I’m collecting these all in a centralized GitHub repository each student gets access to. Every other month, I’m going over all the feedback, improving the lessons in place. All the students get notified by email on course updates, with links to the lessons that have been updated. This feedback loop has been incredibly important for the quality of the course.

Text-based lessons over video-based

I’ve had quite a few students who doubted the course’s format — many of the lessons are text-based, with images. I do have a few videos, but most lessons do not. Yet, I’ve only had about two students ask for a refund due to this. At the same time, many developers told me they were surprised by how well the format works for them. It has a few benefits:

  • You can easily look back at lesson content while working on a specific feature.
    For example, you would reference the Task Groups lesson when creating a task group in your code.
  • More up-to-date
    While this is mostly my responsibility, it’s clear that keeping content up to date is easier when it’s text-based. This results in a higher-quality, more current course.

But also: it’s not a SwiftUI course. It’s not that we’re building a visual layout or such. I truly believe a complex topic like Swift Concurrency works best when you can follow along at your own pace and reference back material when you need it.

The lessons that do have videos are mostly lessons that explain core concepts. For example, using Swift Migration tooling or why Approachable Concurrency helps us forward.

Confirmation through commercial purchases

Quite a few companies bought the course for their development teams. To name a few: Airbnb, Soundcloud, Firefox, Sky, and Vinted. What’s primarily interesting is that quite a few of them added more seats along the way. It proves to me that the course has been working for some of their developers, leading them to decide to roll it out across the company.

It’s not the only confirmation I’ve been getting. The course landing page shows all the testimonials I’ve received so far:

Course testimonials as listed on the Swift Concurrency Course landing page.
Course testimonials as listed on the Swift Concurrency Course landing page.

And many developers have been adding their certificates to their LinkedIn profiles. What’s great about this is that they’re also posting a message alongside it. It’s instant feedback for me as a course creator, like this one:

Developers of the course are able to add their certificate of completion to their LinkedIn profile.
Developers of the course are able to add their certificate of completion to their LinkedIn profile.

It’s been a fantastic way for developers to enhance their profile, and proof their knowledge of concurrency. You might think:

“Sure, they just click through the lessons and add the certificate.”

But that’s not the case. Each module includes an assessment that must be completed without mistakes before a student can continue. The certificate is linked to the student’s account, and companies can reach out to me to verify the certificate code if needed.

Conclusion

It’s been fantastic to be teaching concurrency to many of you. The course is still in active development, and more lessons are coming. Hopefully, you’re able to answer these few questions and help me make the course more accessible to everyone. In the end, that research has been the primary reason for me to write this course-in-review article.

Thanks!

 
Antoine van der Lee

Written by

Antoine van der Lee

iOS Developer since 2010, former Staff iOS Engineer at WeTransfer and currently full-time Indie Developer & Founder at SwiftLee. Writing a new blog post every week related to Swift, iOS and Xcode. Regular speaker and workshop host.

Are you ready to

Turn your side projects into independence?

Learn my proven steps to transform your passion into profit.