Как и у всех разработчиков, у меня настал период затишья. Проект подходил к концу, задач практически не было, хотелось выше зарплату, ну и пошла получать свой заветный job offer.



Так вышло, что некоторые собеседования занимали 2-3 этапа, и я накопила парад вопросов, которыми спешу с Вами поделиться.

Психологические вопросы




Представители отдела кадров и не IT-руководители качественно выполняют свою работу и тоже хотят тебя о чем-нибудь спросить, но некоторые из них удивляют меня все больше и больше. Руководитель одной из контор устроил мне даже блиц-опрос с таймером. Если раньше обходились двумя вопросами: “Кем Вы видите себя через 5 лет?” и “Что Вас не устраивает на старом месте работы? Сейчас же, все вокруг только и говорят, что о психологии, вот и появляются подобные вопросы.

Мои любимые, простенькие короткие вопросики:
— “Вы конфликтный человек?”
— “Допустим у Вас конфликт, как вы будете его решать?”
— “Если в pull-request вы не согласны с коллегой, какие Ваши действия?”
— “Как часто вы пьете чай на рабочем месте?”
— “Как вы решаете споры в команде?”
— “Опишите работу вашей мечты”
— “Опишите рабочее место Вашей мечты”
— “Если бы вы выиграли в лотерею кругосветное путешествие длиной в год. Какова вероятность, что после приезда вы пойдете на прежнее место работы?”

Однажды мне прислали психологический тест, состоящий из 2 частей в общей сложности на 300 вопросов, потому что: «Данная вакансия предполагает конкурсный отбор в 3 этапа — 2 тестирования по электронной почте (психологическое и профессиональное) и собеседование (очное или скайп, как вам удобно)»

Естественно все 300 вопросов я описывать здесь не буду, предоставлю просто ссылочку на репозиторий с этими тестами (тесты). Но прикреплю тут Вам некоторые вопросы.

Первый тест. Выбрать вариант ответа
  1. Моя память не меняется заметно со дня на день:
    а) верно
    б) не уверен
    в) неверно
  2. Даже в обществе знакомых людей меня иногда охватывает чувство одиночества и ненужности никому:
    а) верно
    б) нечто среднее
    в) неверно
  3. Я испытываю беспокойство, как будто я что-то хочу, но не знаю, что:
    а) очень редко
    б) иногда
    в) часто
  4. Если бы я держал в руках заряженное ружье, то чувствовал бы себя нервозно до тех пор, пока не разрядил бы его:
    а) верно
    б) нечто среднее
    в) неверно
  5. Слово «собака» так относится к слову «кость», как слово «корова» к слову:
    а) молоко
    б) трава
    в) соль
  6. Разыскивая какое-либо место в чужом городе, я:
    а) просто спрашиваю у людей, где это место
    б) бывает по-разному
    в) беру с собой карту и ищу это место сам
  7. Если я собираюсь на поезд или на самолет, то становлюсь несколько возбужденным, напряженным и тревожным, даже если знаю, что у меня еще есть время:
    а) верно
    б) бывает по-разному
    в) неверно
  8. Я считаю, что люди должны хорошо подумать, прежде чем осуждать мудрость прошлых поколений:
    а) верно
    б) не уверен
    в) неверно
  9. Я всегда очень старательно контролирую, в каком состоянии возвращаю людям вещи, взятые на время, и в каком они их возвращают мне:
    а) верно
    б) бывает по-разному
    в) неверно
  10. Шутки на тему смерти в разговоре вполне допустимы и приличны:
    а) верно
    б) не уверен
    в) неверно
  11. Способности и черты характера, унаследованные от родителей, являются более существенными, чем это признают многие люди:
    а) верно
    б) не имею определенного мнения
    в) неверно
  12. Если бы я мог свою жизнь начать сначала:
    а) я хотел бы ее спланировать иначе
    б) не имею определенного мнения
    в) в основном я хотел бы прожить ее так же
  13. Мне доставляет удовольствие отпускать беззлобные шуточки, которые никому не приносят серьезного вреда:
    а) верно
    б) бывает по-разному
    в) неверно
  14. Я переживаю, если кто-то думает обо мне плохо:
    а) едва ли
    б) возможно
    в) весьма вероятно
  15. Бывает, что все утро и значительную часть дня у меня не возникает желания с кем-нибудь пообщаться:
    а) никогда
    б) иногда
    в) часто


