Попросити вибірки коду компанії на співбесіді [закрито]


69

Попросити шукача роботи показати якийсь код є досить поширеною практикою для програмної компанії. Однак чи було б кандидатом дозволено попросити інтерв'юера показати йому невеликий фрагмент коду, який він вважає добре написаним?


14
Я б швидше запитав про стандарти кодування, огляди коду тощо
user16764

5
Чи проходить компанія "тест Джоеля": joelonsoftware.com/articles/fog0000000043.html
Мартін Йорк

2
@LokiAstari тест joel безпосередньо не стосується культури кодування (лише робоче середовище).
Саймон Бергот

8
@ user16764 - це як задавати кандидату теоретичні запитання: це хороший перший крок, але він насправді не показує, як він застосовує ці знання.
Саймон Бергот

2
programmers.stackexchange.com/questions/160922/… Подібно до цього питання.
Анонім

Відповіді:


69

Я завжди прошу переглянути якийсь код з кількох причин:

  • Я хочу знати, в що я потрапляю. Звичайно, жодна фірма з програмного забезпечення не є ідеальною, і я не сподіваюся, що всі будуть викачувати дивовижність вишуканості весь час (тому що я ні), але якщо я попрошу найкращий код компанії, і все, що вони можуть мені показати, це під номіналом спагетті безлад, я знаю, що я в жалюгідному часі, розмотуючи кульки для волосся і борюся з технічним боргом, щоб щось зробити. Переглядаючи найкращий код, який може показати компанія, встановлює верхню межу можливої ​​якості; навіть якщо навряд чи весь їх код виглядає так, ви все одно знаєте, що це те, чого вони прагнуть.
  • Перегляд зразків коду говорить мені багато про культуру кодування компанії. Чи використовують коментарі документацію? Чи схиляються вони до об'єктно-орієнтованого стилю, чи мають тенденції до функціонального програмування? Вони консервативні чи прогресивні? Чи цінують вони послідовне іменування, правильне форматування та відступ та чистий код загалом? Чи легко прослідкувати код? Як вони структурують свої проекти? Як вони підходять до важливих речей - автоматизованого тестування, обробки помилок тощо? Наскільки захисний їх стиль кодування?
  • Перегляд їх наявного коду дозволить вам судити, чи можете ви дотримуватися їхніх стандартів .
  • Той факт, що компанія готова ділитися зразками коду самостійно, є хорошим принципом. Це означає, що вони пропонують мені, заявнику, деяку довіру , оскільки їх база даних коду є одним із найцінніших цінностей. Це також означає, що вони не соромляться свого коду, що вони впевнені, що показ мені коду допоможе зацікавити мене в роботі з ними.
  • Якщо вони не показують вам жодних зразків коду, то це не повинно бути червоним прапором, але розумно запитати, чому вони не поділяться (цілком ймовірно, вони просто не можуть з юридичних причин), а також поясніть, чому ви хочете їх побачити. Я не думаю, що прояв інтересу до їх коду не сприймається як негативний знак, якщо ви запитаєте ввічливо і позитивно.

А потім є ще кілька побічних ефектів:

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


1
Якщо потенційний роботодавець покаже вам код, який явно поганий, пам’ятайте, що це може бути приводом для покращення коду та процесів. Як свідчить стара приказка: "Я можу викрутити лише ідеально, але можу виправити зламане!". Крім того, пам’ятайте, що код, показаний кандидату чи кандидату, ймовірно, був підданий значно більшій жорсткості та перегляду, ніж інший код.
akton

@akton Це моє ставлення до поганого коду. Однак марно, коли ви опинилися на самоті у своєму пошуку "виправлення безладного коду". Попросити побачити якийсь хороший код, може допомогти вам зрозуміти, чи цінують ваші майбутні команди такі речі, як SOLID
Simon Bergot

1
"Я завжди прошу переглянути якийсь код" Як після вас фактично показаний код? Ви просите, щоб вони заздалегідь підготували щось, або надіслали вам щось згодом? Незалежно від того, на який спосіб ви це дивитесь, це здається непрактичним.
Бурхан Алі

1
@BurhanAli: Я просто прошу. Багато хто відмовляється мені показувати будь-які, і зазвичай вони дають мені вагомі причини, що добре. Ті, хто погоджується, дають мені керований тур; Я сумніваюся, що хтось надсилатиме мені повний набір джерел, щоб перенести їх, але натискання на проект в IDE, поки я спостерігаю, часто прийнятно.
tdammers

У багатьох випадках я думаю, що код, який я дуже хотів би бачити, вважався б закритим, як конкурентна перевага. Це буде найбільше значення для мене кодом ... однак, якщо вони згодні показати вам код, і це смокче, що це, мабуть, знак того, що вони не розуміють хорошого коду. Якби я був ведучим, я, певно, не показав би вам нетривіального внутрішнього коду. Тільки я хоч.
Rig

14

Однак чи було б кандидатом дозволено попросити інтерв'юера показати йому невеликий фрагмент коду, який він вважає добре написаним?

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

Крім того, вони просто збираються вишнево вибрати найкраще виглядаючий, найменш значимий код, який вони можуть. Найкращий код насправді не проблема, найгірший. Це та сама причина, що отримання зразків коду від кандидатів є марним.


10
Ще корисно подивитися, чи зможуть вони вишнево вибрати хороший код, щоб показати вам. Найбільш страшною частиною поводження з поганим кодом є те, що ніхто не визнає його поганим і його слід виправити.
JGWeissman

5
Крім того, ідея інтерв'юера про хороший код може бути не вашою ідеєю хорошого коду. Я думаю, було б корисно дізнатися це раніше, ніж пізніше.
Ерік Кінг

1
На жаль, коли я намагався використати підхід "інтерв'ю двосторонній", більшість роботодавців роздратовано. Я ніколи ще не показав код. Інша річ, яку я попросив побачити, - це модель даних, але і там не пощастило.
Antonio2011a

12

чи було б прийнятно, щоб кандидат попросив інтерв'юера показати йому невеликий фрагмент коду, який він вважає добре написаним?

Ви можете запитати все, що завгодно, але:

  • Ви, мабуть, цього не отримаєте.

  • Якщо ви все-таки отримаєте, це не скаже вам нічого корисного. Якщо 10% їх коду красиві, а решта - спагетті, ви все одно матимете справу переважно зі спагетті.

  • Ви будете здаватися розумними штанами. Це не велика допомога, якщо ви нарешті вирішите, що хочете працювати там.

  • Це марний час дорогоцінного інтерв'ю.

  • Є кращі способи дізнатися, що ви хочете знати. Задавайте такі питання:

    • Які найважливіші показники якості коду?
    • Я буду в основному підтримувати існуючий код або писати новий код?
    • Чи можете ви пояснити коротко, як працює ваша система?
    • Чи є у вас документ зі стандартами кодування, і чи всі його дотримуються?

Влучне зауваження ! На жаль, запитання на кшталт "Які найважливіші показники якості коду?", Може сприйматися як розумні штани. (З моєї точки зору, це розумне питання, але багато роботодавців не люблять відчувати, що їх переглядає потенційний підлеглий).
Antonio2011a

2
@ Antonio2011a Якщо ви запитаєте правильно, має бути добре - можливо, "які показники якості коду ви шукаєте тут?" просто дайте зрозуміти, що ви хочете дізнатися більше про те, як вони роблять справи. Ви про них дізнаєтесь, не тестуючи тесту. Може працювати навіть під час запиту коду: "Чи можу я побачити, як виглядає ваш код?" а не "Я хотів би зразок того, що ви вважаєте гарним кодом".
Калеб

3

Ну, це залежить. Мені завжди подобалося знати, куди я їду працювати.

Я розглядаю співбесіду як двосторонню. Компанія дізнається про вас, а ви дізнаєтесь про компанію. Просити код може бути небагато, але задавати питання, пов'язані з розробкою, має бути добре.

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


