Вопросы на собеседовании, для самоподготовки

Приветствую,

Через пару дней иду на личное собеседование в Zynga (в Москве), вот решил подготовиться :)
Моя специализация — разработка под мобильные платформы, в последнее время больше android.
На телефонном интервью предлагали выбрать из языков c++, java, phyton — я выберу наверно java скорее, если спросят (хотя буду декларировать что c++ тоже знаю).

Что будут спрашивать не понятно. Скорее общие вопросы без специализации.

Накидайте вопросов? Какие думаете могут задать там?
  • Вопрос задан
  • 16937 просмотров
Пригласить эксперта
Ответы на вопрос 11
jeck_landin
@jeck_landin
1) Оценка сложности вставки/поиска в разных структурах
2) Deadlock
3) Weak, Soft-references
4) Написать какую-нибудь сортировку
5) Что делает ключевое слово final?
6) String.intern()
7) контракт equals() и hashCode()
8) посчитать выставленные биты в числе
Ответ написан
afiskon
@afiskon
Поменьше нервничайте и отвечайте честно — что делали, чего не далали, с чем работали, с чем нет. Много денег не требуйте. Вообще — ваши знания — это только 50% успеха. Намного важнее — насколько вы адекватный человек, сколько проектов довели до конца, занимаетесь ли самообразованием, нравится ли вам ваша работа и так далее. Как мне кажется — потому что толкового и заинтересованного программиста можно за несколько месяцев обучить чему угодно, а вот воспитать в нем ответственность или трудолюбие почти невозможно.
Ответ написан
Комментировать
@YoungSkipper Автор вопроса
Так, начну сам. Всем полезно будет.
И так, взято с glassdoor
1. cycles in linked list, то бишь поиск циклов в связанном списке
2. blocked queue — реализовать (заодно выучить как произноситься queue :)
3. desk class (sheffle desk) — типа класс для колоды кард
4. convert string to integer

Первое ерунда, второе в целом тоже, хотя нужно подумать как элегантно можно в яве перетасовать колоду, последнее не понятно в чем фокус может быть.
Ответ написан
FreeTibet
@FreeTibet
dharma supplier
Всегда спрашиваю: полиформизм, инкапсуляция, интерфейсы.
Ответ написан
@YoungSkipper Автор вопроса
Отчет ниже, он так же есть по ссылке — www.rsdn.ru/forum/job/4316931.1.aspx

Добавлю что вспоминать реализацию blocked queue, и вообще вспоминать все связанное с concurrency было явно лишним. Что впрочем логично. Даже при наличии 15 минут на задачу — врядли удастся это написать на бумажке и еще обсудить. Ну и различные красно черные деревья тоже пожалую оверхед — хотя в целом наверное может быть задача где они будут оптимальны.

Задач типа «выставленные биты в числе» тоже не было — опять же на мой взгляд логично, ибо слишком специфично. Хотя опять же наверное может быть более общая задача где это можно применить.
Но задачи имеют же не одно решение :)

Так же добавлю, что вопросов связанных со спецификой определенного языка программирования не было.

