воскресенье, 30 января 2011 г.

Вопросы новичков

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

Для того чтобы задать вопрос на форуме, нужно:
  1. зарегистрироваться;
  2. осмыслить проблему;
  3. сформулировать ее в терминах предметной области;
  4. записать вопрос.
Для того чтобы найти ответ в поисковой системе, нужно:
  1. отправить запрос по ключевым словам;
  2. просмотреть выдачу поисковой машины.
Если человек разбирается в предметной области, то найти ответ через поиск гораздо быстрее и проще, чем спросить на форуме и ждать ответа. Ежели человек только начал разбираться в предметной области, то все наоборот. В таком случае начинающий специалист просто не знает, что и как искать. Вопросы новичков не хуже вопросов профессионалов, они просто  другие.

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

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


суббота, 29 января 2011 г.

Вопросы, ответы и комментарии

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

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

воскресенье, 23 января 2011 г.

Отсылка как ложный ответ

Для опытного специалиста характерны два важных качества:
  1. широкое знание предметной области;
  2. хорошая осведомленность о качественных источниках пополнения знаний.
Поэтому при возникновении какой-либо задачи опытный специалист (например, системный администратор)
  • в точности вспоминает, какую команду и как надо выполнить, поскольку он уже неоднократно ее исполнял;
  • в общих чертах вспоминает, какие команды могут подойти, и обращается к руководству пользователя, чтобы прояснить детали;
  • заходит на любимый сетевой ресурс, где можно найти подходящие руководства;
  • обращается к поиску, чтобы найти необходимый сетевой ресурс.
Представим такую картину. Опытный системный администратор с многолетним стажем заходит на форум и видит вопрос: "Как найти файл по имени из терминала в Unix?" У него вполне может возникнуть вопрос, почему спрашивающий не выполнил вышеперечисленные шаги и не нашел ответ сам. Как следствие, возникает соблазн ответить короткой фразой в духе "кури ман". И это будет ложный ответ.

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

суббота, 22 января 2011 г.

Важность оценки

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

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

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

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

воскресенье, 16 января 2011 г.

Учебное задание

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

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

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

суббота, 15 января 2011 г.

Выбор метки

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

Язык. Язык форума русский, поэтому понятие, которое выражает метка, по возможности должно быть обозначено русским словом, за существенным исключением имен собственных. Например, вопросы по алгоритмам правильно отмечать русским словом "алгоритм", а вопросы по C или C++ правильно отмечать английскими словами "c" и "c++". По такому же принципу получаются метки "база-данных" и "mysql" либо "postgresql".

Специфика. Если вопрос относится к какой-либо конкретной предметной области, это должно быть обозначено меткой. Например, вопрос по регулярным выражениям может быть отмечен словосочетанием "регулярные-выражения". Если запись регулярного выражения имеет какие-либо особенности в выбранном языке программирования, то вопрос должен быть дополнительно отмечен меткой, обозначающей язык программирования, например, "javascript".  Не следует перегружать вопрос узкоспецифическими метками, например, не нужно писать версию операционной системы ("ubuntu_9" или "ubuntu_10"), достаточно отметить специфику вопроса в заголовке или теле сообщения.

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

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

воскресенье, 9 января 2011 г.

Интересующие и игнорируемые метки

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

Интересующие метки. Если участника форума интересуют определенные темы (например, разработчика веб-страниц интересует написание HTML, CSS и JavaScript, а разработчика веб-серверов - PHP, Python, Ruby), то для выделения этих тем нужно добавить соответствующие метки (слова html, css, javascript либо слова php, python, ruby) в список интересующих. Это даст
  1. выделение подсветкой всех вопросов, содержащих выбранные метки, в общем потоке;
  2. особый просмотр вопросов без ответа: "мои метки", когда будут показаны только и исключительно вопросы, содержащие интересующие метки.
Игнорируемые метки. Если участника форума заведомо не интересуют определенные темы (например, разработчика драйверов на C не интересует написание скриптов для веб-страниц на JavaScript или для веб-серверов на Python и Ruby), то для скрытия этих тем нужно просто добавить метки, соответствующие этим темам (слова javascript и python, ruby), в список игнорируемых меток. После этого все вопросы, содержащие игнорируемые метки, будут убраны из потока и уже больше не будут отвлекать на себя внимание.


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

суббота, 8 января 2011 г.

Хороший вопрос - залог хорошего ответа

ХэшКод - это форум вопросов и ответов. Поэтому важно уделить особое внимание тому, как правильно задавать вопросы, чтобы на них давались хорошие качественные ответы. Ниже мы дадим ряд советов (основанных на заметке), как повысить качество вопросов.

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

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

