Несколько месяцев я ковыряю Swift и iOS, есть несколько тренировочных приложений, просто чтобы попрактиковаться. Благо базу по программированию и в целом IT я получил в колледже и мне не нужно было с нуля разбираться в совсем уж базовых вещах, только вспомнить после перерыва в полтора года.
Курсы по разработке от онлайн-школ я не проходил
Отдельное спасибо моему тепреливому товарищу с колледжа, который работает в iOS уже пару лет и помогает мне, натаскивает на уровень джуна.
Есть парочка тренировочных приложений на гитхабе, сейчас пишу третье, самое большое и пока что самое сложное для меня.
Технологии, которые уже использовал на практике:
- UIkit, NSLayoutConstraint / SnapKit для вёрстки из кода
- AVFoundation: для работы с аудио
- нетворкинг на URLSession и Moya
- CocoaPods для работы с зависимостями
- кодогенерация ресурсов с помощью RSwift
- Kingfisher для работы с изображениями
- JsonSerialization, SwiftyJSON, Codable
- CoreAnimation: CABasicAnimation и UIViewAnimation для создания анимаций
- немного использовал GCD
- в качестве архитектуры использовал Apple MVC, немного MVP и немного почитал про MVVM
- git, github
С таким наборчиком я начинаю поиск своей первой работы. Пока что ещё не откликался нормально на вакансии, только оформил резюме на HeadHunter, подписался на различные каналы в Telegram по поиску работы в IT, и, в частности, - мобильной разработке.
На хабре я нашёл парочку статей о том, что скорее всего будут спрашивать на собеседованиях, вот список:
- Жизненный цикл ViewController'a
- ООП, SOLID
- Разница между класом и структом
- Протоколы
- Способы передачи данных между контроллерами
- Storyboard или xib
- AutoLayout
- Сохранение данных (CoreData, Realm, UserDefault, etc.)
- Запросы и работа с данными которые получаем с сервера (URLSession, Alamofire, Codable)
- Замыкания (closures)
- Optionals
- Extensions
- Generics
- ARC
- Многопоточность (поверхностно, никто не будет требовать глубинных познаний от джуна)
- weak, unowned, private, fileprivate
- Разница между frame и bounds
- Cocoapods (SwiftPacketManager, carthage)
- Git, github
Возможно ещё:
- Apple MVC, MVP, MVVM
- жизненный цикл iOS приложения
- Алгоритмы и структуры данных
- Сложность алгоритмов
Ссылки на хабр:
В целом меня уже радует, что с почти со всем из этого списка я так или иначе сталкивался, когда писал свои приложения или хотя бы читал статьи, смотрел видео туториалы на ютубе.
В следующих статьях я скорее всего буду разбирать эти вопросы. В каждой статье по одному вопросу.