google analytics

Wednesday, January 18, 2012

Історія одного рекрутінгу

Добрий день любий друже. Під впливом свіжих вражень вирішив описати одну спробу зарекрутити такого мегапацана, як я, однією київською конторою. Назву контори я опускаю свідомо.
Отже, одного вечора до мене зателефонувала рекрутер, і спитала чи не хочу я поміняти роботу. Я чесно сказав, що не хочу, що її абсолютно не засмутило, і вона сказала, що я обов"язково маю поспілкуватись з їх спеціалістами. В процесі ще й з"ясувалось, що вони в Києві, а я у Львові, київської візи я не маю, і їхати туди не збираюсь, але це її здається лише стимулювало до подальшого вербування. Отже, врешті решт я погодився на інтервью, чому б ні - це цікаво і корисно. Тим більше, я сам провів не одну співбесіду, і знаю, що гарна співбесіда - це далеко не проста справа. А тут можна в когось повчитись !
Я погодився, співбесіду успішно завалив, і ось по гарячих слідах вирішив описати враження.
Отже, на тему - що робив, де працював, який досвід ми витратили секунд 30, а далі почались глибокі технічні питання, багато з яких поставили мене в такий самий глибокий тупічок-с.

Перша і найбільша група питань - пайтон. 
  1. Чим ООП в пайтоні відрізняється від ООП в С++. По-перше, я вже 7 років не пишу на С++, по-друге, чи потрібно мені це знати ? Якщо потрібно, то навіщо ? Крім банальностей на кшалт умовної приватності, duck typing я нічого і не згадав.
  2. Як відбувається attributes resolution в пайтоні у випадку множинного наслідування зокрема ? Я колись стикався з цим, тоді розібрався, і забув. Не згадав :-(
  3. Що таке контексти в пайтоні ? Читав, бачив код, писав щось мінімальне, пам"ятав про оператор "with", решта - забув.
  4. Яка складність алгоритма сортування, який юзає пайтонінська функція .sort() ? Гмм... Пам"ятаю колись дискусію в кабінеті - стало цікаво - погуглили - розібрались. Забув.
  5. Генератори. причому пояснення на рівні визначення генераторів і їх задач, сфери застосування інтервьюверів не  задовільнило, почали допитуватись про деталі (generator.throw і т.і.). Чесно - колись читав, забув.
  6. What is Stackless Python ? Why "stackless" ? Колись з цим детально розібрався, статтю забабахав навіть, через теоретичність знань і брак застосування - забув.
  7. Multi-threading in Python. Одне з питань - чим Lock відрізняється від RLock. Не знаю, і не впевнений що знав. Колись спеціально читав по багатозадачності штудіював терміни, тут - не згадав, терміни забув через брак практичного застосування.

П.С.
Думав що знаю Python :-)

СУБД:
Типи індексів в PostgreSQL ? Специфічні до Постгре. Йооопть, не знав ніколи, не претендував.

Алгоритми:
  1. Классика - що таке хеш-таблиця, колізія хешів, яка складність алгоритмів сортування ? Більш-менш розповів.
  2. Які крім пузиря є алгоритми сортування ?
    Спеціально читав і слухав, через брак застосування і теоретичність знань - забув.
  3. ...
Резюмуючи вищенаведені запитання, можна побачити, що більшість питань - це речі, які я колись знав. Колись, стикнувшись з реальною ситуацією, задачею, просто почувши незнайомий термін, я з цим розібрався - прочитав, прослухав, пощупав. Пройшов час, і я це забув. Бо це не юзається щодня, більшість цих речей є цікавими, класними, але далеко не кожного дня середній пітон-програміст, чи просто програміст, з ними стикається. І далеко не кожний взагалі стикається.
З іншого боку, чи дають ці питання можливість інтервьюверам зробити висновки про якість програміста - його "пруху", вміння програмувати, досвід, і інші ключові речі. Навряд.
Інтервью закінчилось. Першим бажанням було згадати питання, і читати, читати, читати. Коли трохи вистиг, подумав - стоп, так я ж уже це читав. І забув. Наступного разу, мабуть, почитаю вже безпосередньо перед інтервью, і поки не забув - здам зачьот :-)

P.S.
За 2 дні рекрутер повідомила телефоном, що я пройшов на позицію мідла, що є дуже приємно. Хороший Євген, хороший :-)

No comments: