суббота, 21 ноября 2015 г.

В коллекцию идиотизмов

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

Цитирую (вдруг прочитают мой пост и сотрут от греха подальше свой перл на хабре):

Вот пример такой задачки, который может быть использован в ходе телефонного интервью или беседы с эйчаром на первом уровне. 
Напишите функцию merge, которая обрабатывает два сортированных списка и выдает сортированный список объединений элементов двух списков. 
К примеру:
merge ([1, 7, 11, 17], [3, 5, 13]) //=> [1, 3, 5, 7, 11, 13, 17]...
Если использовать язык с удобной семантикой для работы со списками и особенно не задумываться об использовании памяти и общей производительности, то код решения будет простым:
function merge (originalA, originalB) { const merged = [], tempA = originalA.slice(0), tempB = originalB.slice(0); while (tempA.length > 0 && tempB.length > 0) { merged.push( tempA[0] < tempB[0] ? tempA.shift() : tempB.shift() ); } return merged.concat(tempA).concat(tempB);}

Признаться, задачу я не понял - что такое список объединений? Видимо это что-то посложнее, чем просто список, наверное, вложенный список... но в качестве эталонного результата показан простой список. Мда.. Ну раз нам предложен эталонный код - тот еще код, ну да простим, то мы его опробуем на удовлетворяющих условию задачи двух сортированных массивах:

merge ([1, 7, 11, 17], [13, 5, 3])
// => [1, 7, 11, 13, 5, 3, 17]

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

P.S. Да, к статье уже куча комментариев, половина комментаторов сразу себя как экспертов позиционируют и умные слова говорят, но при этом даже не видят, что король-то голый... то есть код не работает. Наверное, им стоит отправиться на собеседование в ту контору, которая разместила этот пост ;)

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru