Читаючи цей сайт, і так я бачив багато історій питань інтерв'ю та відповідей, в яких говорилося, що кандидату довелося реалізувати пов'язаний список з нуля. Зазвичай це вправа для "програмування" для програмування рольових кандидатів, таких як написання FizzBuzz. Ідея полягає в тому, що якщо кандидат не може цього зробити, він не може програмувати, і його слід негайно відхилити.
Однак я не можу не стверджувати, що це може бути поганою практикою з наступних причин:
- Сучасні мови вищого рівня, такі як C # та Python, в основному широко використовують списки; писати власний об’єкт списку потрібно лише за незвичних обставин, і навіть тоді, ймовірно, необдуманих.
- Мови нижчого рівня, такі як C ++, мають стандартні бібліотеки з ітераторами / контейнерами списку та об'єктами.
- З огляду на перші два пункти, кодери можуть пройти роки, навіть не замислюючись про те, щоб реалізувати список (зв'язаний, подвійний зв’язок тощо). Деякі люди навіть не дуже бачать таких речей ще з коледжів.
- Обчислювальна потужність також не є тим фактором, який був років тому, тому ефективність за допомогою покажчиків - це не проблема, якою вона була раніше (загалом).
- Простий пошук в Інтернеті на кшталт "прикладу зв'язаного списку" може принести безліч прикладів коду, які можна було просто запам'ятати і виплюнути назад, а не справді вказувати на справжню компетентність заявника.
Я мушу сказати, що використання зв’язаного списку для ведення відкритих питань / обговорень вирішення проблем / здібностей критичного мислення кандидатів є, швидше за все, справді хорошою практикою співбесіди. Будь-який спосіб інтерв'юера може реально побачити, що таке заявник і як вони вважають, що це корисно.
Я вважаю, що цей програш, який працює на робочому столі чи веб-програмі, не є застарілим підходом "жодного коду пов'язаного списку, жодної роботи". Це також може бути досить шкідливим; кандидат, який не може пригадати, як правильно працювати з головою списку, може бути інакше відмінним кодером і співпрацівником і бути загубленим у суміші. Думки?
EDIT : Є багато (хороших) коментарів, які дозволяють стверджувати, що це хороший чи поганий питання, що задається, залежить від контексту роботи. Я повністю погоджуюся, тому дозвольте перефразувати це запитання: Реалізація зв'язаного списку - це поширене питання інтерв'ю для широкого кола завдань кодування, подібне до таких питань, як FizzBuzz, або написання рекурсивної функції для обчислення факторіалів. Чи є в цьому питанні достатня корисність, щоб звичайно його використовувати для оцінювання кандидатів на програмування у всій раді? Або варто вважати поганим питанням, окрім посади "Старший розробник, вбудована група пов'язаних списків"?