Домовились. Я намагаюся поглибитись інструментами, якими вони користуються? Чи платять керівництву за додаткові інструменти (компоненти, утиліти), яких у багатьох місцях немає. Ставлення до інструментів з відкритим кодом також завжди добре.
ozz

2

Ха-ха, це смішне питання. Я б не образився, якби хтось попросив у мене зразка коду під час інтерв'ю, але я, мабуть, не показав би їм жодного коду, якщо б вони не запитали заздалегідь і я встиг ретельно спланувати.

Я, безумовно, розумію намір задавати таке питання. Як шукач роботи, я раніше просив тест Джоеля до інтерв'юера. Вони не знали, що це, але з радістю відповіли.

Деякі запитання таких типів можуть покращити ваші шанси, тоді як це може зашкодити вашим шансам в інших місцях. Краса життя полягає в тому, що якщо це покращує ваші шанси, то це саме те місце, де ви хотіли б працювати. Якщо це зашкодить вашим шансам, то ви б інакше не хотіли такої роботи.

Я не бачу нічого втрачати, ввічливо запитуючи і вміючи пояснити, чому ти хочеш це бачити.


"Краса життя полягає в тому, що якщо це покращує ваші шанси, то це саме те місце, де ви хотіли б працювати". +1
Spidey

2

Я задавав це питання на своїх двох інтерв'ю, де вони стверджували, що старші розробники переходять на asp.net mvc3 або 4 або коли вони сказали, що хочуть сильно коментувати код. Я відхилив обидва випадки через відсутність їхніх знань щодо фактичного стандарту коду. Єдиний стандарт, який я знайшов - це, якщо він працює, скопіюйте та вставте його, і він буде працювати. Я не буду задавати це питання, чи я роблю новий проект, чи потрібно писати фрагмент коду, незалежний від інших в команді. Я обов'язково побачу код, якщо мене найнять, щоб виправити існуюче програмне забезпечення або функцію, і я не скажу так, якщо я не знаю відповіді. Припустимо, ви не запитуєте, і вони кажуть, чи можете ви, будь ласка, виправити дату вибору, щоб почати з сьогоднішньої дати Якщо ви подивитесь на застарілий код, ви побачите не jquery чи jquery ui, а спеціально вибраний датчик, який має всі дати, що зберігаються у XML-файлі, і щовечора виконується завдання cron для оновлення майбутніх місяців на ньому. Це запустило б головний біль, оскільки коду для досягнення цього менше, ніж слів у цьому прикладі. Якщо ви збираєтесь працювати над їх кодом, попросіть його переглянути. Не запитувати - це як цитувати роботу, переконавшись, що замовник сказав, що це мало. У нього може бути 20 акрів землі, а садівництво на його 1 акр мало для нього, але Гарднер не може стягнути 50 фунтів тільки тому, що всі його невеликі роботи починаються з 50.


1

Я схильний працювати в компаніях, де хоча б частина їх роботи є відкритим кодом, тому знайти зразки коду тривіально. Я з'ясовую, хто працює в компанії, а потім з'ясовую їхні ручки в Інтернеті. Оскільки люди, як правило, використовують одне і те ж ім’я екрана, неважко знайти, де вони ввели код, чи були вони в Github, Bitbucket або деінде повністю.

Моя нинішня компанія має багато кодів, розміщених на Github, тому було легко зрозуміти, з чим вони працюють, наскільки велика їх база коду та що, здається, вже не цікавить.

Я ніколи не просив би зразок, просто тому, що вони збираються показати тобі найкращий код, який вони мають. Це не код, з яким ви будете працювати. Ймовірно, він розміщений у дзвонику в замкнутій кімнаті. Ви будете працювати з безладним кодом, з яким багатьом людям довелося возитися.


0

Це приголомшливо, якщо ви можете його отримати. Іноді це неможливо без угод типу NDA, але спробувати завжди добре. Щоб збільшити шанси, повідомте інтерв'юерам, що ви хочете цього добре заздалегідь (через пару днів), щоб вони могли щось мати на увазі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.