Pull to refresh

Comments 107

Отчасти видимо потому что вендоры не занимаются SEO :)
Порой для нахождения решения задачи бывают затруднения в какой части официальной документации искать ответ.
Именно поэтому я говорю про SEO. Подавляющее большинство официальных документаций, с которыми мне приходилось сталкиваться за 20+ лет в программировании и смежных областях, не ориентированы на поиски решения конкретных задач. Во многом это зависит от системы поиска в документации, но часто даже Google выдает SO выше чем свою собственную публичную документацию.
А по-моему прежде всего по тому, что на StackOverflow люди людям дают конкретные практические ответы на конкретные вопросы как они есть, в то время как официальную документацию (особенно автосгенерированную) порой приходится ещё долго «курить». Ну и да, таки SEO — тэги и сформулированные человеческим языком вопросы, конечно, делают своё дело. Особенно радует автоподсказка из имеющихся вопросов когда начинаешь вводить свой — часто ответ находится именно так.
Ну, смотри, — для какой-то компании «Пупкин и КО» с продуктом "תוכנה" совсем не сложно делать развернутые FAQ`и на основании вопросов своих бета-тесторов, а потом постоянно мониторить инет на предмет того где и что люди спрашивают про тот продукт и так же постоянно пополнять FAQ. Но вот сколько я знаю контор, так все только забивают FAQ общими положениями и все, что новое приходит в Support Center так и остается где-то в глубине — FAQ`и не пополняют ((( Я наоборот вижу тенденцию того, что мол вот, потратимся, сделаем за раз как можно более развернутый User Guide с примером 2-3 типовых приложений и… все. Все замирает.

Я вот народу говорю мол, зачем сразу тратить силы на высосаные из пальца факи — давайте по мере поступления вопросов его пополнять, но это почему-то не находит никакого отклика. Странно.
Особенно странно потому, что это противоречит определению FAQ. Назвали бы раздел честно «Вопросы, которые должны по нашему мнению у вас возникнуть (а остальные типа „блин, а сколько это стоит?“ вы должны задавать лично)».
Один из принципов «белого» SEO как раз и заключается в том, чтобы формулировать задачу на языке понятном потенциальному посетителю. Грубо говоря нужно писать на странице не «мы продаем», а «у нас вы можете купить», потому что люди обычно ищут не кто продает, а где можно купить. Официальные же документации обычно грешат обратным — «продаём», а не «можете купить», «с помощью такой-то функции можно решить такую-то проблему», а не «такую-то проблему можно решить с такой-то функцией». Они (офдоки) несут справочную, но не обучающую функцию.
Дурацкие w3schools выдаются зачастую выше, чем StackOverflow…
Пример хорошего SEO и плохой документации.
Главное не забывать ставить в комментах ссылку на вопрос в SO. Кстати о полезности комментов :)
о, годная идея, спасибо :) буду так делать.
Не за что благодарить — о себе же забочусь :) А судя по пересечению наших «состоит в» вероятность не нулевая :D
> судя по пересечению наших «состоит в»

я подписан на всё — это единственный способ отсматривать все свежие посты в ленте :)

