Небольшая предыстория
В 2019 году увлёкся iOS-разработкой и решил попробовать попасть на курс от Mail.ru в их Технопроект с нашим ВУЗом. Закончил данный курс с отличием. Огромное спасибо Диме и Гене за отличный курс. После этого курса начал активно посещать митапы iOS-разработчиков. Летом особо не прогал под iOS. Осенью все же надумал найти работу в этой сфере и развиваться дальше. Решил начать
Из приблизительно 70 компаний ответили около 15 и где-то 3-4 пригласили на интервью.
Первое интервью, как и полагалось, завалил, ибо не знал, что там будет и как готовиться. На втором интервью выдали тестовое задание, не сложное, но т.к. особого опыта не было, больше времени убил на то, чтобы разобраться с реализацией и не уложился в дедлайн. На третьем собесе ребята сказали, что у них сейчас нет возможности, т.к. им срочно нужно закончить проект и что они готовы взять где-то через месяц, если захочу или же не найду другую работу.
В это время нашел курс по iOS-разработке от Яндекса и прошел его.
Собеседования в Яндексе
В начале декабря был на митапе в Яндексе для джунов. Всем гостям раздали QR-код для прохождения первого алгоритмического собеса. Там было 3 задачи на 2 часа без перерыва.
Задачи:
- Вводится n и нужно посчитать сумму всех чисел от 1 до n < 1000000, где цифры не встречаются более одного раза.
- Есть доска M x N (2<M,N<1000000), на которой размещены два шахматных коня — белый и чёрный.
На входе M, N и координаты клеток, в которых находится соответственно белый и чёрный конь.
Нужно совершить минимальное кол-во ходов, чтобы они оказались в одной точке и вывести это кол-во. - Вводиться 2 числа N-кол-во чисел в массиве и некоторое число M. Нужно найти непустой подмассив с минимальным кол-во чисел (т.е. с минимальной длины), сумма которой не меньше M, в противно случае нужно вывести что-то другое (не помню).
Есть ограничения по времени и по памяти.
Пока ждал результат получил оффер в другую компанию. Попросил у них неделю на обдумывание, и в последний день получил письмо от Яндекса. Там говорилось, что успешно прошел первый этап и приглашают на второй собес. К большому сожалению, не уточнили какая секция будет алгоритмическая или платформенная. Т.к. поверил в свои силы, то решил отказаться от оффера и приостановить все другие собесы и отдаться на подготовку и прохождения в Яндекс. Достал книжку cracking coding interview, из которой решал задачки в ноябре и стал прорешивать все задачи без ноута на листочке, и забил на универ, чтобы успеть за эту недели. Не хватило времени на все задачи, а последний день перед интервью ботал платформенную часть.
Второе собеседование: В начале собеса сказали, что сейчас будет алгоритмическая секция. Интервью проводил Валера из команды Диска. Собес был суперский, очень понравилось.
Задачи: Сначала поговорили обо всем о чем можно было бы пообщаться на эту тему (Чем отличаются статические языки от динамических?, пару вопрос про каждый тип языков, классы, структуры, стек, куча, массив, список, хеш-таблица, очереди, деревья, графы, про сложности алгоритма, и т.д.). Потом перешли на решение задач.
- Есть пять человек: Т, М, А, Л, Д. Они стоят в очереди за магической колой, выпившие удваиваются и идут в конец очереди. На входе n номер следующего, кто должен выпить колу. Нужно найти того, кто будет n-ным.
Идея решенияЛучшее решение это hashmap, сам решил через арифметику, т.е. вывел формулу, которая посчитала бы это. //Рассказал всю идею решения, потом дал оценку по времени и по памяти. Когда начал писать код, то интервьюер сказал, что логику понял и код я ему точно напишу так, что давай перейдём к следующей задаче, т.к. у нас осталось чуть больше 20 минут - Есть бинарное дерево поиска. Нужно найти сумму элементов лежащих в сегменте от L до R. Функция на вход получает корневой элемент, левую и правую границу. Тогда уточнил и узнал, что элементы не повторяются и границы включены.
Идея решенияДелал через рекурсию. (можно через цикл, но рекурсия проще), опять же сложность алгоритма и т.д.
Где-то ближе к новому году получил письмо об успешном прохождении данного этапа. В 20-х числах января связался с HR-ом и она сказала, что осталось последнее собеседование (платформенная секция). Тогда же назначили дату на следующий день после последнего экзамена. В новогодние праздники и во время сессии готовился еще к собесу. Одним словом, было сложно готовится и к экзамену, и к собесу.
Пришел на собес, его проводил Слава из Браузера. Немного пообщались об алгоритмической секции. Дальше он попросил написать схематично код, который реализует работу многопоточности. Так как до это особо не работал с многопоточностью, то за счет неожиданности попал в ступор минут на 20-30, просто не думал, что придется писать код. По теории отвечал не плохо, но были проблемы с реализацией. При всем при этом собес очень понравился. Мы не уложились в час и Слава предложил дорешать, поэтому нам пришлось сделать это в коридоре, потом немного пообщались. Это было отлично, потому что некоторые ребята ориентируются строго по времени. Через недели две написали, что провалил собес. Было очень обидно т.к. готовился и очень-очень сильно хотел попасть.
Огромный минус собеседований в Яндексе заключается в том, что им неважно попадешь ли ты к ним или нет. Из-за чего они часто игнорируют тебя или забывают написать письмо с результатом/(о назначении) собеседования и тебе самому приходится постоянно писать/звонить, чтобы что-то узнать.
Собеседование в МегаФоне
Самое лайтовое и немного не понятное собеседование из всех, что приходилось проходить в крупных компаниях. Собес длился где-то минут 20-30. Пообщались о том, что умею, чем увлекаюсь, какие оценки получаю в универе и т.д. Не было ни одного вопроса по платформе и алгоритмам. Этот собес, скорее всего, тоже не прошел, ибо никакой информации не получил.
Потом общался со многими, компаниями, но из-за того, что нет коммерческого опыта, то большинство компаний теряли интерес и не приглашали на интервью. Наконец-то, где-то в 20-х числах марта некоторые компании назначили собес, но потом из-за сложившейся ситуации с самоизоляцией пришлось их приостановить на неопределенное время.
Собеседование в Сбербанк
Было два телефонных интервью, где рассказывал о своих интересах, о том почему решил попробовать попасть в Сбербанк. В последнем спросили пару теоретических вопросов связанных с iOS и в общем о программировании. Первое и второе интервью прошел, назначили дату для прохождения очного (последнего этапа) собеса, который из-за режима самоизоляции провели по скайпу. Отлично провели собес со Славой, пообщались полностью по платформенной части. Через пару дней пришло письмо о том, что успешно прошел собес, но в данной команде нет места, поэтому предложат кандидатуру в другую команду. Через 2-3 дня пришло еще одно письмо о том, что набор на стажировку у них закрылся.
Собеседование в ВТБ
Проходил его параллельно с собесом в Сбербанк. Первое интервью было по телефону, потом был небольшой «тест», где нужно было ответить на пару вопросов связанных об опыте и знаниях в программировании и т.д. Потом было еще одно телефонное интервью. Далее был тест из 6 блоков на час.
Прошел их успешно, потом провели заключительный этап собеседования с Мишей. Т.к. сказали, что будет просто платформенная часть и вряд ли будет что-то еще, то особо не готовился. На интервью общались с Мишей об алгоритмах, о структурах, о сети, о многопоточности и т.д. Интервью проходило больше часа, но было очень интересно и классно.
Где-то через неделю позвонили и поздравили с успешным прохождением отбора на стажировку.
На днях был подписан договор, в тот же день получил пропуск, а потом и технику. Стажировка должна была пройти в офисе, но в последний момент все же, к огромному сожалению, перевели на удаленку.
Заключение
Параллельно проходил курс по iOS-разработке на CoursEra, но из-за того, что сейчас началась сессия и стажировка, пришлось приостановить активность на CoursEra.
Советы, которые могут помочь при поиске первой работы в IT
- Нужно хорошо разбираться в теории, ибо научиться кодить не сложно.
- Откликайтесь на вакансии middle/senior, т.к. найти вакансию intern/junior почти невозможно.
- Если есть возможность попасть на собеседование, то идите, потому что это поможет вам поднять ваши скилы. (Даже если мало что знаете)
- Изучите компанию, в которой у Вас будет собеседование и покажите интервьюеру свою заинтересованность работать у них.
- Обязательно спрашивайте о том, что вас лично интересует и что хотели бы узнать о рабочем процессе.
- Когда чего-то не знаете или не помните, то задавайте уточняющие вопросы, они вам помогут. Если не смогли вспомнить, то просто скажите об это.
- Думайте открыто. Если вы просто скажете ответ, то это ни о чем не говорит. Когда вы открыто рассуждаете, то интервьюер видит где вы ошиблись и помогает вам, задавая наводящие вопросы. Кроме этого, смотрит на то, как вы думаете и как ищете выход при сложившихся ситуациях.
- Прежде чем пойти на собеседование отрепетируйте его. Задавайте себе всякие вопросы связанные с тем, что должно быть и постарайтесь внятно ответить на них.
Совет компаниям
Когда вы проводите собеседования у стажеров/джунов, то давайте им какие-нибудь ссылки, где как минимум есть темы, в которых начинающий разработчик и не только должен хорошо разбираться. Из своего опыта скажу, что мне очень сильно помогли материалы, которые скинули ребята с самого первого интервью, за что огромное им спасибо. Там были основные темы, но они были не расписаны. Кроме этого, ребята сказали в какой последовательность их лучше изучить.
Если будут желающие, то сделаю еще пост с самыми популярными и важными вопросами + ответы и материалы к ним.
UPD: Недавно приходило письмо от Сбербанка. Там говорилось, что продолжают набор на стажировку и готовы рассмотреть кандидатуру, если актуально
Alexsey
По моему опыту отсутствие вопросов по алгоритмам — достаточно частое явление в компаниях, которые не мнят себя очередным гуглом. Хотя для позиции джуна, наверное, странновато все же.
Reload225 Автор
Да, во многих компаниях алгоритмы отсутствуют, но платформу абсолютно все спрашивают, чего не было у них