Обучение
- Подготовительные курсы
-
Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Наука о данных
- Тестирование ПО
- Гуманитарные и экономические дисциплины в IT
- Управление проектами и продуктами
- Бизнес- и системный анализ
- Веб-дизайн и компьютерная графика
- Системное и сетевое администрирование
- Информационная безопасность
- Маркетинг и продажи
- Английский язык для IT
- IT Bootcamp
- Fullstack
Обучение
- Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Тестирование ПО
- Ручное тестирование ПО
- Мобильное тестирование приложений
- Автоматизированное тестирование на Python
- Автоматизированное тестирование на Java
- Автоматизированное тестирование на JavaScript
- Автоматизированное тестирование на C#
- Тестирование безопасности
- Гуманитарные и экономические дисциплины в IT
- Technical writing
- IT HR
- PR в IT
- Управление финансами в IT
- Управление проектами и продуктами
- Project management
- Product management: Основы управления IT-продуктом
Как войти в iOS-разработку: «Не стоит относиться к ошибкам как к поводу сказать: “Это не мое, у меня ничего не получается”»
Мобильная индустрия — одна из самых динамичных и прибыльных отраслей в мире. В 2022 году расходы на мобильную рекламу достигли 336 миллиардов долларов, а расходы пользователей приложений составили 129 миллиардов. Особое место в мобильной разработке занимает компания Apple благодаря операционной системе iOS.
Думаешь, что разработка под устройства Apple — это что-то на грани мечты и, чтобы создать свое собственное приложение для iOS, нужно быть семи пядей во лбу?
Мы пообщались с Игорем Лебедевым, Senior iOS Developer в компании Aston и тренером курса по разработке iOS-приложений. Оказалось, что стать частью мира разработки под Apple реальнее, чем многие думают. Какие знания для этого нужны на старте и чего боятся начинающие девелоперы на старте, узнаешь из интервью.
— Чем занимается iOS-разработчик?
— Любой разработчик, в первую очередь, пишет код и решает задачи бизнеса. Разные языки программирования предоставляют различные возможности для занятости, и в этом плане iOS не исключение. Во-первых, это работа в премиум-сегменте, что повышает уровень зарплат и отношение к разработчикам. Во-вторых, это непосредственная работа с клиентами, то есть мы делаем то, что люди будут видеть: интерфейс, логику, навигацию и т.д. Это очень творческий процесс.
Кроме того, Apple — активно развивающаяся компания, которая создает программное обеспечение для множества устройств, включая iPhone, iPad, Apple Watch, приставки и т. д. Инфраструктура компании стремительно растет.
Комплексный курс по разработке iOS-приложений предназначен для тех, кто только начинает заниматься разработкой и хочет изучить iOS с нуля. Он заточен под широкопрофильный вариант. Мобильные устройства — это must-have, но человек, который пройдет данный курс, в будущем сможет без проблем переключиться на любое из устройств Apple.
— Почему в приложениях для iOS меньше ошибок, чем в приложениях для Android?
— Ответ на этот вопрос очень прост. Apple тщательно проверяет приложения перед их выпуском. Приложение проходит несколько уровней контроля. Первый — автоматический: если в приложении обнаруживается вредоносный код, он будет отфильтрован и отброшен на данном уровне. Далее идет ручная проверка, которая постоянно ужесточается. Есть огромный список требований, которым приложение должно соответствовать. Поэтому невозможно создать низкокачественную программу, кривую или с вирусами, и отправить её в App Store. Apple очень следит за своим имиджем, и премиум-сегмент должен быть премиум-качества во всем.
— Что должен знать iOS-разработчик, помимо Swift?
— Swift — язык программирования, который использует различные фреймворки и библиотеки, чтобы упростить процесс разработки. Но главное, чем нужно владеть iOS-разработчику, — это базовой логикой, которую люди используют в обычной жизни, например, чтобы распланировать свой поход на рынок или отпуск. Swift — это просто другой язык, который подчиняется своим логическим законам, а не мистическим сущностям, которым нужно поклоняться.
— Можно ли сравнить Swift с английским и реально ли выучить главный язык экосистемы Apple за несколько месяцев?
— Конечно, сравнивать можно. Я обычно объясняю студентам, что они должны писать код на Swift так, чтобы он читался как рассказ на английском языке. Без знания английского вообще очень сложно заниматься разработкой, поскольку документация, мануалы, форумы — все написано на нем. Хотя есть переводчики, для работы в этой области нужен как минимум базовый уровень английского.
Что касается того, как быстро можно выучить Swift, нужно сперва определить, что мы подразумеваем под словом «выучить». Например, я не выучил английский, хотя жил в Америке и работал в Англии. У меня уровень Upper-Intermediate, и я не могу сказать, что полностью знаю английский. Я могу на нем общаться, читать, решать какие-то задачи. Но знать язык — это огромный пласт знаний, который сложно охватить даже за всю жизнь. То же самое относится к Swift. Я не могу сказать, что владею им полностью, поскольку он содержит много специфических моментов, с которыми можно столкнуться лишь изредка. Тем не менее, я владею языком в достаточной мере, чтобы а) решать повседневные задачи, б) постоянно развиваться и изучать новое в этом языке и в) обладать уровнем, превосходящим большинство людей, что позволяет мне преподавать.
— В феврале прошлого года была информация, что Apple блокирует аккаунты iOS-разработчиков из Беларуси. А что происходит сегодня?
— Сейчас такого уже нет, Apple быстро исправилась. Хочу отметить, что разработчикам не обязательно иметь свою лицензию. В большинстве случаев, особенно в крупных аутсорсинговых компаниях, разработчики пишут код, но не публикуют приложения от своего имени, так как у компании уже есть проверенный аккаунт, который находится в безопасности. Если человек хочет стать индивидуальным разработчиком, тогда ему нужно купить свой аккаунт, поддерживать и оплачивать его. Но для большинства девелоперов это не является необходимостью.
— Какое «железо» нужно иметь на старте, чтобы погрузиться в iOS-разработку?
— Понятно, что мы хотим со старта иметь все и сразу. Но, когда я начинал заниматься iOS-разработкой, я использовал Hackintosh, обычный компьютер, на котором запускалась виртуальная машина, внутри которой была среда Apple. Там я устанавливал Xcode и начинал работать. Конечно, это неидеальное решение, но я считаю, что если человек действительно хочет учиться, то найдет возможность для этого. Не нужно тратить тысячи долларов на курсы, чтобы начать обучение. Когда устроитесь iOS-разработчиком, вам предоставят в компании необходимое оборудование: Macbook и другие устройства Apple.
— Каким был ваш путь в iOS-разработке?
— Когда-то давно я работал системным администратором и достиг уровня, когда приходил на работу и не знал, чем себя занять. В какой-то момент я осознал, что это жесткая деградация: я ничего не делаю и это очень плохо. Мне был 31 год, когда я решил попробовать себя в программировании. Пошел на базовый курс по С (это старый язык, на котором сейчас фактически почти никто не пишет, но это был хороший старт). Я понял, что языки программирования — это просто набор команд, который позволяет решать конкретные задачи. Это не вещь в себе, а способ решить задачу. Мне стало интересно. Я начал изучать С++, но понял, что этот язык меня не цепляет, и пришел на курс по С#, где меня опять не зацепило. Из серии: понимать понимаю, но душа вообще не лежит.
Мне всегда нравились iPhone и iPad, и я подумал: а почему бы не попробовать iOS? Начал изучать Objective C (язык, на котором писали до Swift). Он страшный, намного сложнее Свифта, но мне стало интересно. Я написал программу, и когда она появилась на моем телефоне, подумал: «о, круто, я могу так сделать!». Начинал с фриланса (не лучший путь для новичка), потом ушел в коммерческую разработку, и вот уже 8 лет я в этой сфере, из которых 5 лет веду курс по Swift.
— В чем особенность курса по разработке приложений для iOS в IT-Academy?
— Я понимаю, что многие курсы заточены на то, чтобы просто дать какой-то набор информации из серии: «Ребята, вот вам весла, а дальше плывите сами». Пройдя множество курсов самостоятельно, я понял, что это очень плохой подход, потому что он вообще не удовлетворяет потребности людей. Люди приходят, чтобы начать работать разработчиком, чтобы изменить свою жизнь. Они не приходят ради знаний Swift. Поэтому я организовал курс так, чтобы люди постепенно проникались разработкой, чтобы понимали, для чего нужен Swift, какие задачи можно решить с помощью него и так далее. Ну и естественно, я стараюсь, чтобы это все было относительно несложно.
— Чтобы прийти на курс, не нужно знать основы программирования?
— Прийти можно с абсолютного нуля. За 5 лет преподавания у меня были слушатели из разных сфер, включая юристов, маркетологов, врачей и креативных директоров. Не все из них имели какие-либо базовые знания в программировании. К тому же я не могу ориентироваться на знания, которые уже есть у людей, так как они могут быть совершенно разными. Поэтому я начинаю занятия с предположения, что каждый мой студент ничего не знает в этой сфере, и объясняю все с самых основ. Конечно, знание основ программирования будет плюсом, но это необязательно. Гораздо важнее логика и понимание того, что обучение — трудоемкий процесс, где придется прогуляться по граблям.
— Курс проходит дистанционно, а насколько удобен такой формат обучения?
— Онлайн-обучение позволяет записывать уроки, что является огромным плюсом: если что-то не понятно, можно пересмотреть запись и разобрать все непонятные моменты. Если человек дисциплинирован, то онлайн-обучение для него — идеальный вариант.
Есть множество курсов, которые продаются как готовые материалы. Но есть один нюанс: занятия в реальном времени с преподавателем нужны для контроля за развитием каждого студента и для ответов на вопросы. Стандартный сценарий готовых видеокурсов: студент покупает курс, проходит его, приходит на интервью и терпит неудачу, потому что не имеет практического опыта ответов на вопросы и защиты своего кода. Часто он даже не понимает, что допускает ошибки. Такие курсы представляют лишь малую часть возможного образования. Разработка — это многогранная деятельность, именно поэтому курс состоит из занятий с преподавателем, проверки домашних заданий, постоянного фидбэка, контроля и промежуточных прогонов, подготовки к интервью и разбора теоретических моментов.
Обычно в каждой группе есть два-три человека, которые говорят, что смотрели видео и много чего не поняли, поэтому решили прийти ко мне на курс. И это правильное решение!
— Курс длится 4 месяца. За это время каждый сможет написать свой проект и показать его потенциальному работодателю?
— Я сторонник того, что одно приложение за курс — это маловато. Считаю, что должно быть 3 дипломных проекта. К финальному зачету у моих студентов обычно 3 готовых iOS-приложения, которые они смогут разместить у себя в резюме в виде ссылок на GitHub.
— Небольшое напутствие для тех, кто планирует обучиться на iOS Developer.
— У многих студентов есть одна типичная проблема, и она связана с нашим подходом в образовании. С детства нас учат, что ошибаться плохо и что за ошибки можно получить плохие оценки и не пройти в следующий класс. Люди очень боятся ошибаться, что не есть хорошо. В процессе разработки программного обеспечения разработчики будут совершать ошибки, и это неизбежно. Важно понимать, что каждая ошибка — это возможность получить опыт и извлечь уроки. Не стоит относиться к ошибкам как к поводу сказать: «Это не мое, у меня ничего не получается». Если бы мы так относились ко всему, мы даже не научились бы ходить. Нужно понимать, что ошибки являются неотъемлемой частью процесса эволюции. Студенты, которые изучают программирование, будут ошибаться сотни раз, их код может не работать, но это не повод отчаиваться. Некоторые слушатели мне говорят: «Я сижу уже час, но код не работает!», а я мог целый день сидеть на работе и при всем своем опыте и бэкграунде только на следующее утро понять, как решить проблему. Ошибки — это ценный опыт. Нельзя научиться программированию, не совершая ошибок. Все мы должны набивать свои шишки, это неизбежный процесс развития.
Читай еще
iOS-дефицит: нехватка джунов и большие шансы найти работу
Очно, онлайн или комби? Что выбрать
Android или iOS: что выбрать на старте карьеры в мобильной разработке?