Як знайти хорошого програміста




Як впізнати хорошого програміста будучи бізнесменом?

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

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


У своїй статті 18 помилок, які вбивають стартапи, Пол Грем пише:

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

Як правило, бізнесмен наймає людину, якого вважає хорошим програмістом (у нього ж написано в резюме, що він Сертифікований Розробник Мікрософт), а на ділі він виявляється поганим. В результаті стартап виявляється в ситуації бомбардувальника часів Другої світової війни, в той час як інші стартапи проносяться мимо, як сучасні винищувачі. Такі стартапи стають схожими на великі компанії, але без їх переваг.

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


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

1. Пристрасть. За час роботи в великих компаніях я зіткнувся з новим типом IT-фахівця, з яким раніше ніколи не зустрічався: програміст-кар`єрист. Такі люди працюють в IT тому, що вважають, що це хороша кар`єра. Вони не займаються програмуванням у вільний час. Вони дивуються, коли дізнаються, що у мене вдома сітка з трьох комп`ютерів. Вони програмують тільки на роботі. Вони не вивчають нічого нового, якщо тільки їх не відправляють на додаткове навчання (або не мотивують новою роботою, для якої потрібно вивчити нову технологію). Вони нечасто розмовляють про комп`ютери поза роботою. А коли роблять це, то їй не довіряють ентузіазму. Кажучи коротко, вони не одержимі комп`ютерами.

2. Самообучение і любов до навчання. Програмування - це постійно розвивається область. Жодного року не проходить без того, щоб якась нова технологія не змінила стару, встановивши нові стандарти і змінивши половину IT-індустрії. Не потрібно говорити, що хороші програмісти намагаються прийняти ці зміни і триматися на гребені хвилі. Однак існують такі програмісти, які ні за що не будуть вивчати нові технології, якщо тільки їх не змусять, тому що вони не люблять вивчати нове. Такі програмісти ймовірно вивчали програмування в університеті, і тепер думають, що їм вистачить того, чого вони там навчилися і може бути того, чого вони навчаться на курсах, на які їх відправить їх компанія.

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

3. Інтелект. Деякі ділові люди вважають, що відсутність такту і відсутність інтелекту це одне і те ж. Насправді, у інтелекту є кілька ознак, і емоційність / соціальність тільки один з них. Хороші програмісти не бувають тупими. Ніколи. Насправді, хороші програмісти є одними з найрозумніших людей, яких ви знаєте. Багато з них мають також і соціальними якостями. Те, що програмісти часто не можуть нормально підтримувати розмову - це всього лише помилка. Я був на кількох зборах London Ruby User Group і можу сказати, що за невеликим винятком, усі вони є розумними, товариськими, цікавими людьми.

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

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

4. Прихований досвід. Я вже говорив про це в розділі ldquo-Страстьrdquo-, але це такий важливий ознака, що я хочу поговорити про нього окремо.

Я почав програмувати коли мені було близько 9 років, на Commodore 64. Потім я перейшов на PC і трохи програмував на Паскалі. Коли мені було 14, я написав свій raycasting движок і провів купу часу розважаючись з різними графічними ефектами, які можна було вичавити з відеокарти, звертаючись до неї безпосередньо. Я називаю цей період стадією ldquo-куколкіrdquo-. Коли я починав входити в цю стадію, я був посереднім програмістом, і у мене не вистачало впевненості для того, щоб займатися дійсно складними речами. Коли я закінчив цю стадію, така впевненість з`явилася. Я знав, що в принципі, я можу написати все що завгодно, якщо дійсно захочу.

Згадував я коли-небудь про це в своєму резюме? Ні.

Я впевнений, що у більшості хороших програмістів ціла купа подібного досвіду і вони не пишуть про нього в своєму резюме. Часто вони думають, що такий досвід не відноситься безпосередньо до майбутньої роботи, і не є ldquo-відповідним опитомrdquo-, але насправді, це приголомшливі досягнення. Хорошим питанням на інтерв`ю міг би бути: ldquo-Чи є у вас якийсь власний проект, необов`язково відноситься до вашої майбутньої роботи, яким ви займалися у вільний час, але не згадали про нього в резюме? rdquo-. Якщо у вашого кандидата немає таких проектів (звичайно, якщо їх резюме не займає 20 сторінок), то цілком ймовірно, що він не є хорошим програмістом. Навіть у програміста з величезним резюме є проекти про які він не згадав.

