Как стать iOS-разработчиком: инструкция и полезные ссылки для новичков

Какие навыки, умения, soft и hard skills нужны начинающему аойснику, чтобы устроиться на работу. Рассказываем, что должен знать и уметь iOS-разработчик

Как стать iOS-разработчиком: инструкция и полезные ссылки для новичков

Как стать iOS-разработчиком: инструкция и полезные ссылки для новичков

Как стать iOS-разработчиком: инструкция и полезные ссылки для новичков, фотография 1

📖 Что в статье:
— Как учиться на iOS-разработчика самому
— Hard skills начинающего iOS-разработчика
— Когда идти на собеседование
— Работа в команде: soft skills программиста
— Полезные ссылки для старта в iOS

Привет! Я Паша — тимлид iOS-отдела в «Лайв Тайпинге». Тимлид — это специалист, который не только пишет код. Ещё он руководит командой разработчиков и участвует в отборе кандидатов. 

Как человек, общающийся с новичками, могу сказать, что в профессию приходят в любом возрасте и с любым образованием. Преград нет. Но легче всего разработка iOS-приложений даётся тем, кто интересуется технологиями и хочет приносить пользу людям.

Нужно быть чуть-чуть влюблённым в идеи Apple: участвовать в жизни сообщества, следить за новинками и обновлениями — тогда мотивация учиться iOS-разработке будет выше

Apple — экосистема про развитие. Корпорация привлекает молодых амбициозных разработчиков, чтобы они изучали её технологии и делали прогрессивные проекты. Вся информация про платформу iOS, языки программирования, среду разработки есть в открытом доступе. Это значит, что любой человек может стартовать в iOS, изучив материалы из официальных источников:

Чтобы процесс шёл легко, у вас должна быть база в программировании — без неё освоить эти материалы будет сложно. Пробовать никто не запрещает, но всё же перед тем как изучать iOS, лучше сначала разобраться в основах профессии разработчика. Сделать это можно разными способами: 

  • Поступить на техническую специальность в университет — классно, но долго. Если вы ещё учитесь в школе, то выбрать подходящий факультет, поступить на него и параллельно учиться программировать на iOS — хороший вариант. 
  • Записаться на платные курсы — если вы учитесь не на технической специальности, или уже работаете и хотите сменить сферу, то платные курсы помогут сделать это дисциплинированно.   
  • Изучить основы самому  — на первых порах можно изучать разработку самостоятельно. Так вы сформируете в голове общую картину, поймёте, какие темы даются легко, а какие проседают. Единственное ограничение здесь — ваша усидчивость и мотивация. 

Не у каждого есть четыре года на университет. А курсы будут эффективнее, когда у вас уже есть знания, которые нужно уложить в систему. Поэтому я расскажу, как изучить программирование и iOS-разработку самостоятельно. Поможет мне в этом наш джун — Женя. Вы познакомитесь с его историей и посмотрите, подходит ли вам самостоятельный путь.

Это Женя — он пройдёт путь начинающего айосника вместе с вами 

Как учиться на iOS-разработчика самому

Время: от 6-ти месяцев обучения
Первые вложения: от 80-ти тысяч за макбук 

Создавать iOS-приложения без макбука можно, но сложно. Если вы серьёзно настроены стать iOS-разработчиком, то лучше приобрести девайс сразу. По деньгам больно, но оно того стоит. 

Первый компуктер Женя взял с рук — так получилось дешевле

Подготовка

1. Составьте roadmap. Перед тем, как погрузиться в программирование, любой новичок должен сделать roadmap, или карту развития . Можно составить свою, а можно найти готовую — например, roadmap от swiftapps.ru.

2. Спланируйте график. Можно почитать истории людей, которые прошли путь в разработку с нуля, и подсмотреть у них рабочие решения. Но не копируйте чужое расписание слепо, ведь только вы знаете, когда и сколько вам комфортно работать.

«Тяжело, тяжело…» — если вас уже посещают такие мысли то, конечно, лучше выбрать курс, где будет команда единомышленников и ментор. В таком случае важно внимательно выбирать программу обучения, чтобы курс рассказывал не только про Swift, но и давал основы 

Что поможет в самостоятельном обучении

  • Заметки. Сохраняйте полезную информацию в одном месте. Можно использовать стандартные «Заметки» на макбуке. Но лучше хранить всё в Notion, ведь со временем информации станет очень много. В Notion можно создавать огромное количество разделов и уровней вложенности. Это стеллаж IKEA в мире цифровой инфы. 
  • Канбан-доски. Нужны, чтобы отслеживать прогресс проекта. В вашем случае проектом может быть не приложение, а, например, чтение учебника. Оцениваете задачу, планируете проект, отлеживаете статус. Для этого тоже можно использовать Notion. Честно не реклама — просто удобно. 
  • Трекеры. Следить за временем, которое уходит на задачу, — это взрослый подход. Так вы будете понимать собственную скорость и отслеживать прогресс: начали ли вы справляться быстрее или всё ещё буксуете на месте. Хороший тайм-трекер — Toggle.