Второй тест. Выбрать Да/Нет
  1. Вы все чувствуете острее, чем большинство других людей?
  2. Иногда Вы с удовольствием слушаете неприличные анекдоты?
  3. В Вашей жизни были случаи (может быть, только один), когда Вы чувствовали, что на Вас кто-то воздействует гипнозом?
  4. Иногда без причины (или даже при неприятностях) у Вас бывает приподнятое настроение, чувство радости?
  5. Вам часто случалось подчиняться родителям, даже если Вы считали, что они неправы?
  6. Большую часть времени Вы чувствуете общую слабость?
  7. Обычно Вы удовлетворены своей судьбой?
  8. У Вас такое впечатление, что Вас никто не понимает?
  9. У Вас бывает чувство, что трудностей так много, что преодолеть их невозможно?
  10. У Вас редко болит голова?
  11. У Вас более чем достаточно причин для беспокойства.
  12. Обычно Вы осторожны с людьми, которые относятся к Вам дружелюбнее, чем Вы ожидали.
  13. Вам приятно иметь значительных людей среди своих знакомых, потому что это увеличивает Ваш престиж.
  14. Вам неловко входить в комнату, где уже собрались и разговаривают люди.
  15. У Вас бывают периоды, во время которых Вы необычайно веселы без особой причины.


На одном из интервью мне устроили вечеринку вопросов.
Чтобы легче было воспринимать диалог введем обозначения: Разработчик (Р) и Кадровик (К)

Вопрос № 1
К: Ночь, трасса, остановка. На остановке стоит мужчина твоей мечты, друг, старушка. Ты едешь на двухместной машине и можешь взять всего лишь одного человека. Твои действия?
Р: Заберу друга
К: Хорошо, а теперь представь, что мы “Out of Box”. Твои действия?
Р: Что Вы понимаете под “Out of Box”?
K: Давай представим, что ты программист, как бы ты действовала?

(Тут у меня был пинг секунд так на 30)

Р: Посмотрю свойства объектов и решу, что с ними делать

Правильный ответ этой задачи: “Отдать машину другу, он увезет бабушку, а сама останешься с мужчиной своей мечты. Потому что от мечты отказываться нельзя”

Вопрос № 2
K: У тебя есть друзья?
Р: Ну да
К: Сколько у тебя друзей?
Р: Близких или не очень?
К: Близких
Р: Допустим 3
К: Назови их Имя и Фамилию

(Кадровик берет листок и готовится писать под диктовку)

Р: Листкова Марина, Костенко Артем, Мартынова Дарья
К: Я встретила на улице Листкову Марину, что она мне скажет о тебе?
Р: ЭЭЭ, что?
К: Назови три своих качества, которые Марина может о тебе сказать?
Р: Ответственность, усидчивость, коммуникабельность
К: Я встретила на улице Костенко Артема, что он мне скажет о тебе?
Р: Мммм, Ответственность, усидчивость, коммуникабельность
К: Я встретила на улице Мартынову Дарью, что она мне скажет о тебе?
Р: Пускай будет тоже самое

(Hr все записал на листочке и сразу следом полетел Всеми любимый нами вопрос)

K: Кем вы видите себя через 5 лет?
Р: Лидом
К: Как вы можете быть лидом, если Ваши друзья не назвали ни одного качества лидера?
(Дальше додумывайте сами, что бы вы ответили. Но подход был очень интересный)

Вопрос № 3
К: Сколько ты хочешь по зарплате?
Р: N-сумма
K: А если я тебе буду платить не каждый месяц, а в конце проекта N+R сумму?
Р: N+R будет меньше, чем если я каждый месяц буду получать по N.
K: Хорошо, а если я тебе еще добавлю?
Р: Если сумма в конце, будет выше чем месячная за этот же период, то соглашусь.
К: То есть вы работаете за деньги?

(Интересно то как =) )


Технические вопросы




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

70% вопросов и задачек, которые представлены в ссылках выше, как раз задают на собеседованиях ( Я говорю про core ). Но пока я общалась с разными лидам, смогла выделить парочку, которые показались мне где-то интересными, а где-то странными.
Однажды мне попался человек, который спросил: “Чем heap отличается от кучи?” и на полном серьезе смотрел на меня и ждал ответа.

Перечень вопросов:
1. Спрашивать про отличие LinkedList и ArrayList уже не модно, поэтому наткнулась на новый подход.
Зачем нужен LinkedList в Java, если можно заранее зарезервировать место у ArrayList вначале? (где, 0 – N – места для резерва). (Очень странный вопрос, но лид был из людей, которые «за поговорить»)


2. Зачем в Java нужен HashMap, если я могу написать функцию, которая реализовывает HashMap? (На мой взгляд такие вопросы на собеседовании задавать странно. Зачем структуру данных и алгоритмы мешать в одну кучу)

3. Как сделать так, чтоб из HashMap никогда не получить значение? (Очень хороший вопрос, сразу видно кандидата, который не просто так выучил: “Если переопределили equals, то переопредели и hashCode”)

4. Любимый Exception. Естественно, все хотят, что-нибудь про него спросить. Обычно дают задачки, либо просят рассказать зачем, куда и сколько. Но вот один человек удивил: «Зачем в джаве придумали эти иерархии, если можно просто сделать один?» (Рассказы про логи и распределение его не устроили, так я и не знаю какого ответа человек ожидал)

5. Задачка: Пользователь указывает сколько чисел после запятой он хочет видеть на экране. Функция, которая возвращает нам число, находится во внешнем API и не позволено ее модифицировать. Допустим процесс вычисления при запросе вывода больше 3 символов сильно замедляется. Как реализовать наше приложение?

Забавная задачка, чтоб посмотреть, как рассуждает кандидат. Мне она понравилась)

6. Задачка: В API находятся данные, которые необходимо получить в JAR2. JAR2 не имеет прямого доступа к API, зависимость указана стрелочками, зависимости менять нельзя. Каким способ передать данные от API к JAR2.



Тоже очень хорошая задачка, на рассуждение.

Вывод


Собеседования — это интересно. Лиды: проявляйте уважение к кандидатам. Кандидаты: отвечайте на вопросы четко и ясно. Всем желаю найти свою команду, ведь команда — это слаженный механизм, от работы которого зависит успех проекта.

