LifeStreet Media

21...80 спеціалістів
Київ, Одеса, Жуковский (Росія), Оттава (Канада), Рига (Латвія), Сан-Франциско (США)

1 березня 2016 17:51

Andriy Slobodian

Запропонували мені пройти скайпом співбесіду на позицію Senior Front-End Developer ... я звісно погодився. Створили групу в скайпі і в зазначений час почали інтерв’ю. Єдине, що я зрозумів відразу, що люди знаходяться в різних локейшинах, бо хтось уже підключився, когось ще ждали. Коли нарешті всі під’єднались — я зрозумів, що почалось інтерв’ю. Було нас четверо: я і троє їх спеціалістів. Люди навіть не представились ... отой чувак, якого ми ждали, відразу попросив розповісти про свій досвід роботи. Звісно мені це не дуже сподобалось, бо хотілося б бодай мати уявлення про те, з ким я розмовляю, але я ввічливо промовчав і почав розповідати ... В ході моєї розповіді я навіть не розумів для чого я це розповідаю, бо судячи зі звуків у навушниках мене ніхто не слухав ... з часом дав їм Бог розуму зам’ютатись ... Тільки я зробив паузу — цей же чувак, котрого ми ждали (ЧувакЩоСпізнився), скинув мені ссилочку на JSFiddle, де у віконечку зі скриптом був масив з версіями продукту (щось на зразок отакого: arr = [«0.12.0», «1.222.3», «1.2.3.4.5.6.7», «2.205.23», «2.20.23», ......]) і попросив посортувати його. Це було доволі несподівано, але я і на це погодився ... Звісно, перше, що мені спало на думку, це використати нативний сортінг, я так і зробив. Коли ми побачили результати, то я зрозумів, що нативний метод JavaScript порівнює насправді строки, а не значення елементів масиву, тому ЧувакЩоСпізнився запропонував мені самостійно написати функцію сортінгу елементів. Такий підхід мені ще більше не сподобався, адже я сидів на м’якому кріслі і тримав комп фактично в руках ... я не був готовий багато кодити, але перебирати не приходилось ... тому я скоренько скрутився в букву «Г», закинув ноут собі на пуза і почав шось кодити. Звіно готового алгоритму в мене не було, бо погодьтеся далеко не щодня доводиться сортувати масиви отакого типу на чистому JavaScript. Я почав міркувати, як його робити ... відразу зрозумів, що всі строки версій мають крапки, тобто з допомогою нативного метода split() можна отримати масиви з цілими числами і далі їх якось потрібно порівнювати. Так я й почав писати своє рішення ... Звісно отак з голови відразу писати правильний код ніхто не зможе в даному випадку, тому і я не став винятком ... я створив окрему функцію, котра з двох чисел повертає більше, далі почав писати функцію, котра з двох масивів типу [1,22,3,12] і [1,33, 43] повертатиме «більший» ... ну хвилин 10 я на це уже витратив, проте ще не завершив задачу ... тут ЧувакЩоСпізнився подивився, що розмова у скайпі триває уже 30хв, раптово мене перервав і сказав: «Чувак, немає сенсу ждати доки ти зробиш, бо ти нам уже не підходиш ... ми шукаємо людину, котра знає готовий алгоритм».

Висновок: якщо у вас немає 10 років практичного досвіду роботи на JavaScript, немає навіть року, ви не знаєте жодного фреймворка, ви навіть не знаєте, як виглядають браузери ІЕ5, ІЕ5,5 і ви навіть не знаєте про існування HTML i CSS ... , але ви знаєте на пам’ять готовий алгоритм для розв’язання даної задачі — вас візьмуть в дану компанію. Якщо ж у вас кучу років практичного досвіду за спиною, але ви не знаєте на пам’ять алгоритму сортування наведених вище масивів — то ви лох ... в LifeStreetMedia вам нема чого робити.


LinkedIn

16 коментарів

Підписатись на коментаріВідписатись від коментарів

Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.
Звісно отак з голови відразу писати правильний код ніхто не зможе в даному випадку, тому і я не став винятком

Ви, можливо, не повірите, але існують люди, які саме в данному випадку здатні з голови відразу написати правильний код :) І витратити на це хвилин 6.

При всьому тому, що організація інтерв’ю дійсно могла бути кращою (очікування, не представились і т. п.).

Але на таку задачку витрачати більш ніж 10 хвилин — це забагато.

Писати код під час інтерв’ю — це досить поширена практика. Більше того, є навіть люди, зокрема, Джоел Спольськи, які вважають, що співбесіда на позицію розробника, де не пишуть код — це доволі погана співбесіда, і відповідно, компанія/команда теж, імовірно, не високого рівня.

Підтримали: Данило Дутка

Любая задача занимает от 5 до 10 минут, если делаете ее не вы.

