Форум OlegON > Разговоры на отвлеченные темы > Беседка

Как задавать вопросы : Беседка

22.11.2024 9:01


18.01.2007 09:52
Как правильно задавать вопросы (выдержки)
Эрик Реймонд, перевод: В.Кравчук, адаптация: Ktirf
Опубликовано: dl, 15.09.03 03:57

От составителя

Полностью статья Эрика Реймонда "How to Ask Questions the Smart Way" на английском языке доступна здесь. Официальный русский перевод статьи ("Как правильно задавать вопросы") поддерживается Валерием Кравчуком здесь. На текущий момент выдержки используют перевод как основной источник.

Все претензии по некорректному цитированию и предложения по изменению данного документа направлять мне лично (ktirf@pisem.net либо адрес, указанный в моем профиле). Можно также это сделать на доске guestbook форума BugTraq.Ru.
Введение

Прежде всего, надо понять, что хакерам на самом деле нравятся сложные проблемы и хорошие, способные расшевелить мозги, вопросы об этих проблемах. Если бы нам это не нравилось, мы не были бы хакерами.

Несмотря на это, считается, что хакеры относятся к простым вопросам скорее враждебно или высокомерно. Иногда кажется, что мы достаточно грубы к новичкам и игнорируем их. Но, на самом деле, это не так.

Мы, без сомнения, неприязненно относимся к людям, предположительно не желающим подумать или поучиться прежде, чем задавать вопросы. Таких людей мы называем "неудачниками" ("losers") (по историческим причинам это слово иногда пишется как "lusers" - пользователи-неудачники).

Мы (в основном) - добровольцы. Мы посвящаем время своей нелегкой жизни ответам на вопросы, и временами мы не справляемся со шквалом вопросов. Поэтому приходится безжалостно "фильтровать базар". В частности, отбрасывать вопросы потенциальных неудачников, чтобы потратить отведенное на ответы время более эффективно, посвящая его победителям.

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

Прежде, чем задавать технический вопрос по электронной почте или в дискуссионную группу, в чате или на форуме, сделайте следующее:

1. Попытайтесь найти ответ с помошью поиска в Web.
2. Попытайтесь найти ответ в руководстве.
3. Попытайтесь найти ответ в списке часто задаваемых вопросов (ЧаВО, FAQ).
4. Попытайтесь найти ответ путем проверок или экспериментов.
5. Спросите опытного товарища.
6. Если вы - программист, попытайтесь найти ответ, анализируя исходный код.

Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали; это поможет понять, что вы не какой-нибудь лентяй, транжирящий чужое время.

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

Тщательно продумайте, где именно задавать вопрос. Вас с большой вероятностью проигнорируют или спишут как неудачника, если вы:

* пошлете вопрос в форум, не соответствующий по тематике (off topic);
* пошлете самый элементарный вопрос в форум, где обсуждаются сложные технические вопросы, или наоборот;
* пошлете вопрос одновременно в несколько различных досок на одном форуме (cross-post);

При выборе дискуссионной группы или списка рассылки не принимайте решение только на основе имени; прочитайте список часто задаваемых вопросов (FAQ) или устав, чтобы убедиться, что вопрос соответствует тематике (От составителя: FAQ на BugTraq.Ru пока находится в стадии подготовки, а вместо устава существует описание).
Пишите понятным языком, соблюдая правила грамматики и лексики

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

Соблюдайте правила синтаксиса, пунктуации и использования прописных букв. Не ПИШИТЕ ВСЕ В ВЕРХНЕМ РЕГИСТРЕ, - это воспринимается как крик и считается грубостью. (Если все написано в нижнем регистре,- не многим лучше, поскольку так сложно читать.)
Задавайте осмысленные, конкретные темы сообщений

Не тратьте их на лепет типа "Помогите мне, пожалуйста". Не пытайтесь поразить нас глубиной своих страданий; лучше используйте отведенное место для максимально краткого описания проблемы.

Хорошее соглашение по оформлению тем сообщений, используемое многими службами технической поддержки, - применение шаблона "объект - отклонение". Часть "объект" задает, с чем именно возникла проблема, а часть "отклонение" описывает отклонение от ожидаемого поведения.

Глупо: ПОМОГИТЕ! Видеокарта на моем ноутбуке работает неправильно!
Разумно: Неправильная форма курсора мыши в XFree86 4.1, видео на чипсете Fooware MV1005.
Точно и детально опишите проблему

* Внимательно и четко опишите симптомы обнаруженной проблемы или ошибки.
* Опишите среду, в которой она возникает (машина, ОС, приложение и т.д.).
* Опишите проведенное вами исследование при попытках понять проблему прежде, чем задавать вопрос.
* Опишите самостоятельно выполненные вами шаги по диагностике и изоляции проблемы прежде, чем задавать вопрос.
* Опишите последние изменения в конфигурации компьютера или программного обеспечения, которые могут иметь отношение к делу.

Не просите отвечать на личный адрес электронной почты

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

Из этого правила есть одно небольшое исключение. Если вы предполагаете, что на свой вопрос получите множество одинаковых ответов, не забудьте магические слова "пошлите ответ мне, а я резюмирую полученные ответы в статье для дискуссионной группы". Это очень любезно, но вы должны сдержать обещание и послать итоговое резюме.
Задавайте ясные и четкие вопросы

Неограниченные вопросы требуют обычно неограниченного времени для ответа. Люди, скорее всего способные дать вам полезный ответ, еще и самые занятые люди (еще и потому, что большую часть своей работы делают сами). Такие люди ревностно относятся к своему времени, и поэтому часто не воспринимают неограниченные вопросы.
Избегайте бессмысленных просьб

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

В общем случае, вопросы с ответами да-нет лучше не задавать, если только вы не хотите получить ответ да-или-нет.
Пошлите краткое описание решения

После того, как проблема решена, пошлите сообщение всем, кто вам помог; дайте им знать, чем все закончилось, и поблагодарите еще раз за помощь.

Для достаточно серьезных проблем можно послать резюме с историей поиска их причин. Опишите окончательную постановку проблемы. Опишите, каким оказалось решение, и укажите тупиковые пути, которых стоит избегать. Назовите всех, кто помог вам: так вы найдете себе друзей.
Как интерпретировать ответы
RTFM и STFW: как понять, что вы серьезно облажались

Есть древняя и священная традиция: если вы получаете ответ "RTFM", значит, отвечающий думает, что вам стоит почитать руководство (Read The Fucking Manual). Он почти наверняка прав. Читайте.

У ответа RTFM есть более молодой аналог. Если вы получаете ответ "STFW", значит, отвечающий думает, что вам стоит поискать ответ в сети (Search The Fucking Web). Он почти наверняка прав. Ищите.

Часто тот, кто посылает один из подобных ответов, имеет под рукой руководство или web-страницу с необходимой вам информацией, и смотрит на нее, когда набирает ответ. Эти ответы означают, что, по его мнению, во-первых, необходимую вам информацию легко найти и, во-вторых, вы большему научитесь при поиске информации, чем если вам ее преподнесут под нос на тарелочке.

Вас это не должно возмущать; по хакерским стандартам, он оказал вам достаточное уважение уже тем, что не проигнорировал вопрос. Вы должны поблагодарить ответившего за его отеческую доброту.
Если вы не поняли...

Если вы не поняли ответ, не шлите тут же требование его объяснить. Используйте те же источники информации, что и при поиске ответа на исходный вопрос (руководства, ЧаВО, Web, опытные коллеги), чтобы понять ответ. Если и после этого вам необходимы разъяснения, покажите, что вы узнали сами.
Реакция на грубость

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

