Як вибрати хорошого програміста - it-фахівці

Як знайти хорошого програміста? При цьому - ви самі програмістом не є. Відповідь на це питання зовсім не простий. І ось чому.
Досвід, зазначений в резюме, мало чим допомагає. Кращі програмісти часто не мають "офіційного" досвіду, що доводить, що вони кращі. Навпаки, досвід, зазначений в резюме, часто може вводити в оману. Але, тим не менше, навіть ця інформація може допомогти визначити хорошого програміста. Для початку, потрібно відкинути деякі міфи - наприклад, відсутність у більшості програмістів комунікативного інтелекту. Справжній програміст розумний і тому не обділений і комунікативними навичками.
Будь-який хороший програміст повинен мати певну кількість пристрасті по відношенню до своєї роботи, так як програмування це не тільки професія, а й спосіб життя (якщо не сказати сексуальна орієнтація). Пристрасть до IT визначаємо, як безумовний плюс.
Також важлива здатність до самонавчання і любов до навчання. Без цього програміст просто фізично не здатний бути «хорошим». Кращі в світі учні проводять своє життя до проходження пубертату «за партою». Вони вчаться, вчаться, вчаться. Напрямок навчання, як правило, це математика, фізика, інформатика, філософія, астрономія. У дорослому житті, такий фахівець не тільки не заіржавіє мізками, продовжуючи поглинати нові терабайти інформації він здатний буде навчити і дохідливо пояснити клієнту звідки і куди ростуть ноги у замовленої програми. Адже вони вчителі за своєю суттю. І працівники постійні-постійні, але не швидкісні.
Не варто звертати особливої ​​уваги на дипломи і формальні сертифікати. Головне, що варто тут відзначити, це те, що просто дипломи нічого не значать при пошуку хорошого програміста. Якісь гарні програмісти закінчували інститут по комп'ютерній спеціальності, а якісь - ні. Єдине, що вони показують, що їх власник володіє деякими знаннями в певній технології. Вони є додатковими доказами знань, що дозволяють людям у великих корпораціях до співбесіди дізнатися, що "ця людина знає PHP і у нього є сертифікат, що підтверджує це".
А якщо ви наймаєте людей для маленького бізнесу, або вам потрібні дуже розумні програмісти (наприклад, для команди хакерів, якій потрібно швидко щось написати), вам потрібно ігнорувати більшість з цих сертифікатів. Вони справді не дуже багато говорять про якість програміста.
Те ж саме відноситься до віку. Є відмінні програмісти, яким 16 років. Є відмінні програмісти, яким далеко за 40. Неможливо оцінити якість програміста, грунтуючись на його віці.
Якщо ви збираєте команду, краще наймати людей по векторах. На чолі - вождь - господар. Керівник проекту - розвинений, з почуттям часу, боргу, дисципліни і контролю. Речі програмісти - хлопчики і дівчатка.
А ось ряд деяких ознак, які допоможуть вам оцінити рівень кандидата та з якими ви можете попрацювати на інтерв'ю без особливої ​​підготовки.
Позитивні індикатори:

Тепер залишиться одне питання - чи потягне ваша компанія такого фахівця ...

Це питання стає все рідше першим.