Комментарии (78)


  1. JC_IIB
    16.09.2019 20:30
    +4

    Мне кажется, или вопросы HR — это полный бред? И почему они сходу «ты»-кают? Про пулл-реквест еще куда ни шло, но какое вам дело, сколько у меня друзей и каковы их ФИО, в самом деле?

    То есть вы работаете за деньги?

    Шедевр. «Работать в нашем банке Банке — большая честь!» (С)


    1. iFebrity Автор
      16.09.2019 21:21
      +1

      Полный бред — эти вопросы. Я поэтому и захотела рассказать о них)
      По поводу «ты» — они уточнили, можно ли так обращаться.


      1. polar_yogi
        17.09.2019 12:13

        По поводу анкет на 300 вопросов, насколько я знаю (как-то видел процесс обработки) на бланк с ответами накладывается трафарет, считаюся галочки и выводы делаются по неким шаблонам, типа:
        трафарет А — меньше Х галок — недостаточно честные ответы
        трафарет Б — больше Н галок — неуверен в себе
        и т.п. Т.е. делаются выводы по косвенным признакам, поэтому опрос часто с таймером — чтобы не слишком задумывался. О точности судить не берусь.


        1. 4eyes
          17.09.2019 14:05

        1. MaxVetrov
          17.09.2019 18:42

          Наверно есть еще вариант — Устал отвечать на кучу повторяющихся вопросов.)


    1. 0xd34df00d
      17.09.2019 02:28

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


  1. ilynxy
    16.09.2019 20:40

    А какой ответ в задаче N5?


    1. iFebrity Автор
      16.09.2019 21:38

      один раз посчитать и результат в String, а потом просто резать


      1. Neikist
        16.09.2019 21:46

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


      1. Source
        17.09.2019 18:23

        Один раз посчитать с какой точностью? Плюс не указано насколько сильно деградирует скорость от кол-ва знаков… Может 50 знаков посчитать займёт 5 лет xD


      1. Borz
        17.09.2019 20:13

        а как же округление?


      1. Donquih0te
        18.09.2019 06:35

        Мне кажется про BigDecimal тоже уместен ответ:)


  1. DmitriyTitov
    16.09.2019 20:45
    +7

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

    А почему во всех ИТ-конторах обязательно строят «команды»? На всех собеседованиях и во всех вакансиях всегда рассказывают про «команду». Чем плох «коллектив», который меньше про эмоции, но больше про профессионализм.
    На мой взгляд, в коллективе все работают за деньги и карьерный рост, и это правильно. А в составе команды хорошо играть в спортивные игры, где сам факт принадлежности к команде является мотивацией.


    1. iFebrity Автор
      16.09.2019 21:14

      Без разницы как называть, хоть «коллективом» хоть «командой». Главное, чтоб все сработались и делали нормальный продукт на выходе.


      1. Nookie-Grey
        16.09.2019 22:24

        у команды более положительная эмоциональная окраска, чем у коллектива


    1. mad_nazgul
      17.09.2019 06:59

      Потому что пришло время «больших батальонов».
      Да управлять через коллективную ответственность гораздо проще. :-)


    1. Alg0r
      17.09.2019 14:25

      Коллектив — это объединение людей на одной территории для совместной деятельности. Команда — это коллектив, мобилизованный для решения одной, общей задачи. Команда производительнее коллектива.


      1. DmitriyTitov
        17.09.2019 14:46

        А может быть всё проще: просто очередной переводное слово, невпопад взятое из англоязычной речи? Для всех этих «оферов», «печенек», «митингов» и прочих элементов новояза есть вполне нормальные, устоявшиеся слова.
        Я ещё понимаю, когда бытовые маршрутизаторы называют «роутерами» — вроде звучит попроще, сойдёт.
        С другой стороны «команды», «лиды», «сеньёры» или конторы в которых из десяти человек шесть — разные «директора» — это всё бездумная калька из западной деловой культуры, которая в российских компаниях смотрится глупо. А по задумке, наверное, всё это должно сплачивать коллектив.
        И да, к примеру, я работаю в коллективе, распределённом по разным территориям, решающим при этом одну общую задачу.


        1. Alg0r
          17.09.2019 15:12

          Слово «команда» — французского происхождения, в русском языке уже 4 века присутствует. У слова «коллектив» корни еще глубже, в латыни. Так что нет, это не новояз. Под территорией сейчас уже нужно понимать не только физическое присутствие.
          А вот что касается общей задачи — она может стоять и перед коллективом. Если коллектив мобилизуется для совместного ее решения — он становится командой.


        1. webkumo
          18.09.2019 12:25

          Команда — группа лиц, работающая над одним проектом/подпроектом… в общем имеющая общую задчу. Коллектив — это вот прям все сотрудники, включая бухгалетров и уборщиц.


  1. capjdcoder
    16.09.2019 20:52
    +2

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

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

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

    Тут уместны только слова министра Лаврова.


    1. iFebrity Автор
      16.09.2019 21:32
      +1

      не знаю, я не пошла на след. туры, мне одного хватило))


    1. WhisperingOak
      17.09.2019 09:22

      На мой взгляд, это как-то через чур

      Через что, простите?


      1. Arty_Fact
        17.09.2019 09:26

        Ну есть же «чур меня», вот через него, наверное.


      1. Xobotun
        17.09.2019 15:06

        Даль говорит, что чур – граница. Видимо, capjdcoder ссылался на министра иностранных дел неспроста – тот тоже границей ведает! :D


  1. MikeDeblin
    16.09.2019 21:31
    +2

    Я бы повнимательнее осмотрелся в этом офисе.
    Особенно пристально высматривая все что связано с фамилией Хаббард.
    Больше на секту похоже, чем на собеседование. И особенно к тем у кого опросник на 300+ вопросов.


    1. iFebrity Автор
      16.09.2019 21:33

      Это точно, сразу отметаешь такие варианты.


    1. alexzeed
      17.09.2019 10:05

      Ну почему, просто может быть такая методолгия у кадровиков, всем дают и смотрят что получится. У меня на первом моем собесе был IQ тест на пару сотен вопросов, часа за полтора решил. Сразу после универа (прикладная математика) решалось легко, молодой был :) В награду получил удивленное лицо выдавшей мне эти вопросы («О, вы уже все?») и отметку в результатах собеса «кандидат имеет высокий IQ». Устраивался junior embedded developer'ом в небольшую и вполне адекватную на тот момент контору, но HR специалист у них была внешняя.


    1. dididididi
      17.09.2019 17:26

      я однажды три дня проходил собеседование, там тоже были тесты и игры в команде. БЫло интересно типа тимбилдинга))) НО мне потом дали подробный отчет, где обозначили мои сильные и слабые черты. ТАкое тепа бесплатное сверхглубокое психологическое тестриование.


  1. ooprizrakoo
    16.09.2019 21:47
    +2

    Технические вопросы по джаве, которые задают на собеседованиях, пора уже выпускать в виде книги.

    Когда вы будете интервьювером, вас сильно удивит, что при огромном количестве тысячу раз повторенных вопросов, люди с опытом будут «лажать» в самых распространенных вопросах. А если некоторые кандидаты и прочитали что-то — насколько это было для них бесполезно.
    Например, спросите про сложность какого-нибудь Qsort, человек гордо скажет «логарифмическя!». Ок, спросите вы, «а в терминах О-нотации это как записать?»
    Тут кандидат зависнет.
    Некоторые всё-таки отвисают, и пишут O(log n). Некоторые, после уточнения, напишут O(n log n). Но после вопроса «а откуда взялась n перед логарифмом? — кандидат все-таки зависнет. И даже если не зависнет, а ответит правильно, вопрос в какую сложность может выродиться этот алгоритм в худшем случае набора данных, лишь 10% от исходной воронки ответят про n^2.

    P.S. этим комментом я не пытаюсь развязать холивар между „практиками“ и „теоретиками“, нужно или не нужно знать и уметь писать/оценивать сложность алгоритмов. Просто привел зарисовку из жизни.


    1. iFebrity Автор
      16.09.2019 21:58

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


    1. 0xd34df00d
      17.09.2019 02:31

      Есть какая-то ирония в вашем комменте, если учесть, что квиксорт можно реализовать так, чтобы худший случай тоже был O(nlogn). Ценой чуть большей константы, естественно.


  1. monester
    16.09.2019 21:59

    А какой был правильный ответ на вопрос «Чем heap отличается от кучи?». Может то, что это русский/английский термин?


    1. hddscan
      17.09.2019 01:08
      -1

      heap это организация данных(или памяти), а кучу Барбос навалил.
      Шутка :)


  1. Kanut
    16.09.2019 22:50

    Очень много хороших вопросов. И хороши они тем, что когда их слышишь, то сразу понимаешь что с этой фирмой тебе совсем не по пути :)


  1. vassabi
    16.09.2019 23:22

    Не понял условие задачи 6 — в чем именно трудность передачи и какие именно данные нужно передавать?


    1. iFebrity Автор
      17.09.2019 09:14

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


      1. adictive_max
        17.09.2019 11:29

        Я правильно понял, это вопрос про DI, но сформулирован настолько «в обход», что его суть приходится угадывать?


        1. Neikist
          17.09.2019 11:53

          Вряд ли, явно же указано что менять зависимости нельзя. Т.е. интерфейсы там вводить и т.п.


          1. adictive_max
            17.09.2019 12:13
            +1

            Ну если так, то тогда на вопрос «Каким способ передать данные от API к JAR2» ответ будет «взять и передать». В смысле дёрнуть API в war, а потом передать в функцию из jar1, которая вызовет функцию из jar2. Но тогда я вообще не понимаю, в чём смысл задания.


            1. vassabi
              17.09.2019 12:16

              вот и я в недоумении — чего хотел автор задачи?
              Разве что — это такое задание «на сообразительность» (типа крышек люков), чтобы увидеть, какие вопросы я начну задавать, как буду уточнять ТЗ и т.д.


              1. iFebrity Автор
                17.09.2019 13:01

                Мне тоже показалась, что явного ответа нет и это «на сообразительность». Путь с DI их устроил)


  1. questor
    16.09.2019 23:55
    +1

    Судя по "от мечты отказываться нельзя” — это возврат к заданиям, которые нужно тупо запомнить, типа как в тюремной культуры нужно просто знать ответы на все эти типовые загадки про "два стула" и уметь на лету понимать, как ответить на похожие. Раньше было про люки, сейчас уклон в психо. Не могу сказать, что по этим штукам можно что-то хорошо понять про кандидата нужное, просто видимо правду говорят, что кандидатов так много, что без разницы как их отклонять, хоть гаданием по ромашке.


  1. hddscan
    17.09.2019 01:10
    +2

    Как вы можете быть лидом, если Ваши друзья не назвали ни одного качества лидера?

    Так и запишем, лидеру не нужны
    Ответственность, усидчивость, коммуникабельность

    Складывается впечатление, что качества лидера это некий сферический конь


    1. akdes
      18.09.2019 15:09

      да не… просто такие «интервьюверы» находят или выдумывают вопросы, которые предназначены определить супер интелигентного человека. По факту использование таких вопросов, это:
      а. Лень
      б. Необходимость в отчёте перед начальством — «Смотрите, я составил каталог вопросов, который поможет...»
      в. что-то ещё, не имеющее реального большого смысла.

      Идеологическая цель этих вопросов: выявить качества человека, за как можно короткое время. К сожалению, это недоразвитость интервьюверов, задавать эти вопросы. Ибо нужно вести диалог или задавать не прямые вопросы о человеке, отвечая на которые он раскроется и ты только успевай делать себе записки, типа «не боится резких решений, нужно узнать о стрессоустойчевости» и т.д.
      И оооочень важно сопостовлять всё на свою фирму, куда принимаешь на работу. Иначе толку в этих всех вопросах, когда работа проходит в подвале в паре с двумя интравертами си-шниками, которых заставили писать на джаве?!
      Там не нужно составлять психотип человека — который так и так никто не делает, но вопросы зачем-то задают. Нужно понять адекватность и на сколько человек реально поможет компании.

      Моё личное имхо по опыту. Если задел кого — не хотел — другого опыта не было.

      Я лично, на днях спрыгнул с процесса резюмирования в одну большую компанию, на позицию Cloud Architect — после отправки резюме, мне стоило пройти математические и тесты по логике. Даже заглядывать в них не стал.
      Скорее всего я бы эти тесты не прошёл на отлично, так-как более 10 лет на рынке, а они заточены на отбор юниоров. Я не хочу нагружать себя информацией, которую любят использовать в тестах и считаю, что могу дать намного больше, рассказывая о своей практике, которая имеет намного более весомые факты о моей проф деятельности.

      А в итоге многие хотят и на ёлку и ж…
      И тут я понимаю, что первоначально прийдётся встать на одну ступень с юниором, который хорошо учился, и скорее всего, станет в скором времени супер крутым разработчиком и т.д., но нет… и потом доказывай, почему ты лучше того парня, который прошёл тест на 99%, а ты нет…

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


  1. KonstantinSpb
    17.09.2019 04:20

    Правильный ответ этой задачи: “Отдать машину другу, он увезет бабушку, а сама останешься с мужчиной своей мечты. Потому что от мечты отказываться нельзя


    Воу, постойте-ка, от мечты отказываться нельзя — это ограничение (constraint), о котором в задаче ничего не говорилось, а раз уж мы решаем задачу как программист, то без формализации требований и ограничений не обойтись, иначе мало ли какие у заказчика хотелки, программист может решить взять друга, а не человека своей мечты, т.к. у него может быть требованием «от друзей отказываться нельзя» и оно приоритетнее «от мечты отказываться нельзя „

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

    Думаю, это покажет Вас с лучшей стороны, т.к. не ведетесь на общепринятые ответы, а максимально ответственно подходите к решение поставленной задачи. Типа out-of-the-box thinking, а на самом деле здравый смысл и внимание к деталям.


    1. deitry
      17.09.2019 13:40

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


      1. akdes
        18.09.2019 15:15

        Вопрос не говорит о «привлекательном незнакомце». Тут всё норм. Человек мечты заведомо чёткая информация.


    1. klim76
      17.09.2019 16:56

      у них наверное и ТЗ все так же финализированы
      «Ой, а от мечты нельзя отказываться!»


    1. DeniSun
      17.09.2019 17:22

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


    1. webkumo
      18.09.2019 11:00
      +1

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


      А теперь посмотрим на задачу с совем другого угла:


      • у друга может не быть прав (нарушение законов, вплоть до уголовной отвестственности)
      • при чём тут какая-то незнакомая бабушка (не, ну реально, кто-то останавливался ради незнакомой бабушки, чтобы куда-то там её подбросить? не верю (с))
      • х мечты это конечно хорошо, но у меня "ипотека, жена, дети", на кой мне подставляться и подвергать риску отношение и состояния зависимых от меня объектов?!


  1. szelga
    17.09.2019 06:15

    К: Как вы можете быть лидом, если Ваши друзья не назвали ни одного качества лидера?
    (Дальше додумывайте сами, что бы вы ответили. Но подход был очень интересный)
    «потому что с друзьями я дружу, а не ДОМИНИРУЮ-ВЛАСТВУЮ-УНИЖАЮ.» шах и мат, хрюши.


  1. sergey-gornostaev
    17.09.2019 07:52

    Невозможно удержаться от двух цитат!
    image
    image


    1. JustDont
      17.09.2019 10:20

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


  1. Artalus
    17.09.2019 09:39

    Люблю в таких случаях вспоминать свое очное собеседование в один московский магазин электрониники. Там тоже был психологический тест на 300 вопросов — сидишь, кликаешь на эти повторяющиеся "я скорее Х чем У", а рядом сидят кликают еще десяток кандидатов в менеджеры, продавцы, техники, аналитики… А когда все прокликано, тебе рассказывают, что у нас учет времени на рабочем месте по карточкам (не в офисе в целом, а в кабинете, карл!), и доступ в интернет запрещается, и никаких мобильников на рабочем месте, у нас все строго. Шел 2017й год, собеседование на разработчика С++...


    1. ooprizrakoo
      17.09.2019 11:57

      Магазин… три буквы, последняя «Х»? :-)


      1. Artalus
        17.09.2019 12:31

        английская 'x', да


        1. adictive_max
          17.09.2019 12:36

          Если это тот «Х», о котором я подумал, то теперь совершенно не удивительно, почему их сайт — это «привет из 90-х».


          1. ooprizrakoo
            17.09.2019 14:08

            да, это именно тот «Х» :)
            наглядный пример того, как работает отрицательная селекция :)


  1. A114n
    17.09.2019 10:51

    Вспомнил, как мне задали вопрос «А вы сами писали код?». Я не понял смысла вопроса. Мы немного поуточняли без результата "- Что значит сам? — Ну сам или не сам? — Но как можно не самому писать код? -Так я об этом и спрашиваю" и на этом мы собеседование закончили. Как понять этот вопрос — я не знаю до сих пор.


    1. Neikist
      17.09.2019 11:08

      Может подумали что тестовое кто то за вас делал, или на гитхабе залили себе что то чужое.


      1. iFebrity Автор
        17.09.2019 13:05

        Один раз видела парня, который в тестовом задании принес чужой код. Мы не смогли его запустить (это были времени С). Когда он пришел на собес, все встало на свои места). Ему можно было задать вопрос — «А вы сами писали код?» =)


      1. A114n
        17.09.2019 13:30

        В том и дело, что там не было тестового задания. Я просто рассказывал, что и как я вообще делал. Я и не мог понять, как можно не самому код писать, если ты рассказываешь, как ты его писал. И она мне в итоге не смогла объяснить, что имела ввиду, так что я просто ушёл.


        1. vedenin1980
          17.09.2019 14:03

          Может она имела виду писал код полностью самостоятельно или в составе команды небольшую часть? Мне кажется, достаточно было просто сказать «да, это я писал этот код»


          1. iFebrity Автор
            17.09.2019 22:26

            Разницу между самостоятельно и в составе команды не вижу. И там и там его сотрудник все равно пишет сам)


            1. vedenin1980
              18.09.2019 15:27

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


    1. stanislavkulikov
      17.09.2019 14:06

      Может быть имелось в виду: «Был ли в вашей жизни код, который вы написали сами, а не скопировали со StackOverflow?»


    1. akdes
      18.09.2019 14:21

      А может суть вопроса не в «сам» а в «А Вы писали код»? В плане реализации проектов в общем. Вопрос, который можно задать свеже испечённому юниорую.
      Вопрос странно/непонятно поставлен — факт.


  1. Maksclub
    17.09.2019 10:51

    4 вопрос по Exception: разве иерархия не для полиморфизма? То есть я могу ловить более абстрактное исключение выше, при этом ниже — могу строить логику уже на конкретных эксепшнах, логи — лишь сугубо частное применение этого всего. Кроме того для логов достаточно просто возможности создавать разные классы исключений и иерархия для этого прям не нужна.


    • я пхпшник, могу сильно ошибаться о том, как у вас там в джава устроено


    1. vedenin1980
      17.09.2019 11:57

      опрос по Exception: разве иерархия не для полиморфизма

      Не только, во-первых, начнем с того что есть Error (такие как OutOfMemory error) и Exception (оба наследуются от Throwable), первые обычно нет смысла ловить (но в принципе можно поймать, если пишешь что-то сильно системное) потому что это обычно означает такой писец, который обычное приложение уже не способно исправить, вторые стоит ловить, во-вторых, есть checked и unchecked Exception, первый банально не дадут скомпилироваться, если их не обработать.

      Вероятно, интервьер хотел услышать разбор разных типов и как с ними работают, можно еще углубиться в вопросы почему не обрабатывают error и достоинства и недостатки checked Exception, как работает try with resources, блок finally и т.п. В общем, там можно задвинуть речь минут на пять.


      1. Maksclub
        17.09.2019 20:33

        разве иерархия не для полиморфизма
        не только,… начнем с того что есть Error (такие как OutOfMemory error) и Exception (оба наследуются от Throwable)

        Ну как не только, когда разная (поли) обработка и есть полиморфизм… логика «это обрабатываем, то нет» как раз-таки очень хорошо описывает полиморфное поведение интерфейса Throwable, при том является частным и малым примером использования иерархии исключений, или я как всегда все не так понял :(


        1. vedenin1980
          18.09.2019 15:22

          Ну как не только, когда разная (поли) обработка и есть полиморфизм… логика «это обрабатываем, то нет» как раз-таки очень хорошо описывает полиморфное поведение интерфейса

          Ну можно придумать разные понимаения полиморфизма, но вообще это не совсем так. Полиморфизм это когда логика обработки отдается на откуп конкретной реализации интерфейса, а не просто разная обработка в зависимости от разного типа (она и без ООП существует). То есть когда в коде у вас

                public void func(MyInterface m) {
                    m.doSometing()
               }
          


          И вы не должны задумываеться, что будет делаться в doSometing() в том коде, а чисто передать управления реализации и получить какой-то результат. В случае когда у вас есть:

                 if(x instanseOf X) doSomething1();
                 else  if(x instanseOf Y) doSomething2();
                 else  if(x instanseOf Z) doSomething3();
          

          Это уже не совсем правильный полиморфизм (да и вообще не совсем правильное ООП), так как можно просто ввести некоторое поле тип и делать тоже самое вообще без всякого ООП.
                 if(x.type == X) doSomething1();
                 else  if(x.type == Y) doSomething2();
                 else  if(x.type == Z) doSomething3();
          


          P.S. На всякий случай catch(Exception1 e) {}… catch(Exception2 e) {} это как раз синтаксический сахар над конструкцией if(e instanseOf Exception1 ) doSomething1();, что уже не совсем чистые принципы ООП на самом деле.


          1. Maksclub
            18.09.2019 17:49

            Ну допустим я и ваш пример полиморфизма могу «поломать»:

            public void func(MyInterface m) {
                   if(m instanseOf X) doSomething1();
                   else  if(m instanseOf Y) doSomething2();
                   else  if(m instanseOf Z) doSomething3();
            }

            :) Так что вполне нормальный и хороший полиморфизм у иерархии исключений, по определению


            1. vedenin1980
              18.09.2019 18:41

              Перечитал несколько раз и так и не понял, что вы ломаете и зачем?


          1. Maksclub
            18.09.2019 17:54

            ответ на PS:

            я не писал про ситуацию

            catch() {} catch() {}

            а писал про иерархию:
            catch(GeneralException $e) {}

            когда GeneralException может иметь наследников (например 10 штук) и в слое ниже на них построен полноценный слой, но выше, где мы ловим — нам не важно


            1. vedenin1980
              18.09.2019 18:43

              а писал про иерархию:

              А я писал, например, про checked и uncheched exception и отдельно про тип error. Скажем, разделение на checked и uncheched exception нельзя просто переложить на полиморфизм ООП, потому что ничего такого в ООП нет.


  1. vics001
    17.09.2019 14:32

    «Зачем в джаве придумали эти иерархии, если можно просто сделать один?» (Рассказы про логи и распределение его не устроили, так я и не знаю какого ответа человек ожидал)

    Непонятны, вы ответили, что без иерархии нельзя написать catch(DetailedException e), а без этой конструкции придется писать if, что против принципов ООП.


  1. akdes
    18.09.2019 14:17

    Спасибо, мне не представлялось пока иметь такое количество (более 5) человеческих не технических вопросов. Почитаю на досуге.

    Про вопрос кого увезёте на машине, я считаю что ответ Вы дали верный. Тем более когда говорят «как» программист. Конкретное условие должно иметь конкретный вариант. «Правильный ответ» это лишь разлетевшееся миф история про креативно-думающего человека. На сегодняшний день, я бы ответил на этот вопрос, так:

    «Я знаком с этим вопросом, и не вижу смысла выдавать Вам заведомо правильный ответ, а отвечу с учётом постановления вопроса и моих человеческих качеств.» И какой бы ответ я не выбрал, с учётом моих моральных устоев, я бы выплюнул объяснение, почему я сделал этот выбор.

    Совет — если Вы научитесь заберать эстафету разговора у Вашего собеседника, это очень хорошо может повлиять на результат. Совет к сожалению не из принципа — прочитал научился. Могу его дать проведя кучу собеседований с компаниями и рекрутами. Однако, если у Вас есть это качество и/или отсутствует страх, это может стать очень выгодным шагом на этом собеседовании.

    А если это окажется не выгодно, боюсь, это не то место работы, где Вы хотите работать и развиваться.