Я тоже. По крайней мере подписался на всё, когда эту ленту ввели. :(
Не единственный — хабровский RSS отдает все посты.
давным-давно уже. Особенно, если копипастишь или пишешь сильно по мотивам. Мол, если что не так, см. SO.
Адепты Copy-Paste Driven Development возликовали.
Кстати, я SODD использовал несколько в другом контексте. Как автор open-source библиотечки, захожу на SO и ищу по тегам нужной тематики, какие вопросы задают пользователи и с какими трудностями сталкиваются у конкурентов. Таким образом, новый функционал реализую на основе этих данных.
Только не это! Оставьте документацию, пользуюсь и тем и другим. Это как соленое и сладкое.
Вот именно, когда я ем соленое, то не буду одновременно есть сладкое.
Если в торте не будет использоваться соль вообще, я думаю вы это сразу заметите.
Эта абстракция уже не в тему.
Это не абстракция. Абстракция как раз у вас. Вы все перепутали :)
Маринованные огурцы любите? Посмотрите на состав, внезапно, там сахар.
Я активно пользуюсь документацией всегда. Проблема в том, что часто документация просто не покрывает какие либо сложные вопросы, и тут только можно воспользоваться чьим либо опытом: блоги или форумы.
Лично мне документация помогает (после первичного прочтения «по-диагонали») обычно в случаях только, когда не помнишь синтаксис или сигнатуры. То есть когда точно знаешь что нужно сделать в теринах языка/библиотеки/фреймворка, но не помнишь как точно это делается. А вот когда задача стоит как сформулировать бизнес-требование в терминах языка/..., то тут в полной силе показывают себя плоды коллективного, а не корпоративного разума.
Я больше всё-таки документацию читаю, особенно, если нужно с чем-то глубоко разобраться. Stack Overflow хорош, чтобы получить направление «в какую сторону копать» или, если произошёл «затык» в каком-то месте.
А 50% времени сидят там те, кто рейтинг набивает. :)
«Проблема» в том, что Гугл часто выводит SO (и другие подобные ресурсы, включая Хабр :) выше офдоков даже по тем запросам, которые подробно освещены в них. А после этого совесть не позволяет не внести хоть какой-то вклад в общую копилку знаний, и ищешь вопросы, на которые можешь ответить, хотя бы глядя на неотвеченные. И тут получается обратная связь… Для вендоров — отрицательная вроде, а для простых людей — положительная.
Мне MSDN и другие официальные сайты с документацией, а также википедия обычно выводятся в числе первых ссылок. Может поисковая система уже адаптировалась под ваш выбор и выводит в числе первых SO. :)
По рабочим моментам я обычно с большой достоверностью предсказываю, что она выведет на первое местот. :) Вики или php.net — 100%. Единственное ошибаюсь — хабр или стэк, даже если русских слов не употребляю. То есть может гугл под меня может и подстроился, но так умно, что различает когда я ищу вещи связанные с программированием вообще и с «любимым» языком в частности, а когда с предметной областью.
PHP.net — это тот же SO, только в профиль. Там 90% документации — это не «официальное» описание функции, а комментарии к нему. Неслучайно же оффлайновую справку ваяют вместе с комментариями — без них она бесполезна. Особенно это касается новых фич, для которых зачастую кроме сигнатуры нет никакой справки.
Честно говоря, комментарии там читаю для общего развития, но не для конкретных проблем — для них помогают редко. Наверное понял логику разработчиков и не пытаюсь делать то, что этой логикой не предусмотрено :) Единственное — новые фичи «мучаю», особенно дереференсинг в надежде, что придёт к сишному виду.
Согласен. Я, видимо, так редко посещаю SO, что в результатах поиска он если и встречается, то где-нибудь на последних позициях, а чаще его вообще нет.

По основным инструментам предпочитаю доки.
Может вы так создаете поисковые запросы. на, грубо говоря, strftime мне гугл первым дает ссылку на php.туе, а на, утрируя «как получить из времени строку» — стэк. Я даже не могу сказать однозначно, то ли гугл читает мои намерения, то ли я их явно (для него) задаю, но редко когда я хочу увидеть стэк мне попадаются офдоки, и наоборот.
А 50% времени сидят там те, кто рейтинг набивает. :)

Довольно сложное занятие, кстати. Лёгкого фарма нет: или сложные вопросы, на которые очень немногие знают ответ, или специфические вопросы, которые долго расковыривать («Невоспетый герой» FTW), или общие вопросы, в которых побеждает самый длинный ответ… Жалкие 3К нафармить всё никак не могу. Начал с некромантией экспериментировать…
Кстати да, нафармить реально сложно.
Извиняюсь, за неосведомлённость, а зачем? В смысле зачем рейт набивать?

