Junior iOS developer. Путь становления

в 10:53, , рубрики: iOS, objective-c, вопросы на собеседовании, начало карьеры, начало пути, Программирование, разработка под iOS, собеседование, метки: , , , , ,

Всем привет.

Введение

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

Как всё начиналось

На hh висело резюме «Молодой специалист» включающее в себя такие ключевые навыки как:
1) опыт программирования на C++ — 2 курса лаб и курсовых в универе;
2) опыт создания различных сайтов на CMS, естественно сюда входили знания html + css;
3) опыт работы в Xcode (только c Interface Builder, но в резюме этого сказано не было);
4) знания MySQL — самый минимум;
5) прочая ерунда в виде лидерских качеств, исполнительности, коммуникативности.

Звонок HR

В один прекрасный день я обновил резюме, изменил мобильный номер и резюме появилось у работодателей на позициях повыше. Начались звонки. Предложения стать менеджером по продажам или же гуру телефонных звонков сыпались только так, но не интересовали. И тут звонок. Звонит HR крупной консалтинговой фирмы и приглашает на встречу, обсудить вакансию iOS разработчика. Я немного оживился, наконец-то хоть не менеджер, но немного насторожился, у меня ведь нет никакого опыта и Mac`а. Честно выпалив что-то подобное: «Нуу, эээ, честно говоря, у меня опыта вообще нет», получил в ответ: «Ничего страшного, мы Вас научим, у Вас же есть опыт программирования на другом языке», тут я согласился и назначил встречу через 2 дня, чтобы сесть и жестко готовиться.

Подготовка

Тут же после звонка, сел за свой Asus и поставил на виртуалку Макось. Открыл книгу Кочана Objective-C и стал читать основные главы. Почитав, полистав книгу, я понял, что синтаксис своеобразный но не сильно отличается от C++. Посидел, немного покодил, почитал сайты с уроками.
Вторая часть подготовки была моральная. Читал различные статьи как пройти собеседование и т.п.
Ознакомился с компанией, изучил как и кем была основана, чем занимается и прочее.
Прочитал, что встречают все-таки по одежке, обдумал прикид, приготовил, погладил и лег спать.

Дорога в офис

Встал пораньше, скинул на iPad основные для меня статьи, чтобы повторить и файл который прислал мне HR, где описал как добираться. Доехав на метро до нужной станции, следуя указаниям вышел на нужную сторону и пошел, шел по описанным шагам и каким-то образом пришел не туда (почему-то не посмотрел сразу на карте), в файле было перепутано лево и право, но не в этом суть. В глубине душе радовался тому, что вышел намного раньше, иначе бы опоздал. Поднялся в офис минута в минуту, охранник позвонил той самой девушке и меня встретили.

Первое собеседование

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

Первая задача

Даны 9 шариков. 8 из них одинакового веса, девятый меньшего веса. Имеются чашевые весы. Как за 2 взвешивания определить тот самый один шарик. Дали бумажку и ручку, сказали можешь зарисовать.
Через пару минут задача была решена и мы перешли к следующей.

Вторая задача

Есть два столбика, между ними натянута веревка. Длина веревки 18 метров. Веревка свисает на 9 метров вниз. Вопрос: сколько метров между столбиками?
Начав думать, пришел мой будущий начальник. Но потом я ответил на эту задачу правильно.

Немного поговорили о учебе. Поспрашивали как я смогу заниматься в университете и работать, пришли к тому, что я буду работать 3 дня в неделю. Точнее 24 часа в неделю до окончания сессии, а летом чаще.
Немного позднее подоспел разработчик и начал меня спрашивать о моем опыте в программировании, опыте работы с какими-то (на тот момент неизвестными мне) фреймворками Objective-C и о наличии готовых приложений в AppStore.
Беседа проходила вполне приятно, я даже не волновался. Завершилось все на приятной ноте и на решении о выполнении тестового задания.

Тестовое задание

Доехал домой и тут же получил тестовое задание.
Оно было следующим:

1)Необходимо создать приложение для iPhone, основанное на UINavigationController;
2)На главном ViewController'е разместить таблицу (UITableView), кол-во строк на ваш выбор.
Каждая строка должна содержать название вида «Поручение № n», где n-номер строки, и описание поручения вида «Описание поручения № n»;
3)Сделать обработку нажатия на каждую строку таблицы, после которого будет происходить анимированный переход на другой ViewController, где будет отображаться заголовок взятый из названия строки по которой мы перешли и описание, в рабочей области ViewController. Так же во втором ViewController нужно предусмотреть кнопку Назад, для возврата обратно, в список. Кнопка должна являться частью UINavigationController (UINavigationItem);

Огромным преимуществом будет, если у вас получится разработать данное приложение без использования Interface Builder.

В этот же вечер я сделал это тестовое задание без использования Interface Builder на своей еле живущей виртуалке и отправил им.
На следующий день раздался звонок и я услышал: «Добрый день, Эльдар. Мы бы хотели пригласить Вас на второе собеседование», я обрадовался, спросил все ли было ОК в тестовом задании. В ответ: «Да, разработчик сказал, что для начинающего все ОК, но на работе все бы упало, если бы Вы так написали».
Обрадовался, но были майские праздники и я улетал домой. Честно рассказав о своих планах, поинтересовался, подождут ли они 10 дней и они дали свое согласие.

Дом, милый дом

Радостный я поехал домой. В сумку взял свою любимую на тот момент книгу Кочана. Думал прочту дома всю книгу. Но не тут-то было. Родственники, друзья, заботы по дому, все это не давало мне толком готовиться ко второму собеседованию. Но все же, я находил время для чтения.
Прошли 10 дней, в 5 утра я был в Москве, а в 10 утра мне нужно было быть в универе, а в обед уже на собеседовании.

Второе собеседование

Зловещую дорогу уже знал, но приехал в тот же офис опять минута в минуту. Встретила та же девушка, пришли в другую переговорную. Компания была та же, за исключением программиста. Вместо него был куратор проекта — начальник моего начальника. Начало собеседования напоминало сокращенное первое. И опять две задачи (на этот раз одна логическая и одна алгоритмическая):

Первая задача

Сколько поездов в Московском метрополитене? Немного пораскинув мозгами и к счастью, зная сколько примерно станций в Москве, я ответил, что минимум 560 (~280 станций в обоих направлениях) и максимальное количество ограничено только вмещаемостью депо. Мой ответ оказался правильным.

Вторая задача

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

Дальше мы пообсуждали те моменты когда бы я смог приступить к работе, в случае успешного прохождения испытаний и т.п.
Собеседование закончилось фразой: «Мы сообщим Вам результаты до конца недели (была среда или четверг)».

Результаты

На следующий день мне позвонили и предложили эту должность начинающего разработчика. И с понедельника я был в штате, оформленный по ТК, с отличным соц.пакетом.

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

Автор: EldarKhayrullin

* - обязательные к заполнению поля