Interviews are a nervewracking process irrespective of your experience and knowledge-level. You wouldn’t be human if you didn’t feel anxious the night before the interview itself. We’ve all laid awake at night worrying about the right way to present the best version of ourselves both professionally and personally to our prospective new employers.
If you’re launching yourself into a brand new career then your first job interview in the field is naturally going to be even more anxiety-inducing than a regular job interview. You’ve studied hard, perhaps done some work experience, pimped your social profiles and attended every meet up going. But this is the real deal: it’s a shot at the career you’ve alway wanted. You don’t want to mess this up.
In this post we’re going to be offering practical advice specifically for those facing their first interview in iOS development. With our help you’ll be fully prepared to wow your prospective boss with your experience, technical knowledge and desire to learn and grow in the field.
If you’ve made it past the initial job application process (cover letter, resume submission, perhaps a phone interview) and are now ready for your first face-to-face iOS development interview, congratulations! Obviously, the company has seen a number of things they like about you and your background, even without the years of experience that some senior iOS developers have. Getting the interview itself is a huge achievement and you should feel proud of yourself for reaching this stage.
Now it’s important to bear in mind that there will be two aspects of this interview:
- The first will relate to you as a person, because a hiring manager will need to determine if you are a good “fit” for the organization.
- The second will relate to your technical expertise.
Here are some general tips to help you prepare as well as some typical questions you may be asked. Reviewing them and knowing what to expect from your interviewer should make the interview a far less stressful experience. Even knowing that you’ve prepared for the interview will make you more relaxed on the day itself.
General Preparation Prior to the Interview
If you have not done some deep research on the company/organization, now is the time to do so. Comb through the company website, look at photos of staff, read the mission statement, and get a feel for the level of formality or informality of the general climate. These things will tell you how to dress for the interview and give you a feel for the overall company culture. If, for example, the staff are working in jeans and T-shirts, you know that a polo shirt and slacks will be fine. If people are in shirts and ties, then you need to find a more formal outfit for the interview. Remember, it’s always better to be too smart than too casual, so err on the side of caution in this regard.
Language used on the site will give you a good idea of the type of language you should employ when answering questions. If the tone is relatively informal, you can be too. However, avoid too much slang and, of course, it’s never appropriate to use curse words however relaxed the interview is.
Scheduling the interview: You’re unlikely to have a successful interview if you are trying to schedule it on your lunch hour. Set a date and time during which you can be absent from your current job or commitments. Make sure that you have plenty of non-stressed time for the interview, so you’re not anxious about being anywhere else when you should be concentrating on getting that dream job.
Turn off your phone: Nothing is worse than your phone going off in the middle of an interview. If there is any type of personal emergency situation that requires you to keep your phone on, tell the interviewer in advance.
Be rested: This goes without saying but we’ll say it again anyway: lack of sleep makes you a bad interviewee. Get a good night’s sleep before what is likely to be a long and intense day.
Arrive early: Whether it is a Skype call, a conference situation, or a physical face-to-face interview in the office, arrive early – 15 minutes for a physical interview, and at least 5 minutes for an online one in case of any technical problems.
Prepare your questions: At the end of an interview, candidates are often asked if they have any questions. After a great interview, don’t less this last stage flaw you. Have questions prepared in advance about the company in general, as well as the responsibilities related to the role. This is not the time to ask about the salary or any benefits. If the employer is interested in you, they will cover these things when they make you an offer. Ending the interview on this note sends a negative message – that you see salary/benefits as a primary factor in applying for the job.
These questions are designed to give an interviewer an overall impression of your personality, your willingness to be a “team player” and your interest in the position. They also provide the employer with clues about your enthusiasm, your level of motivation, your desire to continue to learn, your commitment to see things through, and your verbal communication skills.
“Tell me a little about yourself.” You should focus on your education and experience, not your personal life. The interviewer is not interested in hearing about your marital or family status at this stage.
“How do you approach problem-solving?” Have your process well-defined and prepare your answer in advance.
“What are your weaknesses?” You do not have to be honest to a fault here. Identify a weakness in advance, explain it, and also describe how you deal with that weakness successfully, or how that weakness can be worked to your advantage.
These are just a few of the types of general questions you will be asked. The interviewer is really looking to see that you can express yourself well and that you have reflected upon your personal readiness for the position. You don’t want to look like an inexperienced interviewee, so preparing for these types of questions is pretty important.
The Technical Side
This will be the “meat” of your interviews, because a hiring manager wants to get a clear picture of your technical expertise.
The basics: You cannot possibly anticipate every question you may be asked, so focus on the basics. Be certain that you understand Objective-C 2.0 backwards and forwards. You will likely get questions about categories, swizzling, messaging, protocols, etc. Review the Apple Objective-C guides and focus specifically on any topic in which you feel weak; go to StackOverflow and study some of the most recently asked questions and answers.
Whiteboard coding : Be ready for this if your interview is face-to-face. If you have stated that you are proficient in any language on your resume, be prepared to demonstrate it on the spot. And if you are asked to do whiteboard coding, make sure you provide a verbal explanation as you are completing the task. This is a stressful situation, so you may want to do a bit of practicing before the interview.
The stress interview** :** This is a relatively new technique, and it is used when the work environment you may be entering involves a lot of stress. The interviewer is not interested in your responses, but, rather, how you react to some pretty rude comments or questions. For example, an interviewer may say, “Why did you choose the college you went to? It is pretty low-grade and doesn’t have the best reputation,” or “Your training and experience doesn’t look all that great – what makes you think you are qualified for this position?” Be prepared to stay calm, take a deep breath, and respond in an assertive but respectful manner. This is not personal – every candidate is getting the same thing. Your job is to remain calm and confident.
Now Some Typical Questions
You can practice answering these questions with the understanding that they may or may not be asked. But just practicing your responses will give you the confidence you need to make it through this side of the interview. Remember, the interviewer does not expect you to be perfect and will probably ask questions you do not have the answer to – it’s okay. You want to give the impression that you know the basics and that you are willing to learn what you have to, in order to be a valuable asset to the organization.
- What is method swizzling and when do you use it? If you have never worked with swizzling, say so. But do show that you know what it is and when you might use it.
- Why should retainCount never be used in code for shipping? Do you understand why you shouldn’t use it? Explain that.
- How do you fix a memory leak? Here, you will want to show off your expertise in debugging as well as your knowledge of instruments and memory.
- How does an autorelease pool work at the runtime level? Your answer will demonstrate that you are proficient beyond the basics and really understand how coding works.
- What is the difference between atomic and non-atomic property declarations? This type of question again explores how deep your understanding is rather than just what you have seen others do.
- Explain code signing. Be prepared to do this. It lets the interviewer know that your understanding is in depth, not just superficial.
- How do you reverse a string in C? Your answer will demonstrate your background in C and will provide insight into how you think.
- In Objective-C, what is posing? This is a minor aspect of C but it lets the interviewer know how deeply you have dived into C.
- Explain the difference between bounds and frames. This will give the interviewer an idea of how much layout expertise you have.
- What are the iOS app states? Look them up if you can’t remember them.
- What are the four abstraction layers in iOS? Again, look then up and be ready to explain each of them – hint: Core OS layer, Core Services Layer, Media Layer, and Coca Touch Layer.
- What experience have you had with the iOS development kit (SDK) and do you rely solely on it in your development? This is a great tool and you should have experience with it. And yet, the interviewer wants to know that you do not rely on it completely, that you can be a bit creative yourself.
Practical Coding – Expect It
Many companies want to know how quickly and accurately you can solve coding problems. You will most likely be given an app that is broken, be given a listing of the bugs, and then asked to fix them.
There is no way to prepare for this – debugging is a matter of experience, and that is the point of this part of the interview. How fast can you work and how successful are your solutions? You will need to balance speed and accuracy here. But the faster you can spit out good code, the better.
Accept the fact that you may not have answers to all of the questions you are asked, particularly the technical ones. But do not let that deter you or cause you to panic. The interviewer really wants to know the following things:
- You have the basics
- You have enthusiasm for what you do
- That you’re a good communicator as well as coder
- That you have the motivation to continue to develop your skills.
If you can project these strengths, you are well on your way to getting your first permanent job as an iOS developer.
Best of luck!
Want to know more about iOS development? Check out CareerFoundry’s iOS Development Course now!