|< How to move up from being a junior developer in iOS||How to start learning a new API or framework >|
Recorded – watch the full episode on YouTube.
What would you recommend for folks to make sure they stay on top of SwiftUI or iOS or UIKit and Apple's devices?
John Sundell: It's interesting, because we talked earlier about kind of being open minded and looking not only at Swift, but looking at other platforms, and just in general, being curious, and I think it's the same thing here, is that even if you were just looking at the Apple platform, it's not standing still. It's moving at a rapid, rapid pace, and every WWDC, we get a huge influx of new APIs, new platforms, technologies, even big paradigm shifts like SwiftUI and Combine.
So I think setting aside time for that is incredibly important, because we can't treat our jobs and our skill sets and the tools we work with as static. There's some people who would like it to be that way, who kind of feel like things are moving too fast, and you could argue that point.
"We have to treat our jobs and the tools we work with as incredibly dynamic, and we have to become dynamic as well."
You could argue that things are moving too fast and that you can't launch an app that was made two years ago now on a modern iPhone, because it's not going to work anymore because all the API has changed. You can argue that that's a problem as well, but it's the reality we live in. That's the way things are going to work.
We have to treat our jobs and the tools we work with as incredibly dynamic, and we have to become dynamic as well. We have to be prepared to relearn and re-change, and sometimes, again, it's painful. If you've been a UIKit developer now for 10 years, you're used to that. You feel like an expert. If someone asks you to build an app, you go and build that app. You know exactly... you know the SDK in and out.
"Whether you like it or not, learning new APIs, tools, and frameworks that come out are part of your job if you're an Apple platforms developer, because Apple are not going to wait for you."
It is painful to become a beginner again. Some people love it. I love it. I'm really excited about SwiftUI, for example. I've been really loving to learn it, but it can also be painful, especially when you feel like you don't have the time. So I think making that time is so incredibly important, to set aside time and treat it as a normal part of your work to learn new things, because it is.
Whether you like it or not, learning new APIs, tools, and frameworks that come out are part of your job if you're an Apple platforms developer, because Apple are not going to wait for you. They're not going to say, "Oh, John is not ready yet. Let's just hold off SwiftUI for two more years." That's not going to happen.
"Whatever you can spare, I think it's important to spare that time to keep learning all the time."
So I think treating it as a proper part of your job because so many companies, I feel like, treat learning new technologies as some kind of optional thing or thing that developers do for fun. It's kind of like, “Let's give the developers a hack day. That's going to be a fun treat for them. Then they can learn new things there.” I don't think it should be treated that way. I think it should be treated as a proper part of our work time every week to dedicate some time for learning. It might just be one hour. It might just be half a day or something. Whatever you can spare, I think it's important to spare that time to keep learning all the time.
Paul Hudson: Certainly no one wants to feel that fear of missing out or left behind, because right now if you're doing UIKit full time and you haven't got any time left, you're just too tired or too busy to look at SwiftUI, it can really feel like, “oh no, I'm the new Objective-C. I'm being left behind,” and you're not, because of course there are hundreds of thousands, if not millions of UIKit developers out there in the world, but it can feel like the cool new thing on the block is what we should be doing and spending more time studying, and trying to carve out some time is hard.
John Sundell: It is, yeah, and it all comes down to having that long-term look at things. Like you're saying, you don't have to immediately learn everything. That's not what it is. UIKit is not deprecated. ARKit is not deprecated. You can keep using them probably for years. So we're not talking about you need to change things tomorrow. We're not talking about you have to drop everything that you're doing and just learn SwiftUI and just go all in on that, and I think sometimes we tend to think too binary about these things. It's either/or. It's either UIKit or it's SwiftUI, and that's so far from the truth, especially with SwiftUI because you can mix and match as much as you want, which is a great thing about it, but in general, I would say treat it as a marathon, as a long term game.
“I think it should be treated as a proper part of our work time every week to dedicate some time for learning.”
It's better, I think, to dedicate an hour or two for learning every week. It can be, for example, your last two hours of working on a Friday, or maybe you start your Monday morning with two hours of learning to kind of get in the groove. Whatever fits for you or fits your schedule, but it's better, I think, to schedule those small amounts of hours every week, rather than waiting for three years, and then you have to drop everything for two months just to learn the new API. I think it's better to do that continuous longterm learning over time, rather than kind of just having to do those big, abrupt things.
This transcript was recorded as part of Swiftly Speaking. You can watch the full original episode on YouTube, or subscribe to the audio version on Apple Podcasts.
SAVE 50% To celebrate Black Friday, all our books and bundles are half price, so you can take your Swift knowledge further without spending big! Get the Swift Power Pack to build your iOS career faster, get the Swift Platform Pack to builds apps for macOS, watchOS, and beyond, or get the Swift Plus Pack to learn advanced design patterns, testing skills, and more.
Link copied to your pasteboard.