5. Безліч технологій. Ну, це досить просто. Якщо людина любить вчитися і йому подобається возитися з новими технологіями, що є ознаками хорошого програміста, то він неминуче (якщо йому більше 22 років) буде розбиратися в дюжині різних технологій. Вивчення нових технологій це одне з найулюбленіших занять, яким може займатися людина, одержимий програмуванням. Таким чином його портфоліо буде набито різними технологіями, з якими він ldquo-трохи возілсяrdquo-. Він необов`язково буде експертом у всіх них, але якщо він пристойний програміст, то він буде розбиратися в цілій купі технологій, що не мають прямого відношення до його роботи.

ці ldquo-стосувалися безпосередньо до работеrdquo- технології іноді складно розпізнати, особливо непрораммісту. Будь Java-програміст може написати цілий список різних технологій, з якими він працював: Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell Scripting, і так далі. Але це все частини однієї і тієї ж технології, і все тісно пов`язані один з одним. Сильна спеціалізація в одній лінійці технологій часто є ознакою не дуже гарної програміста.

І нарешті, якщо деякі з цих технологій є зовсім новими, це теж ознака хорошого програміста.

6. Формальні сертифікати. Це скоріше не анти-ознака, а не-ознака. Головне, що варто тут відзначити, це те, що формальні сертифікати нічого не значать при пошуку хорошого програміста. Багато хороших програмісти закінчували якийсь інститут по комп`ютерній спеціальності. Багато немає. Сертифікати на кшталт MCSE або SCJP теж нічого не значать. Вони розроблені таким чином, щоб бути доступними для всіх. Єдине, що вони показують, це те, що їх власник володіє деякими знаннями в певній технології. Вони є додатковими доказами знань, що дозволяють людям у великих корпораціях до співбесіди дізнатися, що ldquo-ця людина знає Java і у нього є сертифікат, що підтверджує етоrdquo-. Якщо ви наймаєте людей для маленького бізнесу, або вам потрібні дуже розумні програмісти, для команди хакерів, якій потрібно швидко щось написати, вам потрібно ігнорувати більшість з цих сертифікатів. Вони справді не дуже багато говорять про якість програміста. Те ж саме відноситься до віку. Є відмінні програмісти, яким 18 років. Є відмінні програмісти, яким 40. Неможливо оцінити якість програміста, грунтуючись на його віці (хоча, можливо, краще наймати людей приблизно одного віку-ласка, зверніть увагу, що дискримінація за віком є нелегальною в багатьох країнах!).

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

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



Увага, тільки СЬОГОДНІ!

ІНШЕ

Міць мови фото

Міць мови


Наші думки впливають на нашу поведінку, слова які ми вибираємо, теж впливають на нашу поведінку, а отже і на…

Як скласти правильне резюме фото

Як скласти правильне резюме

Претендентові вакансії, безсумнівно, важливо, щоб роботодавець зацікавився його кандидатурою. Цьому сприяє грамотно…

Як стати багатим - стартап фото

Як стати багатим - стартап


З чого б ви почали, якби раптом вирішили розбагатіти? Я думаю, що найкращим рішенням було б запустити нову…

Спільнота программеров фото

Спільнота программеров

Інтернет - це не просто світова інформаційна мережа, але в деякій мірі це праця багатьох тисяч людей. Працю, спрямовану…

Відгалужуючись фото

Відгалужуючись


Один з основних шляхів зростання людської істоти - це пробувати щось нове. Зробити щось таке чого ви ніколи раніше…

Про жаб. -О) фото

Про жаб. -О)


ldquo-Коли цокіт копит затих, Рудий промовив тремтячим голосом: - Хотів би я, щоб неприємності на цьому…

Чужа думка фото

Чужа думка


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

Майстерність мови фото

Майстерність мови


Я виявив, що іноді невловима різниця в нашому ставленні до життя, яка звичайно ж може суттєво змінити наше…

З чого починати? фото

З чого починати?


Мене постійно запитують: - ldquo-Я хочу зайнятися бізнесом, з чого мені почати? rdquo- У мене відразу ж виникає…

Найголовніше фото

Найголовніше


Думаю, ні для кого не секрет, що я веду розсилку, присвячену бізнесу. Багато передплатники дуже активні. -о) Мені…

Головна помилка новачка фото

Головна помилка новачка


Часто люди хочуть заробити через інтернет відразу багато грошей. це своєрідний ldquo-синдром ньюбаrdquo-. Якщо…

Ідеї для стартапу фото

Ідеї для стартапу


Звідки ви берете гарні ідеї для стартапів? З тих питань, які мені задають, цей, мабуть, номер один. Я відповім…

Вирощування врожаю фото

Вирощування врожаю


Будучи любителем Біблії, я перекажу одну біблійну притчу на свій лад. Мої батьки були впевнені в тому, що до 19…

Увага, тільки СЬОГОДНІ!
» » Як знайти хорошого програміста