2021-11-25 18:19:33
#работа #собеседования
Возлагал большие надежды на одну компанию, которая внезапно стала нанимать людей со всей России на удаленку. Почти сразу с трёх отделов написали. Один занимается написанием библиотеки для обработки сигналов и изображений, второй пишет либу для машинного обучения, а третий занимается тоже машинным обучением но чем-то типа его автоматизации.
Изначально я понимал, что пытаюсь сунуться в чужой монастырь, потому что это место работы можно назвать сектой свидетелей C++. Там объективно непрерывно изучают новые стандарты языка. Но полная удаленка подкупила.
Решил "освежить" знания плюсов, как потом оказалось, что пришлось их чуть ли не заново выучить. Всегда писал на плюсах в каком-то околосишном стиле. Как оказалось, там есть нюансы и довольно значительные. Но все же по лекциям на ютубе удалось восполнить базовые пробелы за неделю-другую.
Первый отдел дал задачку на дом на час - реализовать shared_ptr. Ее я всё-таки решил сделать. Отправил решение. Три недели не отвечали. Написал hr-у, оказалось, что отказали без объяснения причин. Вообще жаль, потому что сама обработка сигналов это моя область, но срезали меня из-за недостаточного другого навыка (вроде, но об этом позже).
Потом было собеседование в третий отдел. Там строил дерево на плюсах. Код написал, но затупил на обсуждении, потому что не всегда понимаешь, к чему задается тот или иной вопрос. В конце обсуждали, в какие смарт поинтеры обернуть указатели на ноды. Я бы ни в какие не оборачивал, конечно, потому что я не даун и умею чистить память, но современный C++ со мной не согласен (RAII и все его друзья). Оказалось, что в одном случае подойдут shared_ptr, а в другом weak_ptr. Из этого отдела отказали стандартным сгенерированным письмом. От роботов отказы получать ещё обиднее, кстати.
Последнее собеседование со вторым отделом было самым приличным. По математике спросили, что такое собственные числа. Спросили, работал ли я с алгоритмами машинного обучения, векторизовывал ли код, как делал бы sum-reduction на CUDA. Тупил я уже на довольно высокоуровневых вещах типа как ограничить набор типов данных для шаблонной функции через SFINAE. По задачке было даже понятно, какие навыки помимо знания плюсов, она проверяет. Задача была простая: найти первый и второй по величине элемент массива. Заметил кстати, что чем старше собеседующий, тем он спокойнее относится к тому, что человек чего-то не знает. Вроде и понимаешь, что пошлют в итоге, но на душе как-то спокойно становится. И думаешь, какие чудесные люди там сидят. Наверно тоже надо так себя начинать вести на собесах.
Самый интересный отказ прилетел от последнего собеседования: прямо во время самого процесса. Когда я начал изучать этот феномен, то обнаружил, что на hh вакансия ушла в архив за 4 дня до собеса. Значит, скорей всего, hr косякнула, когда назначала дату интервью, и тогда уже позиция была закрыта.
Небольшой итог наверно нужно сделать. Собеседования в эту компанию подтолкнули меня изучить современные плюсы и немного пошатнули мое мировосприятие относительно программирования. В целом изучить плюсы несложно. Нужно просто больше времени на теорию (хотя бы месяцок) и выделять вечера в течение пары месяцев на проект, в котором будут использоваться большинство модных техник от Страуструпа (типа того же SFINAE). В целом у меня такой проект есть и я его уже пишу, но о нем в другом посте. Работать в кодинге от этого я особо не захотел и в принципе понял, насколько у меня сейчас теплое место относительно подходов к работе. Наверно нужно сворачивать хотя бы до лета свои попытки перехода на другое место. Закончу с Фейсбуком и парой других мест в Москве и залягу на дно, пожалуй. А там и командировка, и премия намечается. После посмотрю, что делать дальше. Пока буду ценить, что имею.
39 viewsedited 15:19