Какие фреймворки и технологии нужно знать кандидату на джуниорскую позицию iOS-разработчика?
Всем привет!
Хочу сменить область деятельности, перейти из автоматизированного тестирования, которым я сейчас занимаюсь, в мобильную разработку для iOS.
Я сейчас нахожусь только в начале пути, изучаю Swift, смотрю и читаю курсы, пишу простенькие приложения. Однако, меня беспокоит, в правильном ли направлении я двигаюсь. Прошу совета либо тех, кто недавно собеседовался на джуниорские позиции, либо от тех, кто собеседует iOS-разработчиков на начальные позиции.
Есть ли, на ваш взгляд, какие-то технологии, или фреймворки, которыми должен владеть даже джуниор-разработчик, помимо, собственно, Xcode и Swift?
Для себя пока выделил: continuous integration, git, REST - что-то уверенно знаю, что-то еще подтяну.
Опыт работы с AppStore - пока нет, но, естественно, планирую разработать какое-то приложение, достойное размещения в сторе, для упоминания в резюме.
Было бы здорово, если бы кто-то написал: я спрашиваю на собеседовании то-то и то-то, если кандидат не делал чего-либо из этого обязательного списка, то продолжать с ним смысла нет.
Изучение вакансий четкой картины не дает, так как там требования часто выставляются в зависимости от конкретного проекта, и сложно понять, что из этого является общим для любой iOS-вакансии, а что специфическим для конкретного проекта.
Пожалуй, стоит уточнить область моих интересов - скорее всего, я не буду заниматься разработкой игр, поэтому, наверное, нет смысла изучать какие-то специфичные для игр движки или фреймворки.
Я планирую посвятить изучению всего этого порядка полгода, прежде чем пытаться ходить на собеседования, так что времени пока что, считаю, достаточно. Хотелось бы потратить его с максимальной пользой.
Вы никогда не узнаете почему вас взяли на какую-либо работу. Просто учите и делайте то что вам нравится, но подтягивайте и сферы знаний, которые отстают.
>> область моих интересов - я не буду заниматься...
Очень сильная мотивация для работодателя, чтобы не брать вас на работу в принципе. Никогда не пишите, что вы не хотите чем-то заниматься. Отказаться от конкретного предложения вы можете всегда, но потом, если оно поступит.
Я бы сказал, что вы должны свою предыдущую сферу работы тестировщиком использовать в новом направлении по максимуму, т.к. много программистов сильно плавают в этом деле.
Еще посоветую вам подтянуть администрирование, т.к. и с ним программисты сильно плавают. Протоколы, прокси, аутентификация, токены - это тоже надо знать.
Программирование - это способ обьединить смежные области в нечто работающее.
На собеседования можно ходить всегда. В худшем случае - просто поговорите.
Захаров Александр, Александр, спасибо за ответ.
>>> область моих интересов - я не буду заниматься...
>Очень сильная мотивация для работодателя, чтобы не брать вас на работу в принципе.
То, что я написал, это все-таки не резюме для работодателя, а вопрос к тем, кто уже проходил этот путь. Уточнение о том, что я не планирую заниматься играми, сделано для того, чтобы избежать рекомендаций изучать что-либо, необходимое, в основном, для разработки игр. Технологий и областей знаний слишком много, и невозможно охватить все, по крайней мере, на старте.
Поэтому мне сейчас важно потратить усилия на самые основы основ, без которых нет смысла продолжать. Именно об этом был вопрос, со всеми уточнениями.
На собеседованиях мне пока нечего сказать, я трезво оцениваю свои знания на данном этапе. Собеседования это отдельный большой вопрос, но вообще я считаю, не очень правильно тратить время работодателей, заведомо зная, что я иду "просто поговорить".
Кроме того, я считаю, что проваленное собеседование, потенциально может закрыть шансы на повторное собеседование у этого же работодателя спустя несколько месяцев, когда я буду чувствовать себя уверенней. Думаю, что многие просто не захотят тратить время повторно на кандидата, который недавно провалил собеседование.
m16k,
>> вопрос к тем, кто уже проходил этот путь
Это не путь - это квест.
>> Технологий и областей знаний слишком много, и невозможно охватить все, по крайней мере, на старте.
Не спешите с выводами. Технологии разработки игр могут иметь общие фраймворки даже с бухгалетерией.
>> Поэтому мне сейчас важно потратить усилия на самые основы основ, без которых нет смысла продолжать
Основы основ вы узнаете, когда накопите приличную базу и станете опытным разработчиком (вот такой парадокс). Основы вы знаете уже сейчас, но отличие вас от специалиста состоит в том, что специалист видит основы в своей работе, а вы пока нет. Чтобы наконец увидеть из каких кирпичиков состоит та или иная работа нужно поработать. Всё развивается по спирали, а не последовательно.
Учёные вот тоже хотя знать основы основ и вот уже даже сделали коллайдер. Что дальше? )))
>> Кроме того, я считаю, что проваленное собеседование, потенциально может закрыть шансы ...
"Провальное" собеседование относительно. В компанию набирают не просто роботов. Набирают людей. Выбирают характер. Покажите, что вы действительно хороший человек и на вас можно положиться. Ну и если вы не подошли друг другу нужно остаться вежливым и поблагодарить за уделённое вам время.
Вообще неплохо заранее узнать о специфике работы компании, чтобы вести собеседование в разрезе IT по деятельности компании. Вы должны ходить на собеседование уже кое что зная о компании.
>> Думаю, что многие просто не захотят тратить время повторно на кандидата
Во-первых вы слишком плохо думаете о других, во-вторых не надо думать за других. Если вы были достаточно уверены, но чего-то не знали, то, наверное, компании будет приятно узнать, что вы про них помните. Вполне уместно даже написать, что если вам отказали по техническим причинам, то вы можете написать, что вы подтянули "это" и если им нужны сотрудники, то вы хотели бы прийти на новое собеседование. Превращайте минусы в плюсы.
P.S.
Не стремитесь попасть в каждую компанию. На собеседовании не только вас выбирают, но и вы. Я как-то пришёл на собеседование в одну компанию, посидел там полчаса и послушал их "атмосферу". Потом во время разговора я просто извинился и сказал, что я не хочу у вас работать, спасибо, что уделили время и ушёл. Цените себя.
Одним из первых пунктов в статье по ссылке указано "Свободное владение Swift ИЛИ Objective-C".
Стоит ли это понимать так, что знание Objective-C не является необходимым условием для начала работы в этом направлении, и достаточно хорошего владения одним только Swift?
Да, я понимаю, что знать Objective-C было бы тоже здорово, но с учетом того, сколько мне еще предстоит изучить, важно понимать, как расставить приоритеты.