Having to look for work is always a stressful experience, not least because the skills you've spent honing in your last role are usually not 100% aligned with those that your next role will require.
My last role put me in unfamiliar territory, working on an existing Flutter app. Now, as I'm applying for iOS Developer roles, I realise that my Swift skills have gotten a little bit stale. So it's time for a refresher course!
The LLM Has Entered The Chat
I know there quite a few Swift courses I could try, and I may still do that. However, I wanted to brush up on my skills not just on Swift & Swift UI, but on effective use of LLMs. I have a ChatGPT Plus subscription, and they have recently advertised that it's useful for education, so I decided to have it design a quick crash course for me.
First Prompt
I decided to start by also leveraging SuperWhisper, which I've found really helpful for quickly chatting with the LLM. So my first prompt was mostly a wall of text:
I need you to design a crash course for me in Swift and SwiftUI. I am an iOS developer by training, but I've been out of the direct development game for about seven years. For the last two years, I was a Flutter developer, and I was pretty comfortable with the building side of Xcode and Swift, so I could do all of that stuff. But I haven't been in the actual iOS feature development space in a few years. Before Flutter, I was working at Apple, but not as an iOS developer. So I'm going for a job as a senior iOS developer, and I need to kind of bone up on all of the things I've missed over the last few years. So I think what I want to start with is I want you to create me a crash course outline to hit the most important parts of what I'm going to need to know for the interview of a senior iOS developer. Keep in mind that I'm very comfortable with old school iOS development, like Objective-C, Arc, that kind of thing. The stuff I'm missing is, in particular, SwiftUI, Swift concurrency, I think, and just any modern Swift over the last four or five years.
The LLM then created a (seemingly) detailed list of topics that I should familiarise myself with. It also called out topics that would likely come up in interviews (like Swift Concurrency). It then offered to create a day-by-day plan for exactly what I should study, from day 1-14.
Prompt For A Prompt
After creating the daily plan, the LLM then offered to flesh out each day with specific exercises. However, I had something a little different in mind:
Actually, what I prefer is if you give me a generic prompt I can use for each day, and then I'll start a new chat for that.
The goal here was to not overwhelm the context window of the conversation I was in, and to split up the content into multiple conversations, all with a straightforward starting point, like:
I am following a 14-day Swift & SwiftUI crash course. Today I want to focus on:
[INSERT TODAY’S TOPIC, e.g. "Swift Concurrency basics with async/await"]
Here’s how I’d like you to structure the session:
1. **Concept Overview** — Explain the key concepts for today in clear, senior-developer terms (assume I already know UIKit, Objective-C, and Flutter, but I need to catch up on modern Swift).
2. **Code Examples** — Provide concise, real-world Swift/SwiftUI code snippets that demonstrate the concepts in practice.
3. **Hands-On Exercises** — Suggest 2–3 small coding tasks I can implement myself today to reinforce the learning.
4. **Interview Angle** — Give me 2–3 questions an interviewer might ask about this topic, along with ideal answer outlines.
5. **Resources for Deeper Dive** — Recommend 1–2 Apple docs, WWDC talks, or trusted tutorials that expand on this topic.
Keep the explanations tight and practical — the goal is fast, applied learning for senior iOS interviews.
I then had the LLM convert its lengthier daily tasks into single lines, one for each day of the 'bootcamp'.
Now all I have to do is to start a new conversation every day, and paste in the relevant prompt!
I'll start tomorrow. Exciting!