— Собеседование проходило в гостинице Марриот.
Было 6 соискателей и 5 интервьюверов плюс сам Mat.
Первые минут 30 Mat рассказывал о Зинге и давал советы по интервью, основныъ советов было три
— внимательно слушать что говорят, чтобы не начать решать не ту задачу (для меня оказалось актуально — ибо первую же задачу я понял не полностью, и минут 5 потратил в пустую
— начинать с простых решений
— коммуницировать с интервьюверами, а не молча писать на бумаге решени (для меня опять же оказалось актуальным — если первых четыре интервьювера я нормально общался, то с пятым — постфактом прогнав по памяти, понял что 80% смотрел в бумагу и рассказывал решение бумаге, а не человеку)

Из интерестного — рассказал что у них есть отделения в 5 городах в данныз момент
Los Angeles
San Francisco
Austin, Texas
Dallas, Texas
Baltimor
В некоторых находятся команды которые они недавно купили, например команда которая дела Цивилизацию

Выросли сейчас до 2000 человек, планирует набирать по 150-300 каждый квартал (??? мог не правильно понять)
Так же сказал что они уже тут три дня и некоторым сделали оффер уже.
Сказал, что с каждым поговорит от 3 до 5 интервьюверов, и мол количество ничего не значит.

У каждого соискателя была своя комната — обыкновенный номер с туалетом и прочим, из которого убрали кровать и поставили туда большой стол с парой стульев.
Система такая — ты находишься в этом номере, к тебе заходит интервьювер на 35-40 минут, потом 15 минут перерыв ты один в комнате (погулять вокруг стола, попить воды, полежать в кресле, посмотреть альбомы — потом следующий
На столе была вода, и так же 5 книжек — фотоальбомов с описаниями на каждый город из перечисленных выше

Вопросы можно разделить на четыре типа

1 — работе вообще — почему ты этим занимаешься, как давно, какие интересные проекты, какой челенж, чем хочется, почему хочется, вообще о индустрии
2 — логические задачи — все задачи я до этого либо знал, либо просто о них слышал
3 — задачи на написание кода — т.е. есть некая задача, нужно ее решить. Половина из них фактически нужно сказать какую структуру данных лучше юзать и проделать некоторые операции над ней, вторая просто написать алгоритм.
4 — задачи общего IT характера — вот есть такая проблема как решать или вот такой процесс — раскажи о нем подробнее, или вот такая система — как ее организовать

Нужно заметить по пункту 3 — явно я написал дай бог строчек 5 кода, все остальное я собственно скорее чертил блок схемы и рассказывал как это будет работать

Первые три интервьюера спрашивал какие либо 3 пункта из четырех, с четвертым мы говорили только о 1 пункте, с пятым только о 3-ем.

Совет — возмите типа шоколадки чтоли себе. Ибо к пятому собеседованию было уже откровенно тяжеловато и я был бы не прочь подкрепиться.

Последние пару минут все интервьюверы предлагали задавать им вопросы.
Начали примерно без пятнадцати два, закончил я в пол шестого.

Общий результат — общение с первыми четырмя оцениваю на 9 из 10и, ну может на 8. Не решил одну логическую задачу — вернее нашел решение, близкое к оптимальному — но не оптимальное С пятым хуже — собственно было две задачи на написание кода, одну провалил, вторую процентов на 80 сделал.

После пятого мы поговорили уже с Mat-ом немного.
Он сказал что они тут еще три дня (еще 35 или 45 соискателей), в понедельник они уже в США и собственно с понедельника до среды он даст ответ.
Причем сказал так интересно — что если нет — то скорее в понедельник, если да — то скорее в среду.
Ну не будем ждать быстрого ответа

Когда я вышел — уже никого из других соискателей небыло.

Достаточно интересно сколько у кого было интервьюверов, и дали ли кому-то ответ в тот же день??

Английский — у трех очень понятный и медленный, один говорит достаточно быстро — но мы с ним в основном на тему алгоритмов говорили (ну либо я говорил) — было не сложно, у одного не очень понятное произношение — но правда он был пятым, поэтому возможно это моя усталость просто.

Само проведение собеседования очень понравилось — все было понятно, логично и комфортно. Хотя все же пять интервьюверов с непривычки тяжело. Ну может кто и за 3 беседы проходит

Из замечаний к самому себе

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

P.S. Поговорил с Mat-ом про relocation package — оплата билетов для семьи, 2 месяца аренды квартиры рядом с работой плюс 4000 долларов на расходы.
P.P.S. Спросил одного интервьювера что он думает по поводу Erlang — общий ответ был такой — эрланг это хорошо, но во первых он считает что просто нету необходимого им количества программистов на рынке которые уже знаю эрланг, и плюс он не уверен что переобучение существующех пройдет хорошо — потому что сменить парадигму программирования будет сложно. Поэтому может быть локально и в узких местах, но глобально нет.
Ответ написан
Комментировать
kiRach
@kiRach
Так взяли или нет в итоге?
Ответ написан
Комментировать
@YoungSkipper Автор вопроса
Ага спасибо.

5) для класса final означает не возможность переопределить его любой метод, для метода означает что нельзя переопределить его, final переменные могут быть назначены только однажды
6) метод intern() смотрит есть ли данныя строка в string poll и возвращает ее, в противном случае создает строку в string poll и так же возвращает. Все или еще что-то нужно сказать?
8) я бы не стал бы писать, я бы словами рассказал что можно сделать табличку для каждого байта, и побайтно бы пройтись. ну и уточнил что мы экономим память или скорость. Сказал бы что можно и без таблички, но там будут страшные маски которые не думаю что имеет смысл вспоминать, ну и классический метод бы упомянул которые result += x & 1; x >>>= 1; если оное имело бы смысл
Ответ написан
@YoungSkipper Автор вопроса
Реализовать copy-on-write ArrayList (всего четыре метода — void add(int indx, int item), int get(int indx), void remove(int indx), int size()).
Ответ написан
Комментировать
@Postsantum
Что в итоге спросили то?
Ответ написан
@YoungSkipper Автор вопроса
И всем спасибо.
Ответ написан
Комментировать
@aliaksandrbudnikau
Привет я тут отснял роли и собираю снять еще по теме. Может кому будет полезно.
https://www.youtube.com/watch?v=IyPaSUFrhaM
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы