Дівчата люблять поганих хлопців?
Про вихід за рамки і привабливість такої поведінки для дівчат (природа) Як ви вже знаєте, дівчата хочуть сильних…
У своїй статті 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…