While some managers ask code-oriented questions to assess a developer’s proficiency with iOS, others like to explore their knowledge of advanced algorithms first. So how do you know which type of test you’ll receive?
“Ask if you’ll be taking a computer-based exam,” suggests Eric Schweitzer, guide of the Dice iOS Talent Community. “If so, you should refresh your knowledge of algorithms and be ready to write some code.”
To help you prepare, we asked Schweitzer to share a few code-oriented interview questions for iOS developers, and the types of answers he’s looking for when he’s on the other side of the table.
What is the MVC software architecture pattern?
- What Most People Say: MVC is the pattern all well-written applications use.
- What You Should Say: The Model-View-Controller pattern separates the internal representation of data from its display. The model is the internal representation of the data, while the view is how the data is presented to the user. The controller mediates between the two and also handles user interaction.
- Why You Should Say It: “Candidates sound evasive when they don’t explain what MVC is or how it’s used,” says Schweitzer. “An incomplete answer makes it seem like you don’t understand the purpose of MVC software architecture patterns.”
What is a delegate?
- What Most People Say: Delegates are used in UITableView to get the data for the table.
- What You Should Say: Delegates are Apple’s way of implementing call back methods. They allow a class to send information to a different class.
- Why You Should Say It: “Again, a short answer doesn’t inspire confidence,” Schweitzer explains. “You need to show that you understand the purpose of delegates and how they fit into the architecture of the application without pontificating. The key is to supply just enough information to demonstrate your understanding of a concept or function, then get off the stage.”
What is the difference between a delegate and an NSNotification?
- What Most People Say: They are different ways of accomplishing the same thing. They are completely different and are used in different ways.
- What You Should Say: Delegates and NSNotifications can be used to accomplish nearly the same functionality. However, delegates are one-to-one while NSNotifications are one-to-many.
- Why You Should Say It: Developers who don’t know the answer to a technical question often resort to double speak, which never works. Instead, demonstrate your experience with delegates and NSNotifications by explaining how they’re used and the advantages and disadvantages of each.
What is a block and how is it used?
- What Most People Say: A block is a function.
- What You Should Say: A block is a chunk of code that can be passed to a method. The code is executed based on what happens in the method. Apple is moving many of the iOS APIs toward blocks.
- Why You Should Say It: First and foremost, “a block is not a function,” observes Schweitzer. “The second answer is not only accurate, it shows that you’re following the trends, which is critical for a developer.”
What’s the difference between a xib and a storyboard?
- What Most People Say: They’re the same thing.
- What You Should Say: Both are used in Xcode to layout screens (view controllers). A xib defines a single view controller screen, while a storyboard shows many view controllers and also shows the relationship between them. Apple is encouraging developers to use storyboards for all their applications.
- Why You Should Say It: “The interviewer isn’t trying to trick you,” says Schweitzer. “Storyboards and xib files are similar but they’re not exactly the same. He wants you to differentiate the two and explain their advantages and disadvantages.”
What is CoreData?
- What Most People Say: CoreData is Apple’s way of storing data on the disk.
- What You Should Say: CoreData is an SQLite database API. By setting up CoreData properly, an application can store and retrieve the internal state of a class rapidly.
- Why You Should Say It: Incorporating details into your answers demonstrates your understanding of the concept and inspires confidence.
Describe Waterfall and Agile methodologies.
- What Most People Say: Waterfall is the older methodology that is not used in modern software development.
- What You Should Say: Books have been written about this. Briefly, in Waterfall the requirements are defined without much or any interaction with the software development team. In Agile, there is continuous refining of requirements as development proceeds due to constant interaction between those defining the requirements and the people doing the development.
- Why You Should Say It: Waterfall is older but it’s still used and the interviewer didn’t ask you to rate the two, Schweitzer says. You should explain the differences between the two methodologies, then invite an in-depth conversation by explaining when each is most effective and describing your experience with each one.
Your goal is to turn the interview into a conversation and build rapport. Says Schweitzer: “The manager is more inclined to hire you when he thinks: Hey, I can talk to this guy.”