Взлом iOS-интервью
iOS — это небольшая ниша в разработке программного обеспечения, и объем знаний, которые вам необходимо охватить, довольно стабилен на протяжении многих лет.
Подготовка к iOS-интервью мало чем отличается от фронтенд-интервью . Разработка на стороне клиента — это навык, которым мы можем легко похвастаться, из этого следует, что компании часто ожидают портфолио проектов, над которыми вы работали.
Конкуренция в престижных компаниях жесткая: тысячи заявок от лучших инженеров со всего мира. Независимо от вашего технического уровня и должности, вот 5 факторов, которые будут иметь большое влияние на ваш путь поиска работы:
- Технические навыки — Решение проблем, iOS-разработка.
- Многолетний опыт — чем больше, тем лучше, предпочтительно от 3 до 5.
- Персональные проекты — приложения App Store, репозитории с открытым исходным кодом.
- Бывшие работодатели — Чем престижнее, тем лучше.
- Навыки проведения интервью — мыслить вслух, рассказывать истории, задавать вопросы.
- Собеседование по телефону с менеджером по найму (0–1)
- Интервью по телефону с членами команды (1–3)
- Возьмите домашнее задание (0–1)
- Интервью на месте (1)
- Переговоры о предложении (0-n)
Техническое мастерство
Независимо от того, любите вы или ненавидите структуры данных и алгоритмы, вам потребуется значительное количество времени для практики. Большинство компаний используют его, и в ближайшее время он не изменится.
iOS — это небольшая ниша в разработке программного обеспечения, и объем знаний, которые вам необходимо охватить, довольно стабилен на протяжении многих лет. В 2022 году вы должны обладать приличными знаниями по следующим темам:
Базовые знания
- Swift (протоколы, дженерики)
- Паттерны (MVC, MVVM, VIPER)
- Пакеты (SwiftPM, CocoaPods, Carthage)
- Параллелизм (GCD, Async/Await, задачи, действующие лица)
- Реактивное программирование (Combine, RxSwift)
- Хранилище (приложение, сцена, CoreData, Realm)
- Сеть (URLSession, Alamofire)
- Инструменты (Xcode, TestFlight, AppStore)
- Рекомендации (API, интерфейс, покупка в приложении)
- Фонд, SwiftUI, UIKit
- XCTests, комбинирование, CoreData
- CloudKit, StoreKit, PhotoKit
- CoreGraphics, CoreAnimation
- Alamofire — элегантная сеть HTTP
- Kingfisher — Скачать и кэшировать изображения
- SnapKit — Autolayout DSL для iOS и OS X
- RxSwift — Реактивное программирование
- Realm — Мобильная база данных
- Lottie — векторные анимации After Effects
- SkeletonView — Причудливые виды загрузки
- Герой — Элегантный переход
Домашнее задание
Вы должны потратить время на работу над собственным приложением, чтобы разместить его в App Store. Это не должно быть супер-причудливо: просто что-то, что работает и имеет достаточно, чтобы показать, что вы разбираетесь в iOS. Достаточно хорошее приложение, и вы никогда больше не будете сталкиваться с такими дерьмовыми проблемами.
Вот некоторые из наиболее распространенных примеров задач:
- Получите некоторый JSON и отобразите результаты.
- Добавьте новую функцию в существующую базу кода.
- Найдите ошибку в существующем проекте.
- Внедрите конкретную ключевую функцию компании.
Для успеха вашего домашнего проекта убедитесь, что он:
- Должно быть легко запускать, создавать и профилировать.
- Должен быть хорошо протестирован и задокументирован соответствующим образом.
- Должен следовать четкому шаблону проектирования (MVC, MVVM).
- Избегайте использования сторонних библиотек любой ценой.
- Кодовая база должна быть чистой, без ошибок, без предупреждений.
- Никогда не превышайте лимит времени, установленный интервьюером.
Образовательные ресурсы
- Учебные сайты: swiftbysundell.com , raywenderlich.com , nshipster.com , objc.io , byby.dev
- Удаленная работа: iOS Dev Jobs , RemoteOK , Remotive , Remote , Мы работаем удаленно
- Практические задачи: общедоступные API , вдохновение пользовательского интерфейса мобильного дизайна
- Вопросы для интервью: Swift , SwiftUI

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































