iOS development for beginners. Part 3: preparing for the interview
Published: 2023-03-24 11:53:02

In the final part of this tutorial, I’m going to guide you on how to prepare for your first interview for a junior developer position. As I mentioned in this article, I attended hundreds of interviews over my career on both roles. I started my career of iOS developer about 10 years ago, for sure, requirements are a bit higher today, but if you would prepare well, you’ll make it. Few times I even hired guys with minimal experience when I had only middle-level positions. How did it happen? They proved that they’re smart and would get things done. Check this article to get to know what to do and what to expect.

## The necessary knowledges
Before attending an interview, make sure that you’re ready. Below I would provide you with a short checklist of most important areas of usual discussion.

## Swift language features
As I mentioned in the first part of this tutorial, Swift is #1 choice for iOS App Development. And you need to know how to use it. Here is a list of the most important things you should be able to write even on a paper:

- Creating a variable, understanding let/var difference
- Understanding how Optionals work, if let condition
- Weak references, some basic memory management knowledge would be a good addition also
- Working with arrays and dictionaries (create, count, insert, delete)
- Working with strings (create, count symbols, add substring)
- Creating your own structs, classes, and methods
- `If..else` and `switch..case` conditions
- `For` cycles

## Xcode
Xcode provides you a very user-friendly interface, so, it’s easy to learn how to use it. You should be able to:

- Create a new project and add a third-part dependency
- Run your app on iOS simulator and on device
- Debug your app (understand what’s wrong using console output)
- Submit your app to the App Store

## UIKit
UIKit framework is a core part of iOS SDK. It contains UI components and controls. You should be able to:

- Create navigation model for your app (`UINavigationController`, `UITabBarController`, `UISplitViewController`)
- Understand the difference between modal presentation of new `ViewController` and `UINavigationController` push/pop mechanics
- Create a new `ViewController` both in code and in Storyboard Editor
- Understand the difference between `UITableViewController`, `UICollectionViewController` and `UIViewController`
- Understand reusable cells mechanics of `UITableViewController` and `UICollectionViewController`
- Use Auto-Layout constraints to build a user interface
- Use `UIAppearance` proxy to customize colors of your app (in code)

## iOS SDK
iOS SDK consists of dozens of frameworks with thousands of methods. Nobody can know them all. And you don’t need it too. All you need is to get and experience using a few of them and know where to find documentation for others. Here’s a list of most commonly used frameworks:

- Foundation (base layer of functionality, networking, data structures such as arrays, dictionaries, strings, etc.)
- UIKit (user interface)
- MapKit
- CoreLocation (GPS & accessing user’s location)
- CoreData (local database, I prefer Realm)
- UserNotifications
- LocalAuthentication (TouchID, FaceID)
- GCD (multithreading) is also good to know, at least you should be familiar with `async` and `asyncAfter`, main and background queues, you’ll find more information in [this article](https://www.kodeco.com/28540615-grand-central-dispatch-tutorial-for-swift-5-part-1-2)
I recommend you to use some features of each of these frameworks in your home projects.

## 3rd part libraries
Sure, every team has its own list of libraries to use, but you should be able to discuss some most common you used in your pet projects. For your interview, I think, only Alamofire is necessary. Don’t forget to include all libraries you use into your CV, and be ready to explain your choice.

## Building your CV
The first significant step is to pass the screening stage and get an appointment for the interview. On this stage recruiter or HR specialist evaluates your CV on being either appropriate or not for an open position they have. The well-prepared CV would help you to pass this stage successfully. The good CV contains this information in 1 (one) page:

- Your name and your current location
- Desired job title (usually it would be Junior iOS developer)
- Your education, major fields of study and graduation status
- Work experience

Company doesn’t need to know your home address, city or state would be well enough to understand whether or not you’re located in the same area as the company’s office. Job title is another good addition to make sure your CV would not get lost.

If you’re still a student, make sure to mention that and point that you would need a flexible schedule or part-time employment. Usually, you would get much more options after graduation, because the most of employers looking for full-time developers. However, working full-time with a flexible schedule is very common.

If you do have a work experience not relative to the desired job, there is no need to mention that in your CV. For example, if you developed and maintained a website for your university’s department, and you’re looking for an iOS developer job, it’s still would be a good addition to your CV. However, working as a barista at a coffee shop wouldn’t help you. What you really could do is stating that you’d been an Independent Developer and now have 2 apps published in the App Store.

In the work experience section you should also mention:

- Your completed projects (with links to App Store)
- Your technology stack

**Provided list of completed apps would help you to show the employer that you have some experience, able to write code and getting the project to release. Having developed at least 2 different apps would definitely increase the number of interview invitations and also would positively affect your initial salary.**

It’s also very important to provide a list of technologies you’re familiar with. Usually, it’s better to add only those which you had used in your apps because you would need to discuss your decisions on libraries usage. Here is an example of a technology stack description:

```
Swift
Xcode, App Store Connect
iOS SDK: UIKit, Foundation, CoreLocation, TouchID/FaceID, GCD
Libraries: Alamofire, Realm, SwiftyJSON
```

## Don’t forget to do a research
Before sending a CV, make your research on your future employer.

- Check the company’s website, App Store, Google Play profiles to get to know about products/projects they’re working on.
- Ask yourself why do you want to work for this company.
- Try finding other opened jobs to compare salary levels with other companies.
- If the company is located in a different area, check the costs of living in that place.

After completing your research, you should understand your motivation of joining this company and the salary level which would be comfortable for you. Be ready to answer those questions on the interview. Many guys don’t have specific numbers on their mind when I’m asking them for it. So, they’re asking me to offer them something and then they would think about my offer. That’s not how things work.

## Prepare your story
After evaluating your knowledge and completing your CV, you should prepare for the phone interview. It usually lasts for 10–15 minutes and is intended to check your background, previous projects, motivation. The on-site interview usually starts with the same discussion. To succeed in this step you need to prepare your story. Sometimes it could be useful even to write it down. The sample structure of introduction speech could be:

- Education, why did you choose your school, profession
- Why did you decide to become a developer
- What have you done to begin your developer’s career
- Completed projects

It’s important to show your motivation to work and willing to learn. Think about how you’d choose between two companies and highlight 3–5 things that most important for you. Don’t wait to be asked for that, it’s usually better to finish your story with that.
I’m usually looking for guys who are interested in:

- Building amazing product
- Developing his/her skills
- Working with a great team
And not for people who:

- Seeking a job closer to home
- Want to get lunch compensation
- Looking only for a bigger salary

## You’ll make it!
It wouldn’t be easy. You may have to attend a dozen interviews before getting your first job offer. Remember to make your choice carefully. It’s usually better to choose between 2 offers instead of signing in the first one you would receive. Do not expect to win from the first shot. Continue trying. You’ll make it!