С другой стороны, иногда можно встретиться с грубостью и вызовом, не имеющими никаких видимых оснований. Обратная сторона этой медали в том, что такая реакция является вполне приемлемой формой постановки на место действительных грубиянов, - мы отсекаем их недостойное поведение остро отточенным словесным скальпелем. Однако, вы должны быть очень уверены в своей позиции, прежде чем пытаться этим заняться (Заточите скальпель ;) - Ktirf). Грань между указанием на невежливость и началом бессмысленного флейма настолько тонкая, что и сами хакеры нередко ее переходят. Если вы - новичок или просто случайный читатель, шансов избежать такой грубой ошибки - немного. Если вас интересует информация, а не развлечение, лучше уберите руки с клавиатуры и не рискуйте вступать в подобные дискуссии.
Не реагируйте как неудачник

Вполне вероятно, что вы уже облажались несколько раз в хакерских форумах так, как описано в этой статье, или аналогично. И вам уже объяснили, как именно вы облажались, возможно, в красках. При всем честном народе.

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

Смириться. Это - нормально. На самом деле, это хорошо и целесообразно.

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

Q: Где можно найти программу или ресурс X?
A: Там же, где и я ее взял, придурок,- найти в Internet. Боже, неужели еще не все знают, как пользоваться Google?

Q: Моя {программа, конфигурация, мой оператор SQL} не работает.
A: Это вообще не вопрос, и я не собираюсь задавать еще десяток наводящих вопросов, чтобы выяснить, в чем на самом деле состоит ваша проблема - у меня есть дела и поинтереснее. Когда я вижу подобные вопросы, то обычно посылаю один из следующих ответов:

* Вам к этому больше нечего добавить?
* Ой, это очень плохо. Надеюсь, вы уже это исправили.
* И какое это имеет отношение лично ко мне?

Хорошие и плохие вопросы

Глупо: Где мне найти информацию о Foonly Flurbamatic?
Этот вопрос просто напрашивается на ответ "STFW".

Правильно: Я попытался поискать в Web с помощью Google по запросу "Foonly Flurbamatic 2600", но полезных ссылок не получил. Не знает ли кто-нибудь, где найти информацию о программировании этого устройства?
Этот вопрошающий уже поискал в Web и, похоже, у него - реальная проблема.

Глупо: Я не могу скомпилировать код проекта foo. Почему он некорректен?
Он думает, что кто-то другой облажался. Самоуверенный тип.

Правильно: Код проекта foo не компилируется в ОС Nulix версии 6.2. Я прочитал ЧаВО (FAQ), но там нет ничего о проблемах с Nulix. Вот запись сеанса компиляции; что я сделал неправильно?
Он указал среду, прочитал часто задаваемые вопросы, показал сообщение об ошибке, и он не думает, что причина его проблемы в ошибке кого-то другого. Этому парню можно уделить немного внимания.
Если ответ не получен

Если вы не получили ответа, не принимайте это на свой счет, как наш отказ помочь лично вам. Иногда участники форума просто не знают ответ. Отсутствие ответа не равносильно игнорированию, хотя извне разницу заметить сложно.

В общем случае, повторная посылка вопроса - не лучшая идея. Это будет воспринято как бессмысленная надоедливость.
Как давать хорошие ответы

Будьте великодушны. Связанный с проблемой стресс может делать невежливыми или глупыми людей, которые таковыми не являются.

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

Задавайте дополнительные вопросы, чтобы получить больше информации. Если это делать правильно, спрашивающий кое-чему научится,- да и вы тоже. Попытайтесь превратить плохой вопрос в хороший; помните - все мы были начинающими.

Хотя простой ответ RTFM бывает оправдан, когда дается просто лентяю, ссылка на документацию (даже если это набор ключевых слов для поиска в Google) все же лучше.

Если уж вы отвечаете на вопрос, давайте ответ по сути. Не предлагайте наспех придуманные обходные пути, если используется в принципе не то средство или неверный подход. Предлагайте хорошие средства. Переформулируйте вопрос.

Если для ответа на вопрос пришлось провести исследование, поделитесь своим опытом, а не пишите так, как будто ответ свалился на вас с неба. Ответить на один хороший вопрос - это как накормить голодного один раз, а вот изложить методику исследования на примере, - значит, научить добывать еду на всю жизнь.
Часовой пояс GMT +3, время: 09:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.