Есть моск? Поможем научиться и рубить бабло! | ||
— реклама devclub.com.ua |
З великими труднощами, але знайшли-таки нового програміста. А розказати хочу не стільки про нього, а через що йому довелося пройти, щоб приєднатися до української команди компанії Visonic.
За два роки нам вже тричі доводилося когось шукати для розробки на C++ для GNU/Linux, тому цього разу начальник сказав, що все спростимо. Щоб не гаяти час, я мав проводити телефонні співбесіди і вирішувати, чи витрачати на кандидата час. Запрошеним я мав запропонувати набір простих задач десь на півгодини, самому не відволікаючись від звичної роботи. А вже обрана п’ятірка могла потрапити на справжню багатообіцяючу співбесіду до начальника.
Але це було щось із чимось! Тільки дали оголошення, відразу ж посипались тонни відгуків, кожен кращий від іншого. До слова, всього їх отримали ми десь за тридцяток. Як почав я телефонувати, довелося спуститися на грішну українську землю…
Спершу перепитую, чи справді готові програмувати на C++ для Linux (кілька швидко одумалися). Потім різношерстий набір:
- Скільки 28?
- Як записується в signed int число −1?
- Чи може статична функція класу С++ бути віртуальною?
- Що робить функція стандартної бібліотеки С++
remove_if
(adjacent_find
,equal
)? - Які є примітиви синхронізації потоків posix?
Когось запитував більше, когось менше, головне було зрозуміти, чи варто продовжувати. Я цілився на, можливо, не дуже досвідчених, але обов’язково кмітливих претендентів. Головне, щоб роботу робили, а не знали багато розумних слів і загинали пальці…
Напевне, з півтора десятка ми таки запросили в гості практичну частину. І знову почалося розчарування. Задачки були дуже прості, просто візьми й відразу ж скажи відповідь, можливо, крім однієї. Та де там! Тільки двоє спромоглися розв’язати майже все.
TasksВисновки:
Робота мисливців за головами вкрай непроста, особливо, як ті голови ще треба знайти.
Розумні програмісти десь давно працюють, а в постійному пошуку невдахи.
В багатьох випадках вимоги шукачів завищені. Ясно, що знайдуть шукаючі, але хотів би я знати, за що людям гроші платять.
До речі, перше завдання (bit_count) виявляється досить розповсюдженим - мені таке вже траплялося. Методів його реалізації більше ніж здається на перший погляд - можна робити по словнику (сума кількості бітів в кожному байті чи ніблі), можна використовувати інструкції SSE4 (POPCNT), а можна в неті нарити хитрі алгоритми з бінарними масками (хоча запам'ятати їх я не зпромігся).
ВідповістиВидалитиВідверто, і я екзотичних рішень не пригадав би. Аби цикл хто написав, то вже було б добре.
ВідповістиВидалитиОт що справді добре в таких задачах, що можна рішення довго обговорювати (а як швидше? а як компактніше? тощо).