з одного боку, забагато драматизму. плюнути та йти кудись у інше місце, яке не буде викликати батхерту(без сарказму, якщо щось бісить вже на співбесіді, то у компанії працювати, мабуть, було б складно — нащо махохізм?)
з іншого боку, «тестові завдання у прямому ефірі» завжди дивували. бо це скоріш на поведінку в умовах стресу тестування ніж на знання. і якщо компанія цілком серьозно покладається на таку практику, то, може, там щотижня горять дедлайни та нічний кодінг — типовий кейс? тож і тестують людей на поведінку у таких випадках?
PS хоча, ймовірніше, що інтервьювер просто не знає інших шляхів для проведення співбесіди.

у будь-якому разі, нащо воно вам, Андрію, з такою різницєю у світогляді?

Спасибі, пане Євгене. Солідарний з вами на 100%.

Чота ржу. Прочитал этот полный драматизма, отдавленного ноутом живота и боли прищемленного ЧСВ пост. Во-первых спасибо за критику — на счет шума и неожиданности задачек. Исправимся. А во-вторых — после упомянутого интервью была у нас беседа с тестировщиком. Послушал он и спросил — а что там у вас за такая убойная задачка. Ну я и рассказал. На что тестировщик сказал примерно такое — «так а что там сложного? в сорте посплитать строки и сравнить поэлементно» Тестировщик, Карл. Без десятилетнего опыта, с дипломом судостроителя. На самом деле есть нетак много задач еще проще, которые позволяют проверить способность человека писать алгоритмы, а не подставлять УРЛ сервиса в конфиг грида. И все вот это драматичное описание страданий и тяжелых размышлений говорит лишь об одном — не способен. В-третьих — не звезедай, я слышал эту фразу — Ромчик сказал «ми шукаємо людину, яка здатна писати алгоритми». Большое спасибо за отзыв.

Знаєте, якщо раніше я ще намагався себе переконати в тому, що можливо я щось не так зрозумів чи мені здалося, то після вашого коментаря все остаточно стало на своє місце. Поясню: нормальній людині мало б стати як мінімум соромно за свою поведінку, а коли людина чогось соромиться, то вона аж ніяк не буде цим вихвалятися. Те, що ваш тестер спитав, що ж то за така ситуація свідчить тільки про те, що ви, знаючи, що облажались повністю зі співбесідою, побігли відразу висміювати/вихвалятись/прибріхувати/виправдовуватись ... Тобто це ще раз доводить тільки те, що совість у вашій компанії зайва чеснота. Я щиро вдячний своєму ангелу-охоронцю за те, що уберіг мене від вашого товариства ще на етапі співбесіди.

PS: дуже хочеться вірити в те, що ви насправді кращі люди ... на вас, мабуть, згубно впливає співпраця з вашими МОСКОВСЬКИМИ колегами ;)

Так, тут я мушу погодитись — нам теж пощастило )

привет тебе! чотаржун :D

это ты тексты вакансий сочиняешь? Чотаржун

Было собеседование в офисе в Киеве. О собеседовании никто не знал, разбудили заспанного нашего чувака из Калифорнии. Задача была аналогичная на сортировку, но без версий, а проще. Начались пляски, а без сорта, а без этого, видимо это киллер-фича интервьювера. Мнениями успешно сошлись, друг другу не подошли.

Підтримали: Oleksandr Shvets, Andriy Slobodian

Невже так складно console.log(["0.12.0", "1.222.3", "1.2.3.4.5.6.7", "2.205.23", "2.20.23"].sort(function (item1, item2) { var i, leftItem, rightItem, leftArray = (item1 || "").split("."), rightArray = (item2 || "").split("."); for(i = 0; i< Math.max(leftArray.length, rightArray.length); i++){ leftItem = parseInt(leftArray[i]) || 0; rightItem = parseInt(rightArray[i]) || 0; if (leftItem < rightItem) { return -1; } if (leftItem > rightItem) { return 1; } } return 0; }

Підтримали: Rost Kaniuchenko
leftItem = parseInt(leftArray[i]) || 0; rightItem = parseInt(rightArray[i]) || 0; if (leftItem < rightItem) { return −1; } if (leftItem > rightItem) { return 1; } } return 0;

return leftItem - rightItem;

Підтримали: NewOne NewOne

Ви переплутали необхідні та достатні умови.
Бути спроможним включити голову та спробувати рішити просту задачку — це необхідна умова, 10 років досвіду та браузер IE5 :), то вже ближче до достатніх.
Успіхів!

Я нічого не плутав .... мій висновок — то вже був сарказм. А щож стосується завдання — то мені просто не дали завершити задачу. За 10 років у мене ще взагалі не було такого, щоб я не завершив якусь задачу, тому б і ця простенька задачка не стала винятком ...

Ви упустили одну дуже важливу умову для деякого типу людей:
Бути спроможним включити голову та спробувати рішити просту задачку **у стрессовому стані**.

Вам та вашим співробітникам нерідко доводиться працювати в подібному стані? Шкодую.