Женя составил роадмап и подготовил рабочее пространство — ниже мы подглядим, что именно он изучал

Hard skills начинающего iOS-разработчика

Главный вопрос: что же надо изучать? Собрал для вас базовые темы, в которых должен разбираться будущий iOS-разработчик. 

✅ Знать базовые принципы ООП 

Объектно-ориентированное программирование (ООП) — это подход к программированию, который используется не только в iOS-разработке. Сейчас и в обозримом будущем разработчики пишут в этой парадигме.

Вам поможет: книга «Погружение в паттерны проектирования» (включите VPN) — введение в ООП, разбор принципов SOLID и классических паттернов проектирования. В главах есть пункт «Аналогия из жизни», который объясняет тему человеческим языком на понятном примере.

✅ Понимать базовые архитектуры 

Каждый разработчик на самом деле — архитектор. По-хорошему, он должен спроектировать целую систему, которая сможет работать без сбоев. Чтобы это делать, нужно разбираться в базовых архитектурах: MVC, MVVM, MVP, VIPER. Для того, кто владеет этими знаниями, не проблема создать приложение любого масштаба.

Вам поможет: The book of VIPER — большая книга, которая рассказывает про VIPER-архитектуру. Сейчас и в обозримом будущем в iOS-отделе «Лайв Тайпинга» работают по ней). Вдогонку — статья-разбор VIPER-архитектуры на примере iOS-приложения.

✅ Писать псевдокод

Псевдокод — это универсальный язык, который нужен для описания алгоритмов. Не для того, чтобы программа выполняла команды, а для того, чтобы эти команды мог прочитать любой программист. В его основе — базовые принципы синтаксиса компьютерного кода и человеческий язык.

Вам поможет: Дж. Макконнелл, «Основы современных алгоритмов» — автор рассказывает о разных видах алгоритмов и учить их анализировать. Для удобства главы книги не зависят друг от друга — их можно читать в любой последовательности.

✅ Знать языки программирования iOS-приложений 

В первую очередь начинающим iOS-разработчикам нужно освоить Swift. Однако в мире ещё существуют проекты, написанные на Objective-C. Рано или поздно все сталкиваются с такими, поэтому знание Objective-C — будет вашим преимуществом.

Вам поможет: «Swift. Основы разработки приложений под iOS, iPadOS и macOS» — базовые концепции программирования и основы синтаксиса доступным языком. Если вы не занимались разработкой, то эта книга подходит для старта. 6-ое издание самое актуальное сейчас. 

✅ Знать базовые фреймворки Swift 

Лучше начать с устоявшихся фреймворков — Apple UIKit, Foundation и CoreAnimation, а SwiftUI оставить на потом. Он нативный, но появился только в 2019. Три года — небольшой срок для интеграции нового инструмента. Фреймворк сырой, и ему нужны доработки. Применять его в коммерческой разработке — рисково, потому что могут происходить сбои. А наша задача — сделать для клиента стабильное приложение. 

Вам поможет: UIKit, Foundation, CoreAnimation.

✅ Уметь работать с Git

В коммерческой разработке над приложением работают сразу несколько программистов. Это значит, что им нужен общий доступ к проекту. Его может обеспечить система контроля версий Git. Она хранит изменения в проекте в полном объёме и позволяет решать конфликты слияния, которые возникают при разработке.

Вам поможет: Git-book.

✅ Понимать навигацию iOS-приложений

В iOS-приложениях есть универсальные элементы навигации, способы их осуществления (UITabBarController, UINavigationController) и отображения (UIViewController). Нужно понимать, что они представляют собой на поверхности (например, как отображается таббар на экране) и как организована их работа «внутри» приложения.

Вам поможет: UITabBarController, UINavigationController, UIViewController

✅ Понимать жизненный цикл приложения и ViewController

У приложения есть несколько состояний: когда оно не работает, когда пользователь запускает его, когда активно пользуется, когда сворачивает в фон и закрывает. Все эти состояния должны быть отображены в коде приложения, чтобы оно могло адекватно реагировать на события (действия пользователя). Жизненный цикл приложения схож по структуре с жизненным циклом ViewController — его тоже нужно знать.

Вам поможет: Жизненный цикл приложения, жизненный цикл UIViewController

Когда идти на собеседование

Для разработчиков важны практические навыки. Теория — это хорошо, но без реального программистского опыта сложно конкурировать с другими кандидатами. 

Прежде, чем идти на собеседование, попробуйте придумать и создать свой pet-проект. Пусть даже это будет копия известного приложения. Нарисуйте для него прототип, подключите свободное API. Да, на проекте вы будете один: у вас не будет команды из менеджеров, дизайнеров, тестировщиков. Но главное, что вы сами на практике, методом проб и ошибок разберётесь в том, как создаются iOS-приложения. 

