Stack Overflow не так давно выпустил пост в блоге о том, что Stack Overflow не приветствует и что они намерены это изменить. В конце поста они просят оставить отзыв у пользователей. Это мой отзыв и ответ на этот пост.

Функция Fun Fun создала видео, слабо привязанное к этому сообщению в блоге, где MPJ рассказывает о вежливости и четком общении, а также о том, как эти две вещи связаны друг с другом.

Я хочу сделать видео, которое будет прямым ответом на сообщение в блоге. Надеюсь, я не опоздал.

Мой опыт работы с переполнением стека

Я iOS-разработчик с опытом разработки ~1 год. Я задал свой первый вопрос о переполнении стека 2 года назад, и с тех пор я задал много вопросов. Эти вопросы касались не только разработки Swift и iOS, но и других языков программирования.

Мой первый вопрос

Свой первый вопрос я задал на Stack Overflow 2 года назад, и он был следующим: «Как получить доступ ко второму элементу массива в словаре внутри массива?»

Этот вопрос был, пожалуй, довольно глупым. Но вы должны принять во внимание, что на тот момент я был новичком в Stack Overflow и Swift. Я даже не знал, что существует документация, не говоря уже о том, как ее использовать.

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

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

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

Текущее состояние моей учетной записи

Я задал несколько «глупых» вопросов, за каждый из которых проголосовали против, и теперь, если я попытаюсь задать вопрос, я увижу это красное поле:

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

На мой взгляд, возможность быть забаненным в результате анонимных, необъяснимых и, возможно, небрежных отрицательных голосов — это слишком суровая санкция. Наказание не соответствует «преступлению».

Мое обращение по поводу сообщения выше

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

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

Так что я эволюционировал. Я обнаружил, что есть сервисы, которые предоставляют вам электронный адрес на час. Поэтому я использую эти адреса электронной почты для регистрации учетных записей записи для переполнения стека. На данный момент у меня есть 3 аккаунта, помимо основного аккаунта, 2 из которых забанены, я забыл имя пользователя и пароль для них, поэтому у меня нет доступа, и я даже не могу их идентифицировать. Я не доволен этим. Я бы предпочел, чтобы все мои вопросы были глупыми или не касались меня, но я чувствую, что у меня связаны руки.

Очевидно, у меня проблемы с задаванием «плохих вопросов». Но почему у сообщества есть право маркировать вопрос как правильный или неправильный? Ведь плохого вопроса не бывает, а если есть, то задающего не надо распинать, а только поправлять.

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

Каково это задавать глупый вопрос на другом сайте

Например, вот вопрос и ответ на него, который был бы последним гвоздем в гроб моей основной учетной записи, но я задал его на форумах Swift:

Вопрос «С каких это пор мне нужно использовать .pointee вместо .memory для доступа к данным указателя UnsafeMutable?».

О: Это произошло «давным-давно в Swift 3 в рамках SE-0006: Применение рекомендаций API к стандартной библиотеке 9».

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

конкретно мои проблемы

Пост Stack Overflow начинается с определения центральной проблемы:

Слишком много людей воспринимают Stack Overflow¹ как враждебное или элитарное место, особенно новые программисты, женщины, цветные люди и другие представители маргинализированных групп.

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

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

Пометка вопросов как повторяющихся

Это не обязательно плохая функция, но я считаю, что она используется неправильно.

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

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

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

Мое предложение решения

Если вопрос помечен как дубликат, задающий должен иметь возможность ответить либо

  • Подтверждение того, что на его/ее вопрос был дан ответ, и в этом случае вопрос может быть заархивирован. Но все же это не должно оставлять негативного следа в профиле того пользователя, который его задал.
  • Апелляция В случае, если ответ не применим или ответ по-прежнему не решает его или ее вопрос. Это может быть связано с тем, что проблема находится в другом месте, а также ответы могут устареть.

Голосование против

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

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

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

Мое предложение решения

Все причины, которые я только что упомянул выше, не должны приводить к отрицательным отзывам.

  • Если решение вопроса действительно можно найти в документации, то эта часть документации должна быть связана как ответ.
  • Если кода недостаточно, мы должны иметь возможность запросить больше, пока не поймем проблему.
  • В случае, если вопрос очень сложный и мы не можем ответить на него, возможно, это может стать вызовом, и бонусные баллы могут быть даны тому, кто первым ответит на вопросы.
  • Я даже не могу придумать причину, по которой нужно минусовать.

Мусор одного человека - сокровище другого человека

Просто в качестве примера мой первый вопрос был «Как мне получить доступ ко второму элементу массива». Я задал этот вопрос 2 года назад, и его критиковали и все такое. Но это мой самый популярный вопрос на сегодняшний день с 2к просмотров. Это означает, что то, что вы считаете глупым, ценят другие. Представьте, если бы за этот вопрос проголосовали все, кто счел его полезным. Я уверен, что у него не было бы -6 репутации. Это еще раз показывает, что рекомендуется голосовать против, но не голосовать за.

Бесполезные комментарии

Бесполезные комментарии остаются безнаказанными, а бесполезные вопросы распинаются.

Есть люди, которые просто комментируют:

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

Общая философия переполнения стека

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

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

Поощрение сообщества

Существует множество документации о том, как использовать Stack Overflow, но неразумно ожидать, что люди прочитают ее, прежде чем опубликовать свой первый вопрос. Любой, кто задает разумный вопрос, заслуживает ответа, даже если он дублирует глупость или что-то в этом роде.

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

Следует поощрять голосовать за вопросы, отмечать ответы как правильные и отмечать вопросы как отвеченные.

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

Кроме того, есть несколько сомнительных значков. Например, «давление сверстников». Это присуждается, если вы удалите вопрос, который не был хорошо принят. Это может быть веселой шуткой, но сейчас это серьезная проблема. Это один из самых награждаемых значков на Stack Overflow. Это означает, что в результате есть много отрицательных голосов и запуганных людей.

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

Другие улучшения

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

Некоторые вопросы заданы не в том месте. Это просто закон природы. В этом случае модераторы должны иметь возможность редактировать теги или вопрос и помещать его в нужное место. Я знаю, что это работает при переполнении стека, но на практике я нечасто сталкивался с этим. На других подобных сайтах, таких как Reddit и Swift Forums, это работает хорошо.

  • Мнение или другие вопросы

Если Stack Overflow не будет иметь дело с самоуверенными вопросами и ответами, на странице написания вопроса должен быть отказ от ответственности. Что-то вроде «Stack Overflow — это не сайт, где можно узнать мнение! Для этого вы можете перейти на Reddit: r/iosprogramming».

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

Вывод

Я знаю, что некоторые из упомянутых мной решений уже реализованы в Stack Overflow, но я хочу подчеркнуть, что важны действия. Инструменты бесполезны, если мы не практикуем тему.

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

Я готов помочь, чем смогу, но это сложно с почти заблокированной учетной записью, поэтому Stack Overflow, я был бы признателен, если бы вы помогли мне с этим!

Связанный

Первоначально опубликовано на сайте kristofk.com 24 мая 2018 г.