|< How should you approach testing in Swift?||What are the most common take-home tests for iOS developers? >|
Recorded – watch the full episode on YouTube.
What's your view on where new iOS Developer should start their career?
Sean Allen: I would avoid contract jobs at the very start of your career, because it's very, very hard to get good projects as your first job as a contractor.
First, I usually recommend working for a company for a year or so, to kind of build your base, your foundation because oftentimes when you're contracting, you're in control of the whole project and as a brand new developer, you may be biting off more than you can chew. That would be my first recommendation.
But if you absolutely must, I would start doing work and I don't normally recommend Upwork, but I'm going to recommend it in this case, or sites like that. Because in my mind, in this case, you’re more doing this for the experience, not the money release you should be, because you're just going to struggle to get good paying contracts, if you have no experience.
So you should be looking at this like, “cool, the money's great, but I want this for my portfolio. I want this to learn, to build my foundation so in the future I can get proper paying contracts.” Like I said, if you come out of the gate, no experience expecting well-paid contracts, you're going to have a bad time.
Paul Hudson: I don't want to sound cruel towards Upwork, but it sounds like you're going to get easier jobs, or smaller, less mission critical jobs where you can write your beginner code. You get the experience doing contract work on 20 different frameworks, 20 different projects often from scratch. And then when you really have your teeth cut as it were, you can move on to bigger stuff, is what you're saying?
“You're kind of learning trial by fire.”
Sean Allen: Yeah, pretty much. But what you're also going to learn from Upwork and again, I'm not trying to bash it, but you're probably not going to get the best clients because half the battle on these contracts is working with good clients, like having a bad client that doesn't understand software development, has crazy unrealistic expectations, doesn't want to pay you.
You're kind of learning trial by fire. You're learning all these horrible experiences. You're getting that out of the way and it's going to suck the first year or two, but that foundation of those horrible experiences, and learning from those and learning how to deal with that is just going to pay dividends in the future. So I don't know. I just think you kind of have to go through the bad stuff in the beginning of your career to really pay off towards the end.
Paul Hudson: You mentioned you like to work on products, and like programmatic vs storyboards. What are your favorite or most fun things to work on?
Sean Allen: Yeah, so obviously Swift over Objective-C. We've gone down that road. As far as storyboard code, I don't really care. I can do both. Like I said, my products are usually a mix of both, but architectures, MVC for sure.
I don't know if we want to go down this whole road, but I feel like NVC is going to solve your problem 90% of the time. Those architectures are fine, I'm sure they have their place, but I think in our world, people try to shove those architectures into places like, MVC is just fine. So definitely NVC there, but yeah, like I said, anything where I am touching and influencing what the consumer is going to touch and experience at the end of the day on the app, like I said, I like having, maybe not full influence over it, but at least input on it. You know, that I can affect the outcome of the app.
“We're still trying to figure out all these best practices, and the best ways to use it, so.
Paul Hudson: The shoving things in there is extraordinary right now, because we've made this big leap from UIKit to SwiftUI, that means most folks at this point are developers who've done Swift who are coming from UIKit. Yes, some are newcomers to SwiftUI first, but the majority are coming from UIKit. And they're in this UIKit mindset, and they want to use M VC, they want to use coordinators, they want to use all these patterns that work great, delegates and so forth, now in SwiftUI, and they want to know how it's done.
And like, well you could try and squeeze coordinates in there, you could try and squeeze other things in there, in MVVM, whatever you want to pick, UIKit into SwiftUI. But don't assume what worked great in UIKit is going to work great in SwiftUI. Wholly new way of building things. It might fit great in there, but it might also be “square peg, round hole” territory.
“I think my approach to finding SwiftUI best practices is basically going through 20 bad practices and yeah, of all these, this one fitted really, really, well, but it takes a long time to get to that point, for sure.”
Sean Allen: Yeah, that's why I said I feel like an absolute beginner with SwiftUI, which I'm excited about, you know what I mean?
Paul Hudson: It is fun.
Sean Allen: But it does do like the whole clean slate, and like you said, as a community, we're still trying to figure out all these best practices, and the best ways to use it, so. Another reason why I think we should learn UIKit over SwiftUI right now is because, like I said, we're still trying to figure it out. It's not fully formed yet.
Paul Hudson: I think my approach to finding SwiftUI best practices is basically going through 20 bad practices and yeah, of all these, this one fitted really, really, well, but it takes a long time to get to that point, for sure.
Paul Hudson: What's your advice to a young developer, where should they go first? Do you think that young developers should focus on testing?
Sean Allen: Well, I guess it all depends on where you're at. Again, take this with a grain of salt, it's just how I feel, if you're still learning like the basics of Swift, and learning how to build an app, I don't think you should put testing in that pot. I think you should get those basics sorted out, you know, you have a full understanding of it.
Again, I think people move on from topic to topic way too fast. I don't think they spend enough time drilling the fundamentals, fully learning them. I think they build one or two table, and are, “okay, cool, I know table views, I'm out.” You know?
So, and I think that might be the case of what he's talking about here. Again, based on what he said, a young, up and coming developer, don't get me wrong, I'm not discounting testing. I'm not saying it's not important. But I think you've got to learn the basics first, and then again, back to your learning evolves over time, evolve into testing.
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.
SPONSORED ViRE offers discoverable way of working with regex. It provides really readable regex experience, code complete & cheat sheet, unit tests, powerful replace system, step-by-step search & replace, regex visual scheme, regex history & playground. ViRE is available on Mac & iPad.
Link copied to your pasteboard.