upd: нашёл ответ в комментариях ниже (:
Сильно зависит от тегов.
В набирающей популярность теме фармится быстро. В C# или Java естественно бесперспективно, но есть теги по которым много относительно простых вопросов. Новая интересная фича, любопытный, но не слишком распространенный фреймворк — по таким темам 3к набрать не сложно.
А что дают 3K на SO?.. Для себя интересуюсь :)
проблемы набрать рейтинг на стаковерфлое нет совсем. «побеждать»-то совсем не обязательно. все что нужно для репы — это сказать банальность в ответ на банальный вопрос, скажем, «юзай prepared statements». и все — симпатии аудитории тебе обеспечены, пару плюсов в карму, считай, заработал. учитывая скорость появления вопросов, проблемы набрать вожделенный рейтинг нет вообще. причем чем тупее вопрос (читай — доступнее для аудитории), тем активнее плюсуют ответы. а, с тупыми вопросами там никогда проблемы нет, поскольку система поощряет их (как и тупые ответы, кстати). у меня, конечно, статистика по тегу РНР, но не думаю, что в остальных популярных сильно лучше.
Ага.

1. Be the First to Answer. Even at the cost of quality.
2. Use Downvotes and Comments Strategically
3. Use obnoxious in-your-face formatting and lists.
4. Be Aware of the 200 rep/day Limit
5. Edit, But Don’t Edit Too Much
6. Associate your other accounts

Six simple tips to get Stack Overflow reputation fast
Раз уж вы процитировали объясните, пожалуйста, что за «200 rep/day Limit»?

И кстати, да, тут забыли хитрый план плюсовать вопрос, на который отвечаешь.
Нельзя заработать больше 200 репы в день (баунти всегда вне ограничения). Для регулярно упирающихся в ограничение есть «утешительный» золотой бадж Legendary (хотя у всех его обладателей за 50К репы, так что необходимость в утешении под вопросом :) ). По-моему, самый престижный бадж на СО.

На самом деле это не самая грязная инструкция, которую я встречал. Но не нашёл ту, в которой все пункты во всех подробностях расписаны: как аккуратно минусовать противников на короткие промежутки времени, как правильно быть первым и т.п.
Спасибо. Выяснил, что +15 за accepted answer тоже вне ограничений — а то я удивился как тогда мне больше 200 упало за день.
понимаете, я не теоретик. я практик. и я знаю, о чем говорю.
в этом списке не представлен самый простой способ, о котором я говорил — отвечать на самые тупые вопросы. чудовищное количество вопросов с тупо неверным синтаксисом и опечатками, к примеру. чем доступнее массовой аудитории вопрос, тем больше плюсов зза ответ. именно поэтому, кстати, на сложных вопросах карьеры не сделаешь. тамошние бандерлоги, кстати, бывает, норовят и вовсе закрыть вопрос, на который они не знают, что ответить.
а вообще, конечно, лучший способ набрать репутацию — это ничего не фармить, а просто отвечать на вопросы.
>А 50% времени сидят там те, кто рейтинг набивает. :)

Получить какой-то рейтинг там можно только глубоко раскопав для начала какой-нибудь сложный вопрос и потом подробно на него отвечая, с примерами кода. Ответы уровня «тебе нужен класс/технология X» плюсов практически не получают и популярностью не пользуются. Ценится именно код, причем вычищенный от всякого хлама, а это довольно сложно и трудоемко.

Да, это все про C#. Думаю, зависит от технологии.
Ну вот поэтому и приходится сидеть 50% времени. :)
примеры кода присутствуют в 56% принятых ответов

Сразу вспомнился StackSort
А я по себе заметил, что чаще смотрю описание каких-то частей C++ на cplusplus.com. Подумал, что MSDN должен иметь ровно ту же информацию, да еще и лучше. Попробовал смотреть на MSDN, но не тут то было, и информации меньше и оформлено хуже. Вот и смотри так на оф документацию.
На stackoverflow, вас, кстати, побьют за cplusplus.com. Вместро этого предалагают cppreference.com, в котором нет косяков.
Когда замечал неточности на cplusplus — писал туда, реагировали в течение пары часов.
В официальной документации редко можно найти костыль walkaround для известных багов, которые компания-разработчик не признаёт или не замечает.
А на том же Stackoverflow по таким вещам можно найти целые кладези знаний.
walkaround — это танец «чернокожих» минестрелей в 19 веке,
а то, о чем вы говорите называется workaround
Сам удивился, когда перечитал свой пост, но было уже поздно. Видимо, android-ная авто-замена решила, что «walkaround» тут уместнее, чем «workaround». Порой она радует своим видением мира.
Если учесть, что в официальной документации зачастую рассматриваются самые простейшие задачки, а в худшем случае — вообще сферическая задача в вакууме, то да — я буду ходить на StackOverflow =)
SO удобнее тем, что там все собрано в «одном месте», и не приходится ходить на другие форумы/доски же
А чем принципиально отличается поиск по тысячам вопросов на SO и по тысячи прочих сайтов?
Действия одни и те же: поиск -> разгребание его результатов.
SO и официальная документация — это совершенно разные вещи, друг друга дополняющие:
  • Официальная документация нужна для получения представления «как это работает». Для описания структур, методов, свойств, аргументов функций и т.д. Это как теоретическая подготовка.
  • SO незаменим для решения практических проблем, выходящих за рамки описанного в документации.
Официальная документация — о том, как должно работать
SO — если работает не так, как должно по документации или не работает совсем
Внесу свою лепту в ветвь рассуждений. Занимаюсь веб разработкой и php учил только по документации на php.net можно исчерпывающе узнать и описания и подсказки использования и комментарии интересные. Когда занимался разработкой под Windows MSDN кладезь знаний, нашел WinAPI функцию по имени — вышел в корневой раздел — почитал для чего она используется, какие аналоги есть, отрыл раздел Usage куча примеров как сделать то или иное действие. В общем, искал одну функцию, а узнал много нового и полезного.

Теперь о Android. Не так давно решил его изучить (при этом не зная Java). Полез на developer.android.com, хм статьи про паттерны, про красивый дизайн приложений, но без от ссылок к коду и примеру реализации. Начал искать по названию метода — написано этот метод наследует вот этот эта функция возвращает другой объект… Хм для чего? Почему? Как это применить? Гуглим попадаем на SO, а там и пример и описание почему так и зачем этот метод здесь применен.

ИМХО гугло документации не хватает примеров применения, посмотрите php.net описание функции — пример использования, посмотрите MSDN описание функции — раздел Usage с примерами применения… Посмотрите developer.android.com/reference/android/app/AlarmManager.html.
документация Android подразумевает, что программист _уже_ умеет в java, поэтому там опускаются разъяснения очевидных, для опытного java-разработчика вещей. Та же проблема у меня.
ИМХО документация по самой джаве ничуть не лучше.
Если бы не существовало официальной документации, откуда люди брали бы информацию для ответов на Stack Overflow? Экспериментальным путем Методом тыка можно разобраться во многом, но не во всём.
Точно, это вообще лучшая документация. Если код чистый, что бывает не часто.
Не пойдет. Исходники содержат текущую реализацию, а полагаться можно исключительно на интерфейс.
Причём ответ «из исходников» работает даже в парадоксальных случаях типа C# — нередко встречается анализ декомпилированного кода фреймворка, иногда анализ дизассемблированного кода…
Зря вычеркнули. Самый заковыристые варианты решений именно что экспериментальным путем.
Большая часть ответов на SO это копипаст избранного куска доки + кусок кода. Так, что тут замкнутый круг. А вообще мне нравится как сделано у Unity3d, там отличная документация с описанием и картинками, и свой СО, в котором можно найти практически все, например «Как сделать планетарную гравитацию как в Angry Birds Space», и в ответах будет сразу и парк кусков кода на юнити, и ссылки на теорию, и даже ссылки на плагины, если такие есть.
Большая часть ответов на SO это копипаст избранного куска доки + кусок кода.
А все почему? Потому что народ лезет задавать вопросы на SO, не почитав официальную доку. Но нам не лень (иногда), мы почитаем и напишем ее в ответ.
Во-первых, возможно, потому что SO лучше проиндексирован гуглом, чем официальная документация.

Во-вторых, поисковый плагин встроен в браузер, а поисковик по документации — нет. У меня в поисковых плагинах файрфокса есть php.net и htmlbook.ru, но нет api.jquery.com и knockoutjs.com/documentation.
А в хром ничего, кроме гугла, не встраивается.
Вы просто не умеете его готовить.
Сначала лезу в документацию, а если что-то сделать ну никак не получается, спрашиваю у SO.
Если лезть туда по любому поводу, то мало того что не поймешь ничего, так еще и нарвешься на коммент «What have you tried?»
Потому что документация заточена на «как работает функция», а комментарии на php.net и ответы на SO «как решить практическую проблему». В массе, второе нужно гораздо чаще и не всегда тратится время на «разобраться как работает».
Какое-то исследование британских ученых из серии: «Чем чаще занимаются люди — сексом для удовольствия или сексом для деторождения?»
Если в документации есть возможность комментирования (как, например, на php.net) и там много примеров, то Stack Overflow редко бывает нужен.
Комментарии с примерами, датированные 2008 годом, убивают. Хочется заминусовать.
Лично я ищу вне официальной документации только по причине отсутствия примеров или отсутствия достаточных примеров для реализации.
К сожалению, stackoverflow — тоже не панацея. Для редких алгоритмов (таких, которыми либо никто не занимался, либо у которых нет свободной реализации, либо свободная реализация есть, но она слишком громоздка) получишь висящий в воздухе вопрос, а реализацию все равно самому писать придется.
Причем, что интересно: есть уйма специализированного софта, в котором явно нужные мне алгоритмы реализованы, но свободных нет! Либо я плохо ищу, либо этот софт никому не нужен…
2 года писал на Qt, официальная документация отвечала на все вопросы, на SO не заходил ни разу. Так что MSDN и Ораклу еще работать и работать, если хотят выйти на первые строки в поисковике
Тенденция эта существует уже давно. Я даже задумывался, почему в результате приходится переключаться из IDE в браузер, чтобы найти ответ на вопрос. Ну, например, гугление по непонятному сообщению об ошибке часто помогает. Оказалось, что это направление исследуется, есть и прототипы инструментов. Если задуматься над тем, сколько лишних действий мы делаем — сразу появляется масса идей в этой области.

Несколько прототипов инструментов и статей по теме:
Codetrail от User Interface Design Group CSAIL MIT — это связанные плагины для Eclipse и Firefox, которые позволяют автоматически открывать нужную документацию и привязывать закладки на веб-страницы к файлам проекта.
Hypersource (Berkeley) — связывает историю поиска с изменениями в исходном коде.
— What Would Other Programmers Do? Suggesting Solutions to Error Messages Björn Hartmann, Daniel MacDougall, Joel Brandt, Scott R. Klemmer — про HelpMeOut, социальную рекомендательную систему о решениях, которые другие программисты принимали при появлении аналогичных сообщений об ошибках
— An Empirical Investigation of Opportunistic Programming: Interleaving Web Foraging, Learning, and Writing Code Joel Brandt, Philip J. Guo, Joel Lewenstein, Mira Dontcheva, Scott R. Klemmer — оказывается у copy/paste (или by example) programming есть научное название :)
заголовок выбран очень неудачно. в гугл-групсах была поддержка, а не документация. документацию же заменить стаковерфлоем в принципе невозможно — знания отвечающих взялись из документации.
сказать, что стаковерфлой заменит документацию — это фраза из серии «Гена, давай я понесу чемоданы, а ты понесешь меня?»
Знания отвечающих могут браться из различных источников, включая самостоятельные исследования. Причем не редкость, что эти знания полнее чем в документации.
Вот, кстати, да — хотел об этом написать, но не стал, чтобы не размывать основную мысль.
Если абстрагироваться от контекста обсуждаемого вопроса, то опыт и самостоятельные исследования играют огромную роль в ответах и этим выгодно отличают СО от документации.

Но я говорил именно в контексте. О том, что документация является одним из основных источников знаний отвечающих, и упомянутые статьи от микрософта и гугла, равно как и официальную документацию по языкам, СО никогда не заменит. И начинались эти знания, которые в итоге оказались полнее — все-таки с документации.
Впрочем, как я понимаю, с этим тезисом никто и не спорит :)

Насчет опыта, впрочем, тоже не все так радужно.
СО — это, по сути, два разных сайта:
— кулинария с готовыми продуктами
— и стол заказов
Для человека, приходящего из гугля — это готовые ответы на его вопросы.
Для человека, который пришел спросить — это далеко не всегда положительный опыт или прикосновение к сокровенным тайнам. На сайте 5 миллионов вопросов! И рискну предположить, что ответы далеко не на все из них написаны корифеями-исследователями. Как выше писали — подавляющее большинство ответов дается методом копипасты с того же СО, и далеко не всегда качественной.
А на единственный свой вопрос, ответ на который нельзя было накапитанить, я получил ответ только через месяц.
Если на stackoverflow написано что SomeFunc(a,b) = a+b, и это действительно работает, то это не значит что это так и есть.

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

Сверяться с документацией нужно чтобы убедиться что используете документированное поведение, а не побочный эффект.

Конечно, если отвечающий на stackoverflow добросовестно укажет именно документированное поведение, то вопрос снимается.
Обычно в ответах приводят ссылки на источники, если это необходимо. Во всяком случае, в разделе С++.
Ну да, если источник оффициальная документация — это хорошо.
В официальной документации этого может и не быть вплоть до «эта функция пока без документации».
UFO landed and left these words here
Кто-то недавно говорил (переведено на русский): «Чтение документации это как поиск в связном списке. Использование SO это как запрос к хеш-таблице.» Ну т.е. O(n) против О(1).
Не знаю… я всегда оф. доки читаю сначала… а вот если они вопрос не покрывают то сразу пишу в гугл группы и на стек. Пмоню былые времена когда этого не было… вылов и фикс багов занимал куда больше времени. Стек один из немногих социальных проектов который реально несет пользу.
Частный случай Google-driven-development :)
Результат мы как правило видим — костыль на костыле. А казалось бы — открой документацию — там всё написано.
Информация должна быть, в первую очередь, доступной, во всех смыслах, как для понимания, так и для получения.
Терпеть не могу когда посылают просто куда-то RTFM, мол, найди в документации что да к чему, когда нужно срочное решение возникшей проблемы, и нет времени разбираться, и от своевременности решения много что зависит.
Люблю стэковерфлоу как раз по той причине, что он дает конкретные решения проблем, не заставляя разбираться «почему» и «как это возможно», особенно в ситуации когда «надо вчера».
Из недавнего — из официального мануала php вообще толком не понятна(да, извините, я не php-программист) взаимосвязь post_max_size, и upload_max_filesize, и почему первый должен быть больше второго, а также каким образом все это связано с memory_limit. А на стэковерфлоу я сразу нашел решение задачи(почему обрубалась заливка файла на сервер), с доходчивым описанием проблемы и адекватным комментарием роли каждого параметра.
P.S. За более-менее хороший образец документации считаю Xcode, если это имеет значение, хотя и там некоторые моменты размыты.
На SO много готовых бантиков и рюшиков для jQuery. Поэтому дабы не изобретать велосипед, я в поисковых результатах сразу смотрю SO, а не доку по jQuery.
Да ничего не заменяет, просто на StackOverflow обсуждаются практические приемы и проблемы, которых в документации не найти.
Два года назад когда писал фб приложение нужно было оформить подписку на все нотификации на странице, всё сделал по документации, но не работало. Ответ был баг, но и был найден танец «чернокожих» минестрелей :) костыль в SO. Оф документация нужна, так как сложно писать что либо не понимая как всё обустроено. А SO чрезвычайно полезен в решениях проблем. Видимо сложилась тенденция что не находится в документации спрашивается в SO.
Не удивительно. Проще воспользоваться поисковиком, чем пытаться найти ответ в документации софта от Microsoft.
Only those users with full accounts are able to leave comments. Log in, please.