Recorded – watch the full episode on YouTube.
It's interview time. What would you say is the best way to prepare for an iOS or Swift job interview?
Sean Allen: I think confidence is the big thing here. I guess I can recommend this by saying what not to do. I know oftentimes when people are studying, and I have a lot of videos out there talking about very common iOS questions in job interviews. I did this too, so this is from personal experience. I would read articles, read blog posts, watch videos, and I would just regurgitate the talking points. Like oh, explain to me the delegate protocol, the communication pattern. I'm like, oh, that's a one to one. Okay. Notifications observers. One to many.
I’m just spitting out buzz words that I'd heard from these articles. You kind of understand them, but the best way is yes, learn them like that, but actually get practical practice. Is that a thing? Practice with them, build small features, built small projects.
“Build something you can do in a day or two, but focus on the delegate pattern, or closures, or something you're struggling with. Because having that practice with actually building it, these questions will be a breeze.”
One thing I think people get caught up in, is when they try to build these practice apps, is they think it has to be this big, nice app. You can literally practice building one screen. When you're going to take one screen from an app, or something like that, and make it really, really small. Build something you can do in a day or two, but focus on the delegate pattern, or closures, or something you're struggling with. Because having that practice with actually building it, these questions will be a breeze. You don't even have to think about them, right?
When I was just studying the talking points, I was trying to memorize what I would say when they asked me about optionals. Right? But if you actually have used these tons of times, you don't have to memorize anything, you know it. I guess what I'm trying to say is don't treat it like you would study for a school test, like back in the day, reading books, taking notes and memorizing, like actually use it. That's going to go a long way.
Paul Hudson How would you prep for data structure and algorithms questions in iOS interviews, and what are some of the best resources to start with?**
Sean Allen: You're asking the wrong person! I suck at these. All right, but I mean, I'm going to tell you how I prepped, and I'm going to tell you not to do that, is what the moral of the story is going to be. So I don't know. Academics have always come easy to me. So what I was saying is, if I had to study for a test, I would always study the night before and do fine. Right?
That led to bad habits in this programming career, because programming does not work that way. What I would do is for data structures and algorithms, I would read, cracking the coding interview. I might do one problem each of the breadth first search, or depth first search, or link lists. I would do one or two problems and be, all right, I think I got it. And go and just get destroyed in the interview.
“I think you need to be practicing these whiteboard problems, data structures, and algorithms for months, not weeks.”
The moral of my story is, I would study for a week. I think you need to be practicing these whiteboard problems, data structures, and algorithms for months, not weeks. I know that probably seems excessive, but again, back to what I kind of said with the previous question is, if you have that confidence of “I’ve done a thousand of these questions, you can throw anything at me. I'll probably get through it pretty well.” These interviews are a breeze. If you try to cram and study in the last couple of days, leading up to it, it's a stressful, bad, and honestly, embarrassing time.
I've had interviews where I'm embarrassed to be here right now. I can't believe I'd messed this up that bad. It's because I tried cramming for it in the last week. So months, not weeks, is the recommendation there.
“These are hard things to do. You can't just do them on the hoof, on the fly, or the night before. It takes work, takes planning, takes experience, it takes practical application.”
Paul Hudson: Right. It's certainly true that if you don't know Floyd's cycle detection algorithm, you can't make it up on the spot unless you're a mathematical genius. Same for Quicksort or insertion sort. These are hard things to do. You can't just do them on the hoof, on the fly, or the night before.
It takes work, takes planning, takes experience, it takes practical application. Then you don't memorize necessarily this sort of somewhere in your soul eventually, how Quicksort works or even how a bubble sort works. You can describe to somebody else just because you can, because it's really baked into you. You can't really cram it in at the last minute.
Paul Hudson: You’ve interviewed at several big companies – which interviews pushed you the hardest?
Sean Allen: It depends on where you want to be pushed. So my Google/YouTube interview, the final interview pushed me to not go to a big company. I don't want to get bashing, so I'll keep this like very, very short. It was not a great experience, but I don't put that as a knock on Google and YouTube. I think it was just a weird circumstance of events where my recruiter that was guiding me through the process like a week before my interview. And like when it's like really crunch time, I'm trying to get ahold of them. I can't get a hold of them. And then all of a sudden they say, “yeah, he's no longer with the company.”
“Do I even want to work at these big companies?” And actually pushed me to go like, “That was like the final stroll to go independent and do my own thing.”
So the last week leading up to my interview, I'm in no man's land. When I get there, nobody really knows what's going on because he was the one coordinating it. And it was just because of all that, it was a horrible experience and ironically, that's what pushed me to be like, “you know what? Do I even want to work at these big companies?” And actually pushed me to go like, “that was like the final stroll to go independent and do my own thing.” I don't think that's what you're asking for push, but I thought that was a fun story!
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 From August 2nd to 8th you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Link copied to your pasteboard.