На что в первую очередь смотрят в резюме iOS-разработчика? Главный критерий — это то, насколько описанные в резюме знания и навыки соответствуют требованиям вакансии. Чтобы облегчить ребятам процесс составления резюме и получить «то самое долгожданное» CV, мы в NIX указываем в описании вакансий список умений, которые хотели бы видеть в потенциальном кандидате. Проверяя резюме, уже на этом этапе мы поймем, не поленился ли человек прочитать наши требования, и на сколько он себя с ними соотносит.
Резюме помогает экспертам составить портрет соискателя и еще до личного знакомства с ним понять, подходит ли кандидат на указанную позицию. Поэтому относитесь к составлению резюме со всей скрупулезностью.
Если считаете, что соответствуете требованиям вакансии, опишите свои навыки в резюме и дерзайте. А если у вас еще есть наработки, которые можно показать, то смело добавляйте ссылки на репозитории с тестовыми проектами.
Техническим экспертам они дадут понять, что вы действительно пробовали программировать и умеете применять теорию на практике. Просматривая проект, мы оцениваем аккуратность написания кода, а также анализируем уровень сложности задачи и чистоту реализаци (использование паттернов, модульность кода, отсутствие code smells
Не менее важно понимать, как работает написанный код, а не формальное «сделал по туториалу». Пусть проект будет меньше и проще, но зато кандидат будет уверенно разбираться в написанном.
Если на собеседовании мы видим, что человеку не хватает знаний, то все равно поможем кандидату попасть в нашу команду. Перспективным ребятам мы предлагаем подтянуть навыки на нашей программе обучения. Попасть в группу могут и те, кто уже был у нас на интервью, и те, кто еще не знаком с нами и хочет перенять опыт практикующих разработчиков.
Для этого необходимо пройти технический тест. Для тестирования на некоторые потоки обучения можно даже выбрать непрофильный язык программирования. Обычно Swift изучают для нативной разработки, а JavaScript — для кроссплатформенной. Новичок же может выбрать тот язык, которым владеет лучше всего. Например, C++, PHP, ObjectiveC или C#. На этих потоках мы углубляемся в основы языка. Здесь нам важно проверить, что у человека есть опыт взаимодействия с любым высокоуровневым языком программирования. После успешного завершения учебы кандидат может еще раз попробовать свои силы на вакансию.
Рассматривая резюме опытных iOS-разработчиков, мы обращаем внимание на их предыдущий опыт. Мы понимаем, что из-за NDA не всегда получается указать конкретные названия проектов и приложений. В таком случае добавьте хотя бы поверхностное описание своих самых масштабных проектов (домен, основные фичи), не раскрывая коммерческой тайны. Экспертам будет очень интересно взглянуть, с какими задачами вы сталкивались в ходе реализации проекта, какую роль в команде выполняли, с какими технологиями работали и какие трудности преодолевали.
Если вы засабмитили десять версий приложения в App Store без единого реджекта, гордитесь реализацией сложной анимации, выступали в роли ментора или принимали участие в оценивании проекта — обязательно напишите об этом.
Будьте искренними, когда составляете резюме. Чем меньше заявленные знания соответствуют реальности, тем меньше шансов успешно пройти собеседование.
Часто ребята, сделав простенькое приложение, добавляют его в портфолио, приходят к нам на интервью и не могут ответить на простые вопросы по написанному ими же коду. Так может случиться, если вместо того, чтобы в первую очередь ознакомиться с документацией, спецификой языка и платформы, алгоритмами и базовыми паттернами, начинающие программисты сразу переходят к верстке UI и копированию решений со StackOverflow.
Не стоит торопить события. Для начала получите инженерную базу: поймите принципы ООП, познакомьтесь с паттернами, структурами данных и алгоритмами, прочитайте документацию по языку, на котором хотите программировать. И уже тогда более осознанно приступайте к написанию простых и спустя время — более сложных приложений. Только имея хорошую основу, вы сможете постепенно наращивать сложность своих разработок без потери контроля над ситуацией и с четким пониманием того, что вы делаете.
Довольно популярные вопросы на собеседовании — расшифровать аббревиатуру SOLID или объяснить, что такое полиморфизм (вариант для начинающих разработчиков). Здесь не столько важно дать четкое книжное определение, сколько объяснить своими словами, в чем польза того или иного подхода, привести пример использования из собственного опыта. Если видим, что человек затрудняется ответить, то всегда поможем наводящими вопросами. Такой подход помогает нам увидеть, как рассуждает человек, а не просто услышать очередной ответ из учебника.
Опытному кандидату мы предлагаем обсудить реальные кейсы, расспрашиваем, как бы он спроектировал реализацию той или иной фичи приложения.
Претендентам на позицию middle/senior важно:
Нам также важно, чтобы опытный кандидат умел налаживать коммуникацию с другими специалистами и смог влиться в команду.
Например, чтобы с разработчиками на стороне сервера смог договориться об API-протоколе, а заказчику объяснить, почему его «хотелка» нереализуема из-за правил App Store, а лучше — чтобы предложил альтернативные пути достижения результата.
Отсюда вытекает еще одно важное качество специалиста — проактивность. Именно iOS-разработчик хорошо знает все возможности платформы и может посоветовать полезные для бизнеса фичи. Поэтому нужно быть готовым общаться с командой и заказчиком, уметь аргументировать свои идеи.
Знакомство с языком Swift стоит начать с изучения официальной документации от Apple (или ее качественного перевода).
Особое внимание обратите на:
Прочие особенности Swift не менее важны для полноценного программирования под iOS и их понимание будет плюсом для прохождения обучения.
Закрепите полученные знания практикой и экспериментами в Swift Playgrounds.
А также:
UI-компоненты
Важно разобрать процессы какого-то UI-ного компонента, например UITableView. О них в интернете есть множество уроков, например, Adding a UITableView programmatically.
При этом важно понимать:
А также:
Полезно будет пробовать все на собственном маленьком тестовом приложении, чтобы потом иметь возможность показать код и рассказать, почему применялись те или иные решения.
Знакомство с React Native рекомендуем начинать с изучения JavaScript и JavaScript best practices: часть 1, часть 2.
Обратите внимание на:
Прочие особенности JavaScript тоже нужны для качественного программирования на React Native и их понимание будет плюсом в обучении.
Добавляйте типизацию в JavaScript и избегайте ошибок на этапе кодинга. Для этого изучите TypeScript Documentation.
Несмотря на то, что JavaScript не поддерживает многопоточность, знания о концепции многопоточности точно будут не лишними. Они могут пригодиться при написании нативных модулей в React Native приложении. Базу по этой теме вы найдете в статье Multithreading and Concurrency Fundamentals.
Не ограничивайтесь приведенными ссылками: читайте и источники, чтобы разобрать подходы с разных сторон и на разных примерах. Гуглите или придумывайте себе задачки в любой предметной области, пробуйте решить их с использованием изученных принципов:
Советуем изучить готовые библиотеки с UI-компонентами и другими тулзовинами, которые точно упростят вашу жизнь. Вот наиболее часто используемые библиотеки: react-native-vector-icons
, react-nativemaps
, react-native-splash-screen
, react-native-image-crop-picker
.
И еще немного полезных статей для изучения React Native:
Хороша теория, которая подкреплена практикой. Создайте свое собственное первое тестовое приложение и отрабатывайте на нем полученные знания. В будущем на интервью у вас будет возможность показать свой код и рассказать, почему вы применили те или иные решения. Так что дерзайте!
Читайте также: Как пройти собеседование на менеджера в IT: что нужно знать и уметь
В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…
Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…
«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…
Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…
Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…
Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…