У хід йдуть студенти за 100 $ і через 3-6 місяців роботодавець усвідомлено розуміє, що взяв не ту, а час згаяно. (((
Стандартна картина.

А ще (з досвіду) наймають коли потрібно ще вчора, та ще й зробити ті гори що наобіцяв студент, та ще й за 100 $ в місяць, а то бізнес не йде або вже впав зовсім.

Керуйтеся правилом:
Якщо не хочете годувати свою армію, звикнете годуєте чужу.

і через 3-6 місяців роботодавець усвідомлено розуміє, що взяв не ту, а час згаяно.

А спочатку роботодавець не розуміє, кого він бере за 100 доларів? Тобто ні HR-фахівець, якщо він є, ні директор, ні співробітник по підбору персоналу - ніхто з них РЕАЛЬНО НЕ РОЗУМІЮТЬ, що студент за 100 баксів - це НЕ ПРОГРАММИСТ. Дивно просто, що на виході немає результату. Адже все має бути добре! За 100 доларів можна пенсіонерку тітку Машу попросити, щоб вона два рази на тиждень підлоги прийшла протерла. Дешеве м'ясо смачним не буває.

Хороший програміст на мою думку повинен вміти працювати з чужим кодом і володіти декількома мовами програмування, тому що всі вони "одним миром мазані". я маю на увазі мови програмування висого рівня (від Сі до скриптових, таких як php і т.д.). Звичайно, людині, яка сама не є програмістом це перевірити складно, але чисто психологічно можна простежити за реакцією здобувача - наскільки він готовий до етму питання.

Гарного програміста зазвичай вибирають в результаті досить "прискіпливого" інтерв'ю - з завданнями, пазли, і інше.
Зазвичай таке інтерв'ю, з мого досвіду, триває близько 4 годин, іноді дня два, три.
І беруть інтерв'ю повинен бути теж програміст / и. В іншому випадку вийде безпредметна розмова "за життя" на інтерв'ю. Мати диплом - обов'язково. Це просто показник, що челвоек формально навчався. Сертифікати - дивлячись в якій області програмування.
ІМХО

Згоден. Так воно і відбувається. Ось трохи інший вектор підходу компаній до цього питання. В один банк відправив резюме на посаду спец. по інформ. захисту. Через 3 години дзвонять ви прийняті підійдіть завтра в обід. Вранці дзвінок, на роботу не приймемо, але систему захисту замовимо (розподілені системи захисту бастіонного типу з онлайн моніторингом і т.д.). Через місяць закінчив установку, паролі рута здав, капусту отримав. Питаю чому на роботу не взяли адже вартість системи піврічна зарплата. У відповідь при виникненні конфліктної ситуації, яка може бути на будь-якому виробництві людина з подібними знаннями всередині компанії стає небезпечний.
По суті питання. Сам механізм порочне тобто заявка-> шеф-> відділ кадров-> агенство по найму (де небудь видно спеца який може оцінити програміста) подібна схема працює, але не для тих хто пише п.о. тому як критерії підбору протилежні поставленого завдання (зазвичай).

Для успішного завершення проекту потрібна людина, яка просто готовий виконати роботу до кінця з необхідним (невисоким - а саме тим, що дійсно необхідно) рівнем якості. Я думаю навіть, що наймати треба не на зарплату, а на конкретні проекти, з дуже хорошими преміальними за терміни, і успіх впровадження. І людина повинна в першу чергу розібратися в суті завдання. Програміст - це не рішення, це інструмент. Рішення - це розуміння проблем прикладної області та спосіб їх мінімізувати / усунути.

Все просто, Дмитро - тестове завдання з обмеженими термінами.
Хоча в загальному - згоден.

АЛЕ! як неспеціалісту підібрати таке завдання? Адже в тестовому має бути враховано, і то що хочеться, і те, що потрібно, і то як доведеться вирішувати задачу?

Знову просто - потрібно спочатку взяти фахівця за рекомендацією і спантеличити його підбором Дурга спеца для вирішення непосредсвенно завдання.
Цим способом успішно користується моя знайома. Вона жодного разу не замовила нічого мені з принципу, що краще друзі по бізнесу, ніж бізнес у друзів, але завжди була задоволена результатами роботи спеців, відібраних мною.

Тестове завдання добре. Але на нього часто у людей немає часу - це раз. Його можна зробити добре, але бути при цьому повним імбіцили потім - чи то пак гарантій немає все одно - це два. Проблема підібрати кодера зазвичай у непрофільних контор де немає тямущих технарів - це три. Скласти грамотно завдання складно - так як місцевим технарям це доп. навантаження і їм це не треба - своїх справ по горло і менеджер вже другу добу нудить "коли буде білд?". Вибирати на проект де сам не працюєш складно. Виникають завищені вимоги. Реально часто потрібна людина вміє робити раз-два-три, а за описом вакансії там аж до сорока восьми :) В результаті людина 48 ськиллов, заламує ціну і використовує 3 ськілла - це невигідно роботодавцю.