Привет,
От нечего делать отослал свое резюме в Амазон (филиал в Аризоне) (через CyberCoders.com), шел как team-lead, architect по ихним меркам это Software Develope Engeneer 3
Было 3 этапа интервью
1. Сначала hiring manager позвонил, пообщались, я рассказал про меня, что делал — прошел
2. По телефону, позвонил человек из Канады, подключились к сайту где мне надо было написать код на любом языке решив его задачи.
2.1. Данно множество чисел, найти все подмножества чисел сумма которых равна N. — сгуглил решение, напечатал, понравилось
2.2. в Binary search tree найти N-ый меньший элемент — рекурсия и все такое, решил сам
После этого он сказал что все в норме и теперь надо уже ехать в офис
3. Так как шел на архитекта, много готовился по данной теме, думал будем строить супер системы, ох как я ошибался ))
Был в офисе целый день, говорил с 6-ью представителями
3.1. Human behavior
3.1.1. какие были самые большие факапы и как решал
3.1.2. мои действия когда я предложил что-то хорошее но бизнес отверг
говорили, обсуждали много, вроде было все хорошо
3.2. технарь, сначала просто говорили о тем о сем, потом под конец дал задачу
3.2.1. — есть строка из разных символов, найти сколько раз повторяется только буквы и вывести результат отсортировав по числу вхождения и потом по самой букве. — решил быстро (Dictionary), понравилось
Обед — сотрудник отвел в кафетерию, поели, поговорили, меня очень интересовало какая у них политика насчет удаленной работы, так как для меня надо ехать около часа до ихнего офиса, сказал что правил как таковых нету, но большинство работают в офисе, и только если чрезвычайная ситуация могут поработать из дома.
4.1. — технарь, сразу на задачи
4.1.1 — Написать функцию которая бы заполнила закрытый полигон определенным цветом — сделал при помощи рекурсии, вроде понравилось, обсудили как полигон будет заполнятся, как рекурсия будет работать
4.1.2. — Изменить метод чтобы заполнение цветом шло волновым методом, чтобы можно было показать анимацию — применил волновой алгоритм, вроде все было хорошо
5.1. — технарь — спрашивал как я раньше разлувилал ситуации когда кто-то не придерживался стандартов написания кода. Поболтали немного про code review, company standards...
5.1.2. Данна колода карт — написать функцию которая покажет все раскладки для заданных 5 карт — не смог написать алгоритм перестановок — так и сказал ему, не напишу, перешли дальше
5.1.3. Написать алгоритм игры в карточную игру, так как он был поляк, выбрал Long and Pointless game —
1. колода делится на 2 равные,
2. каждые игрок ставит по одной карте,
3. у кого больше тот забирает обе и добавляет к себе в колоду, смотрим только значение.
4. если карты одинаковы, каждый игрок ставить по одной карте лицом вниз, и повторяем п.2
5. если у кого-то на хватает карт, то ставит только то у кого есть, и опять п.2
как он говорил, эта игра может длится очень долгое время, поэтому и такое название — написал алгоритм, понравилось
6.1. — технарь, но уже по архитектуре
спросил как бы я реализовал систему где надо добавить возможность добавление картинок при написание ревью пользователем для определенного продукта на сайте Амазон. Уточнил, что желательно не менять то что уже есть. Много говорили о проблемах которые могут возникнуть, как защититься, каков вообще смысл с точки зрения бизнеса такой фичи, вроде все обсудили нормально, сказал что моя система ему нравится
Через 4 дня позвонили и сказали что не берут, почему не сказали.
Почему я шел на архитетка, когда спрашивали только алгоритмы, я хз, двоякое чувство.
В моих проектах я сам мало решаю именно алгоритмические задачи, обычно я плачу человеку на фриланс бирже, который решает быстро и качествено, потом я уже внедряю в саму систему.
Вот и все.
Будут вопросы говорите ))