Хоча це, як правило, викликає занепокоєння, я вважаю, що це не існує через налаштування.
Заявник надіслав вам вихідний код. Як чи чому це сталося?
Ну очевидно, що є лише три можливості:
- Ви дали заявнику завдання вирішити певну (чітко визначену) проблему, щоб оцінити його вміння.
- Заявник хоче показати щось класне, що написав.
- Заявник - ривок, шпигун чи інша шкідлива особа і насправді не зацікавлений у прийнятті на роботу. Все, на що він сподівається - це ти досить дурний, щоб запустити його код.
Про 2) та 3)
Основним ризиком є розмежування 2) та 3). Велика ймовірність того, що якщо все, що він написав, варто переглянути , це те, що ви можете або отримати вихідний код для Інтернету (з "нейтрального" джерела), і що ви, можливо, вже знайомі, або це щось, що ви насправді не робите Не хочу дивитись на це, оскільки ви порушили б інтелектуальну власність конкурента (колишнього роботодавця). Останнє означає, що ви все одно не хочете наймати цю людину.
Якщо ви можете отримати джерело в Інтернеті, зробіть це. Якщо ви можете перевірити внесок заявника у відоме програмне забезпечення (включаючи власницьке програмне забезпечення) за його ім’ям десь у кредитах, зробіть це.
У будь-якому іншому випадку просто ігноруйте все, що він вам надіслав. Це або не варто дивитися, або незаконно, або високий ризик.
Про 1)
Заявник щось вам надіслав, тому що ви дали йому доручення. Якщо у вас є якісь компетенції (які, я вважаю, ви виконуєте!), То для типового завдання програмування (... яке ви навіть вибрали самі!), Ви зможете сказати, чи це правдоподібне рішення, яке виглядає так, ніби воно може спрацювати переглядаючи вихідний код менше 30 секунд (швидше за все, 10 секунд).
Якщо ви не можете сказати, що програма, ймовірно, запрацює (або що вона взагалі робить) протягом 30 секунд, той, хто її написав, не такий тип людини, якого ви хочете найняти, повний стоп. Ви хочете, щоб люди, які пишуть код, який могли зрозуміти та підтримувати інші люди. Ви не хочете, щоб хтось, хто намагається бути розумним до вас, чи хтось, хто регулярно перемагає в затуманеному конкурсі C. Навіть не важливо, чи працює програма. Як тільки інша людина не може зрозуміти код, він ніколи не "працює".
Якщо програма виглядає так, що вона, ймовірно, спрацює, але ви знайдете все, що виглядає "дивно" (скажімо, послідовності втечі Java unicode, необроблені рядки C ++, речі, схожі на триграфи, як би там не було), трактуйте завдання як "провал", перемістіть до наступного заявника. Не обов’язково включати щось подібне до 99% усіх програм (і, звичайно, не у своєму завданні - я сподіваюся). Тож якщо ви знайдете щось подібне "дивне", заявник - це не той, кого ви хочете найняти.
Якщо код пройде першу тріаду, можливо, вам доведеться витратити ще 2-3 хвилини на його перегляд. Якщо ви все ще задоволені тим, що бачите після цього, ви можете запустити його через статичний аналізатор і скомпілювати його у віртуальній машині з високим рівнем попередження.
Це повинно спричинити проблеми, які, можливо, ви пропустили під час читання джерела (наприклад, виклик невизначеної поведінки чи звуження конверсії).
Компіляція в першу чергу скаже вам, чи має претендент необхідну ретельність і увагу до деталей, а не стільки, чи володіє він навичками програмування. Так само, як правильно писати ім'я роботодавця у вашій заяві та перевіряти орфографію перед тим, як передавати його, найкращою практикою є переконатися, що будь-який вихідний код ви передаєте у компіляції без помилок (а краще без попереджень). Якщо хтось цього не робить, ви не хочете його наймати.
Ризик того, що в цей момент трапляються злі речі (експлуатування компілятора та вихід з VM), є незначним, бачачи, як ви вже провели перевірку правдоподібності коду. Не відбудеться.