iOS Developer/Designer Interview Questions
github.com
github.com
The important thing while talking to candidates is evaluating their understanding of technical concepts - like multithreading, GCD vs NSOperations, application lifecycle, properties, references, blocks, memory management, caches, sandboxing, responder chain.
Whats the point of someone knowing HealthKit or Voiceover or screen resolutions if they don't understand how atomic or nonatomic properties differ?
If you have any suggested questions, I would love to add them. If you don't wanna go through the PR, etc, my email is in my profile. Feel free to send over and I will add.
In context of iOS/Obj-C/Cocoa, ask about MVC. Ask about delegates versus blocks versus notifications as mechanisms of communicating between objects. Ask about CocoaPods, but framed as a larger question of when and how to bring in and manage third-party dependencies versus building them yourself. Give them the opportunity to share how they think, not just what they know.
It's a trivia quiz. And frankly, who cares if you know what iBeacons are? What's the likelihood a project requires knowledge of both iBeacons and HealthKit?
HealthKit AND HomeKit?
HomeKit AND Apple Pay?
Why ask about something as deeply specialized as Metal, a brand new 3D graphics API, when so few projects are likely even to need it—except in game dev shops?
And in what conceivable universe does someone need to know the screen resolutions of any given piece of hardware? I've been building iOS apps for six years now, and I barely remember at any given moment.
Anyone looking for great interview questions for iOS devs should instead consult Black Pixel's excellent post here:
http://blackpixel.com/blog/2013/04/interview-questions-for-i...
It talks through concepts as much as technologies, hitting the most common cases for what a developer will actually use.
And most of them are also opinions which tend to lead to bias. "Oh this user doesn't like Xcode, while I only use Xcode, so nope to him".
In the same way, for normal CS questions, "Write a hash-table implementation" is OK but I think it's better go with a question where a good solution involves using a hash-table.
Any candidate who answered these in one sentence/work answers with little detail would definitely not be a strong candidate, IMO. But mostly a round up of "Here's some topics to maybe dive into and get to know an engineer better with."
I unfortunately think that all of your questions are at best, filtering questions to ensure they have base familiarity with pretty benign facts and at worse, questions that give no insight at all into iOS abilities. Your design questions are, in particular, extremely trivial and almost silly.
Feel free to reach-out to me if you'd like to collab on a better list.
Everyone else reading this, no even semi-serious iOS developer or designer would endorse these questions as a robust way to filter candidates or even teach yourself.
I am more than happy to accept any suggestions, I understand most are super trivial, I assume these as a starting point for any conversation, or as basically a few things that could help give someone an idea as to where to start.
PRs are appreciated, or feel free to just email me questions and I will add (email in profile). Create an issue and add there as well, and I will go ahead and work in. Whatever is easiest!
Thanks for all of the attention everyone. I know it's basic, but it's a start. Hopefully we can work to evolve it into a much more detailed document that a few of you can benefit from.
Bonus points if they laugh bitterly.
[1] NB: "Crash less" doesn't count as an answer for Xcode, correct as it may be...
Next, this should be used as a good example of "types of questions not to ask in a technical interview".
These will give little insight into what a candidate actually knows other than random trivia. I've seen a lot of junior interviewers focus on these types of questions, to perilous results.
Sort of like the technologies themselves; GameCenter and CoreEverything are abstractions of lower level functionality. Being able to discuss their purpose, how to use them, and how to glue them together is what a good developer is. The rest is just syntax.
Add questions that should lead to discussions and show general knowledge.
I would add a section for small, interesting coding challenges.
Saw a similar link a few weeks back on a list of questions for front-end website designers. I thought it was a really great lists for people looking to hire a programmer/designer here in the new year, so wanted to make something similar for iOS, as we may be hiring and it would be useful to have this on hand.
This is an early work in progress, but suggestions/PRs would be much appreciated!