Форма входа

Поиск

Ближайшие события в РМ

В ожидании

Старшие братья

  • UPMA
  • PMI
  • IPMA
  • SOVNET
  • PMI UA
  • PMI EX
  • Статистика


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0





    Время управлять ! (044) 355-07-31 (30) your-assets@your-assets.com.ua
    Приветствую Вас Гость | RSS
    Управление проектами и программами
    Обувь и одежда для отдыха и спорта
    Логотип сайта
    Главная | Регистрация | Вход Продажа имущества
    Спортивная обувь и одежда от 140 грн.
    Каталог статей


    Главная » Статьи » Работа в команде

    Как я нанимаю программистов

    В возрасте 14 лет Аарон Шварц (Aaron Swartz) участвовал в создании спецификаций для RSS 1.0, а в 17 лет — в разработке формата синдикации Atom. Он также был одним из разработчиков проекта reddit, а сейчас работает в Open Library. Год назад Шварц, воспользовавшись бесплатным доступом к системе PACER, в которой хранятся документы федерального суда США, написал скрипт, который утащил из нее в свободный доступ около 20 млн. страниц. За эту «шалость» ФБР даже завело на него дело.

    Представляем вам перевод статьи «How I Hire Programmers» из блога этого необычного программиста.

    Когда вы нанимаете программиста (да и вообще кого-либо, если уж на то пошло), перед вами стоят три вопроса. Умный ли он? Способен ли выполнить то, что нужно? Сможете ли вы с ним работать? Тот, кто умен, но неспособен выполнить задание, может быть вашим другом, но не работником. Вы можете обсуждать с ним свои проблемы, тогда как он будет тянуть с выполнением важной работы. Тот, кто способен выполнять задания, но неумен — тот неэффективен: неумные люди выполняют работу трудоемким способом, работа с ними продвигается медленно и полна разочарований. Ну а с тем, с кем вы не можете работать, вы просто не сможете работать.

    Обычная процедура найма программиста состоит из: а) чтения резюме, б) задавания каких-то трудных вопросов по телефону и в) постановки перед ними задачи по программированию при личном общении. Я думаю, что такая система найма людей ужасна. Из резюме можно узнать очень мало, а трудные вопросы во время интервью очень нервируют людей. Программирование — это не та работа, которая выполняется под давлением, поэтому наблюдать за действиями людей, которые нервничают, довольно бессмысленно. А вопросы для интервью обычно подбираются по принципу «чем тяжелее, тем лучше». Думаю, я сносный программист, но я никогда не проходил такие интервью, и сомневаюсь, что вообще смог бы это сделать.

    Поэтому, когда я нанимаю кого-то, я просто пытаюсь ответить на три вопроса, описанные выше. Чтобы выяснить, способен ли человек делать нужные вещи, я просто спрашиваю, что он уже сделал. Если человек действительно способен выполнять работу, к этому моменту он уже должен был что-то сделать. Трудно быть хорошим программистом без какого-то опыта работы, а сейчас любой может набраться опыта, приняв участие в каком-то проекте по созданию бесплатной программы. Поэтому я просто прошу у человека пример кода и работающую программу и смотрю, хорошо ли это выглядит. Так действительно можно узнать очень много, потому что ты не наблюдаешь за тем, как он отвечает на надуманный вопрос во время интервью — ты смотришь на код, который он выдает на самом деле. Является ли он лаконичным? понятным? элегантным? практичным? Хотели бы вы иметь что-то такое в своем проекте?

    Чтобы выяснить, является ли человек умным, я просто веду с ним неформальную беседу. Я стараюсь сделать все, чтобы снять любое напряжение — назначаю встречу в кафе, поясняю, что это не интервью, делаю все, чтобы быть неофициальным и дружественным. Ни при каких обстоятельствах я не задаю ему стандартных вопросов из интервью — я просто болтаю с ним, как болтал бы с кем-то на вечеринке. (Если на вечеринках вы просите людей назвать их сильные и слабые стороны или вычислить количество настройщиков фортепьяно в Чикаго — у вас большие проблемы.) Думаю, в непринужденной беседе довольно легко выяснить, умен ли человек. Я постоянно оцениваю ум людей, которых встречаю, точно так же, как постоянно оцениваю их привлекательность.

    Но если бы пришлось записать признаки того, почему некто кажется мне умным, я бы сделал акцент на трех моментах. Во-первых, насколько глубоки его познания? Спросите, о чем он думал в последнее время, и «прощупайте» его на эту тему. Похоже ли на то, что у него есть детальное понимание предмета? Может ли он понятно объяснить его? (Понятные объяснения — признак подлинного понимания.) Знает ли он о предмете то, чего не знаете вы?

    Во-вторых, любопытен ли он? Задает ли он в ответ вопросы о вас? Действительно ли он заинтересован или просто старается быть вежливым? Задает ли он дополнительные вопросы к тому, что вы говорите? Заставляют ли его вопросы вас задуматься?

    В-третьих, учится ли он? В какой-то момент разговора вы, возможно, будете что-то ему объяснять. Действительно ли он понимает, что вы говорите, или же просто улыбается и кивает? Существуют люди, которые обладают знаниями в какой-то небольшой области, но не интересуются другими вопросами. И существуют люди, которые любопытны, но не учатся, они задают множество вопросов, но на самом деле не слушают. Вам нужен тот, кто является и тем, и другим, и третьим.

    Наконец, я определяю, смогу ли я работать с человеком, просто проведя с ним какое-то время. Многие выдающиеся люди кажутся восхитительными в первый час общения, но через пару часов их эксцентричность начинает раздражать. Поэтому когда вы закончите непринужденную беседу, пригласите его на обед с остальными членами команды или на игру в офисе. Опять же старайтесь, чтобы все было как можно более неформальным. Цель — просто понять, будет ли он действовать вам на нервы.

    Если все выглядит неплохо, и я готов нанять человека, здравый смысл говорит о необходимости последней проверки, чтобы убедиться, что меня каким-то образом не надули: я прошу его сделать часть работы. Обычно это означает, что ему следует написать какой-то более-менее независимый кусок кода, который нам нужен. (Если вам в самом деле так уж хочется увидеть, как он работает в напряженных условиях, установите ему срок.) Если необходимо, можете предложить ему оплатить эту работу — хотя я заметил, что большинство программистов не прочь выполнить небольшую задачу, если потом они смогут сделать полученные исходники открытыми. Этот тест не работает сам по себе, но если кто-то прошел первые три испытания, его должно быть достаточно, чтобы доказать, что человек не надул вас, что он в самом деле может выполнять работу.

    (Я встречал людей, которые говорят: «Ну, ладно, давай мы попробуем тебя нанять на месяц и посмотрим, как оно пойдет». Не похоже, чтобы это работало. Если вы не можете принять решение по окончании работы над небольшим проектом, вы не сможете сделать этого и через месяц, так что выходит, что вы нанимаете человека, который недостаточно хорош. Лучше просто сказать «нет» и поискать кого-то получше.)

    Меня вполне устраивает такой метод. Когда я придерживался его лишь частично, это заканчивалось приемом на работу неподходящих людей, которым со временем приходилось уйти. Но когда я действовал по этому плану, то получал людей, которые настолько мне нравились, что я на самом деле очень сожалею, если мне приходится расставаться с ними. Удивительно, как много компаний вместо этого пользуются другими, глупыми методами найма на работу.

    Аарон Шварц (Aaron Swartz)
    Перевод
    «Вебпланета»

    Категория: Работа в команде | Добавил: Reo (19.12.2009)
    Просмотров: 1162 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Продажа имущества - Стильные головные уборы - Магазин носителей информации

    Copyright MyCorp © 2024 Конструктор сайтов - uCoz Перейти на сайт компании "Ваши активы" Сайт компании Ваши активы
    qtl { position: absolute; border: 1px solid #cccccc; -moz-border-radius: 5px; opacity: 0.2; line-height: 100%; z-index: 999; direction: ltr; } qtl:hover,qtl.open { opacity: 1; } qtl,qtlbar { height: 22px; } qtlbar { display: block; width: 100%; background-color: #cccccc; cursor: move; } qtlbar img { border: 0; padding: 3px; height: 16px; width: 16px; cursor: pointer; } qtlbar img:hover { background-color: #aaaaff; } qtl>iframe { border: 0; height: 0; width: 0; } qtl.open { height: auto; } qtl.open>iframe { height: 200px; width: 300px; }