У iOS-разработчиков есть возможность написать несколько строчек кода и моментально проверить, как он исполняется, с помощью тестовой программы Swift Playground. Это такая «песочница», где можно оттачивать навыки и тестировать pet-проекты 

Берите свой pet-проект и бегом на собеседование, если уже нашли подходящую вакансию

Вот первый pet-проект Жени — приложение погоды. Женя сказал, что гордится им

Работа в команде: soft skills программиста

Чтобы стать успешным разработчиком, недостаточно писать чистый код. В компании, которая делает продукты для крупного бизнеса, программист — это всегда человек, который играет в команде. Вывод — нужно развивать soft skills. Это «мягкие» навыки, которые относятся не к профессиональным умениям, а к вашей личности. 

«Как-то мне тревожно созваниваться с коллегами», — так думал Женя, пока не подтянул свои софты

Какие soft skills нужны разработчику

  • Планирование — на реальных проектах вас ждёт новый уровень планирования, по сравнению с тем, что вы делали во время обучения. Вам предстоит оценивать задачи, укладываться в оценку и распределять своё рабочее время так, чтобы нагрузка была равномерной.
  • Постановка задач — чтобы другой человек понял, чего вы от него хотите, нужно максимально понятно и конкретно объяснять свои ожидания и обозначить сроки. 90% успеха выполненной задачи — её правильная постановка. 
  • Делегирование — нельзя тащить на себе весь проект. Нужно научиться делегировать задачи коллегам, если вы понимаете, что не справитесь с объёмом работ. 
  • Честность — важно честно говорить, что получается и нет, особенно если проблема тормозит всю работу. Пока вы честно не сможете сказать о ней, никто не поможет с её решением.
  • Умение отдыхать — важно понимать, когда вы уже всё, и давать себе время на перезагрузку. Отдохнувший разработчик работает продуктивнее, чем «горящий» специалист.
Ну вот! У Жени всё получилось, и теперь он — часть крутой команды на работе мечты

Полезные ссылки для старта в iOS

Обучающие

  • Статья «Я не знаю ООП» — если вы начали разбираться в принципах объектно-ориентированного программирования и у вас возникли вопросики, то вы найдёте общий язык с автором статьи. 
  • Raywenderlich — неисчерпаемый источник iOS-руководств. Подходит и новичкам, и профессионалам, которым нужно быстро понять работу нового фреймворка. Плюс в том, что к каждому учебному материалу прилагается практическое занятие — можно изучить новую тему и тут же проверить себя на деле. 
  • Hacking with Swift — тоже крутой и полезный ресурс со свежими туториалами по Swift, но бесплатный.

Блоги и телеграм-каналы 

  • NSHipster — блог дизайнера и разработчика облачного сервиса Heroku. Давно не обновляется, но там хранится много полезной информации про фреймворки, объекты фреймворков, Objective-C, Swift, Xcode и важные open source-проекты.
  • iOS Dev Weekly — срез новостей из мира iOS-разработки. Приходит в виде почтовой рассылки по пятницам. Куратор — Дэйв Вервер.
  • Канал в Telegram от Rambler — самые интересные статьи, видео и новости, связанные с iOS-разработкой.
  • Телеграм-канал Mobile Insights by AppTractor — дайджест статей по iOS, Android и разработке в принципе. Можно почитать что-то интересное для разного уровня.
  • Телеграм-канал iOS Dev — выкладывают хорошие статьи с кратким саммари — удобно, если нужно получить полезную информацию, но нет времени читать многабукв. 

Если вы хотите работать iOS-разработчиком в «Лайв Тайпинге» — переходите в раздел «Вакансии». Наверняка там есть интересное предложение для вас.

Cкиллы
Лучшие идеи для мобильного приложения и как их использовать

Часто компаниям страшно начинать разработку, потому что они считают свою идею недостаточно «инновационной». Но мы хотим показать, как уже имеющиеся концепции и технологии можно превратить в ...

Бест-практис
03 октября 2023
iOS vs Android: на чём заказать приложение? Разрушаем мифы про выбор платформы для мобильной разработки

Мы собрали все самые популярные заблуждения о выборе платформы для мобильной разработки из интернетов и рассказали, как поступить, если перед вами стоит шекспировский вопрос: ...

Клиентам
10 марта 2021
Как успешно пройти собеседование на работу

HR-менеджер компании Лайв Тайпинг рассказывает, каким должно быть здоровое собеседование в серьёзной компании, и даёт советы кандидатам на рабочие места, к чему им готовиться

Cкиллы
23 июля 2019
Уже готовы стать iOS-специалистом? Загляните в наш раздел с вакансиями
Уже готовы стать iOS-специалистом? Загляните в наш раздел с вакансиями