Будьте лаконичны. Удалите ненужную специфику из вопроса. Оставьте самое существенное. Таким образом будут достигнуты две цели: участникам форума, отвечающим на вопрос, не придется тратить свое время на чтение ненужного и выделение нужного; вопрос в "чистом виде" превратиться в учебный пример, полезный многим программистам и администраторам, нашедшим вопрос и ответы к нему через поиск.

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

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

воскресенье, 2 января 2011 г.

Метки как разделы форума

Впервые попадая на ХэшКод, пользователю, привыкшему к традиционному форуму, бросается в глаза отсутствие разделов. Обычный форум по программированию содержит ряд разделов по языкам программирования, например:
  • C
  • C++
  • C#
  • Java
  • Python
  • Ruby
и так далее. В чем недостатки такого деления?
  • Форум не резиновый, а критериев для разбиения может быть очень много. Как следствие, обязательно найдутся такие вопросы, для которых не хватит разделов. Они попадут в "общий раздел", где будут мешать друг другу.
  • Программирование - динамичная область знания. Все время возникают новые специфические предметные области. Например, совсем недавно появился новый замечательный язык программирования Go. Следовательно, вопросы по новым темам также попадут в "общий раздел".
  • Если участник форума ошибся разделом, ему будет трудно перенести свой вопрос в правильный раздел: обычно такие возможности есть только у модераторов. Следовательно, такой вопрос останется незамеченным и неотвеченным.
  • Вопрос может быть только в одном разделе, что далеко не всегда удобно. Например, вопросы по С могут иметь свою специфику для Windows и для Linux.
Хэшкод использует более мощный и гибкий одновременно подход - разбиение вопросов на разделы по меткам. Когда участник форума задает вопрос, он может:
  • выбрать уже существующую метку, если она соответствует вопросу;
  • создать новую метку, если подходящих вопросу меток еще нет;
  • изменить метки при необходимости, отредактировав вопрос.
Когда участник форума отвечает на вопрос, ему важно не тратить свое время на просмотр тем, которые ему заведомо неинтересны. Для этого он может:
  • зайдя на главную страницу проекта ХэшКод.рф, выбрать интересующую его тему, кликнув по нужной метке;
  • добавить в закладки обозревателя прямую ссылку вопросы по интересующим его меткам;  например, это вопросы по C#, а это вопросы по Java;
  • подписаться на вопросы по интересующим его меткам в Google Reader или Яндекс.Подписки (или в любой другой удобной службе); например, это подписка по C#, а это подписка по Java;
  • добавить метки в интересующие (доступно после регистрации), это обеспечит почтовую подписку на вопросы по выбранным меткам;
  • добавить метки в игнорируемые (доступно после регистрации), это обеспечит сокрытие всех вопросов по выбранным меткам при просмотре сайта.
Таким образом, метки дают возможность создавать, менять и удалять разделы форума в произвольном количестве на лету, а также размещать и перемещать вопросы в необходимых разделах.

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

суббота, 1 января 2011 г.

Регистрация и авторизация на сайте

ХэшКод использует систему регистрации и авторизации, основанную на OpenID и OpenAuth. Что это дает? Это дает возможность любому посетителю сайта, быть зарегистрированным участником проекта и пользоваться всеми преимуществами регистрации (например, почтовыми уведомлениями или фильтрацией меток) без необходимости создания  и запоминания нового имени и пароля для входа.

Если вы опытный пользователь OpenID, то просто введите ваш OpenID в поле ввода на странице регистрации и авторизации.

Если вы сталкиваетесь с этим впервые, рассмотрим регистрацию и авторизацию для владельцев учетных записей, на примере сервисов ВКонтакте и Яндекс. Если у вас уже есть учетная запись ВКонтакте или Яндекс, вы можете войти на сайт в три простых шага:
  1. Кликнув по картинке с логотипом ВКонтакте или Яндекс, авторизуйтесь на странице ВКонтакте или Яндекс соответственно.
  2. Задайте ваше имя и почту на странице завершения регистрации на нашем сайте.
  3. Перейдите по ссылке верификации почты, присланной в пригласительном письме.
Если вы хотите входить и через ВКонтакте, и через Яндекс, перейдите в ваш профиль, кликнув по вашему имени в строке сверху (рядом со ссылками о проекте и справка). В вашем профиле зайдите в меню инструменты, раздел доступ. Дальше кликните по кнопке "добавить новый источник". На открывшейся странице регистрации выберите дополнительный сервис и повторите шаги выше.

Если же вы хотите входить, указывая имя и пароль, то в профиле, в разделе доступа, вы всегда можете задать и их.