|< How to decide which framework to use in a take-home project?||How to ace an iOS developer take home test >|
Recorded – watch the full episode on YouTube.
How important do you think are the non code things in a take-home project – everything that's not directly code.
Sean Allen: Think about this with take home-tests, you're in a competition, you're competing for the spot. I know a lot of people like to, “kumbaya we're on the same team,” but at the end of the day when you're going for that job, you're competing. So I've never done any testing for my take home projects and I've always passed them.
However, I would not recommend that I would do as much as you can possibly do. If that's adding tests, cool, that's adding documentation, even better. All you're doing is just making yourself stand out even more that can backfire. Let me put out that disclaimer, because oftentimes when you get these take home tests, they'll say, “hey, please only take two to four hours on this,” or “three to five hours on this.” And if it's clear, you spend a week on this thing. They may not know how to judge your project, right?
“So there's a balance there of putting in all the extra credit versus not going too far with that. But to answer your question bluntly, the more you can put in there to demonstrate your ability, in my opinion, the better.”
Because they were looking to see what you could do in that kind of short amount of time. So there's a balance there of putting in all the extra credit versus not going too far with that. But to answer your question bluntly, the more you can put in there to demonstrate your ability, in my opinion, the better.
Paul Hudson: So recently Matt Ricketson from the SwiftUI Team tweeted out that they're hiring someone for SwiftUI right now at Apple, which of course you're writing Swift all the time, which is nice at Apple, looking at the cutting edge of Apple's frameworks. Awesome. And then he made it clear in his tweet, our test is a GitHub based take home test. And I would so love to see that test.
“Definitely make a note either in the comments or maybe make a paragraph in your email saying, if I had more time, I would have done this. I would have properly handled all the errors. If I had more time, I would have implemented this, this and this test. So even if you can't do it, tell them what you would have done, I think that's a key thing too.”
The job isn’t for me, because it means moving to Cupertino and I have a family here in the UK. But I'd love to test so badly and actually tweeted back saying, I hope tests form parts of it. And Kyle Maycomber, also ex-SwiftUI said, “yes, they do." So Apple clearly want candidates to write some code with SwiftUI, but also write tests and something else around it. I don't know how long it takes those. Do you get a week? Do you get three hours? Three hours for a take home test – that's fast, right?
Sean Allen: Yeah, that's not long at all. Of course, I had talked about that as you’re typically only going to get three to five hours. However, in this course, we're going to spend a long time on this because you know, it's educational. I want you to see everything.
But what I would recommend with this small time period, if you just don't have the time to do stuff, then definitely make a note either in the comments or maybe make a paragraph in your email saying, “if I had more time, I would have done this. I would have properly handled all the errors. If I had more time, I would have implemented this, this and this test.” So even if you can't do it, tell them what you would have done, I think that's a key thing too.
Paul Hudson: That bears repeating, folks: if you run out of time, just tell them what you would have done. That's a killer point there from Sean, because you will want to have time. You can't do everything. It's not a one month take-home test. We have actual lives here. When you run out of time, just tell the interviewer where you would go next. And maybe that's writing tests. Maybe it's refactoring your table view delegates. Maybe it's something else. Tell them where you would have gone – it shows you have the foresight to plan ahead, and that you knew time restrictions were critical because that's also the case in production. Often you have three months and then you say, “what do I cut back here to make my thing ship?”
“If you run out of time, just tell them what you would have done. That's a killer point there from Sean, because you will run out of time. You can't do everything.”
Sean Allen: And you're also setting yourself up because usually the next part of the take home project is like, “Cool, you submitted it. Now let's talk about it.” When you mentioned that this is what I would have done in the future on the second phase of that interview. Now, you know what the conversation is going to be like pretty much, because they're going to be like, “oh, you would have done this test? Tell me how you would have done that.” Or, “you would have refactored this way? Let's talk about that. Why this way and not that way?” Because there's always a conversation about your project afterwards. So be prepared for that too.
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.