Введение
Некоторое время назад я планировал выступить на конференции SECR, но, к сожалению, мою заявку откланили, так как с подобной презентациея я уже выступал. В комментарии мне был задан интересный вопрос.
По вопросу отношения к ресурсу есть другое мнение. Просто рассказ о ресурсе неинтересен. Было бы полезнее провести анализ социальных инструментов применительно к профессиональному обучению, хотя бы на принципах и критериях, по которым автор статьи “Why I no longer contribute to StackOverflow” - Мichael Richter (см. линк) - оценил рассматриваемый ресурс.
Ниже я привожу пример моего ответа. Возможно и мое мнение к сообществу будет полезно при принятии подобных решений.
Оговорюсь, все комментарии к исходной статье не осилил. Возможно, в них кто-то уже написал все то, что скажу я, а кто-то другой это опроверг. Вопрос о том, быть ли частью сообщества Stack Overflow, – очень субъективный по своей природе. Однозначного мнения о проекте нет и не будет, что и правильно. Все же вклад Stack Overflow в оптимизацию труда разработчиков всего мира сложно переоценить.
Комментарии
Пункт 1. Плохая педагогика. В общем, утверждение неверно. Давайте попробуем понять почему.
Что такое Stack Overflow?
Цель проекта – создать бесплатно распространяемую базу знаний, эдакую Википедию решений прикладных задач. Причем рассматриваемые задачи должны быть конкретные, прикладные и актуальные. Мы ожидаем от участников вопросов вида «Почему возникает переполнение стека при вызове функции Foo из конструктора класса?». Для создания такого рода знаний необходимы две составляющие: изучающий и знаток. Невозможно создать актуальную базу знаний, не зная того, что актуально, а это можно узнать лишь у тех, кто что-то делает.
Какова конечная польза Stack Overflow?
Stack Overflow экономит кислород – создать программное обеспечение, например, для Android в кубометрах кислорода стоит на несколько порядков дешевле, чем до появления проекта.
Педагогика?
Собственно, на что жалуется автор? На то, что вновь пришедшие в отрасль ребята «не умеют использовать поисковик для решения задач». Тут две кардинальные ошибки.
- Поисковик лишь находит информацию по существующим сайтам. Чтобы эта информация появилась, кто-то должен задать вопрос на форуме, кто-то – ответить. Разница лишь в формате представления данных, а как результат – скорости их понимания: информацию, представленную на Stack Overflow, человек поймет быстрее, а поисковик лучше проиндексирует.
- Кто из наших знакомых знает, как подковать лошадь? Где и как делать колодец? Как разжечь огонь без спичек? Практически никто. Такие знания бесполезны сегодня с практической стороны. Аналогично. Зачем кому-то писать бизнес-логику на ассемблере, если есть C#? Представление данных изменилось, упростив поиск информации.
У автора остались способности, которые в обозримом будущем будут бесполезны настолько же, насколько и вопрос с лошадью. Причем тут педагогика, не совсем ясно. Если кто-то против прогресса, пусть идет в библиотеку, проведет там пару месяцев в поисках фактов истории, а потом напишет доклад от руки, вместо использования Википедии и текстового редактора (например, Word).
Пункт 2. Рейтинг.
Stack Overflow – самоорганизующееся сообщество профессиональных разработчиков программного обеспечения, где как содержимым сайта, так и самим сообществом управляют его участники. Рейтинг (репутация) в такой системе – это показатель того:
- какой вклад в развитие сообщества внес участник;
- насколько сообщество доверяет участнику.
С ростом репутации участник получает дополнительные возможности управления сайтом. В пределе такие возможности аналогичны возможностям модераторов. Таким образом, не кто-то волевым решением назначает «управленческий коллектив», а это делает само сообщество за счет голосования. Таким образом «у руля» сайта всегда находятся те, кто делом, а не болтовней доказал свою адекватность, знания и добродетель.
Является ли система репутации на Stack Overflow пределом совершенства?
Нет.
Можно ли быть знатоком в том, что ты не любишь?
Боюсь, что да, можно. Но! Если кто-либо действительно не любит что-то, он вряд ли будет тратить на нелюбимое дело значительную часть своего времени.
На Stack Overflow много простых вопросов?
Чем проще вопрос, тем большим людям он может помочь. Тут главное выдерживать параметры качества. Чуть-чуть более подробно про «простые вопросы» можно прочитать по ссылке.
На Stack Overflow можно набрать много репутации, отвечая на вопросы, используя поисковик.
Да. И здорово, что так происходит. Результат: само сообщество каталогизировало знания, приведя их к приемлемому виду из той помойки, что творилась ранее на форумах. Более того, никто, кроме сообщества, не смог бы этого сделать. Почему? Давайте посчитаем удельную стоимость созданной базы знаний в долларах (так как база на английском языке). Чтобы написать сообщение (вопрос или ответ), состоящее из двух абзацев, необходимо потратить 20 минут, если мы знаем, о чем писать. В случае минимального оформления и добавления кода, все 30. Средняя оплата труда в Штатах для программиста $100 тысяч в год. В году 11 рабочих месяцев, по 21 день в каждом и 8 рабочих часов, итого: 1848 часов в год (11 * 21 * 8). Это 54 доллара в час, то есть если бы какая-либо компания решила воспроизвести базу знаний Stack Overflow, ей бы пришлось платить 27 долларов за сообщение. В момент написания ответа в базе Stack Overflow содержалось 32 686 517 сообщений, что эквивалентно 883 миллионам долларов или 35 тысячам человека лет.
Никто, кроме самого сообщества, не может создать такую объемную базу знаний. Мы вместе оптимизируем нашу работу, приводя данные к более читаемому виду, аналогично улучшению архитектуры проекта или проверке кода коллегами.
Репутация увеличивается, хотя автор не принимает никаких усилий.
Проголосовать «за» одно сообщение дважды нельзя. Если репутация автора ответа или вопроса растет со временем, значит представленные им знания помогают все большему количеству людей, как результат, растет и вклад (читайте «репутация»). Ошибки в этом, лично я не вижу.
Пункт 3. Плохое сообщество.
Как мне кажется, в мире нет ни одного профессионального разработчика, который не знает, что такое Stack Overflow или хоть раз не попадал на страницы сайта из поисковика. Все эти люди и есть сообщество Stack Overflow. Да, мы можем быть лучше.
В общем, я о том, что подобные высказывания аналогичны либо «все мужики козлы», что происходит, когда высказывается общая обиженность на определенную природную черту, присущую группе людей, либо происходит в случае самобичевания, что отлично знакомо русскоязычному сообществу, где каждый говорит, что на русском языке ни один уважающий себя программист не общается, хотя каждый ежедневно по многу раз обсуждает с коллегами проблемы на родном языке и при этом считает себя профессионалом (подробнее о причинах запуска Stack Overflow на русском вы можете узнать, посетив эту страницу).
Социальная составляющая проекта.
Не до конца понял исходный вопрос про социальные инструменты. Все же попробую дать ответ в общем виде.
Профессиональные знания нужны нам, чтобы достигать поставленные целей. Чем больше знаний у нас есть, тем больший спектр проблем поддадутся решению. Чем качественней знания, тем эффективней решения.
Профессиональные знания (как и любые другие) можно передавать либо устно, либо письменно. До широкого распространения письменности среди ремесленников преобладал устный вариант, совмещающийся с наглядными примерами, то есть вариант подмастерья в течение от пяти до семи лет. Все прекрасно в этом подходе, за исключением ограниченных возможностей выбора профессии. В современной истории преобладает вариант разделения на изучение теории (по книгам) и практики, из-за чего возникает большой разрыв межу багажом «ненужных знаний» и отсутствием «нужных».
Интересно взглянуть, почему так получается.
По сути, набор получаемых знаний регулируется государственным органом, который выбирает то, что в учебниках будет написано, тех, кто их напишет, и тех, кто по ним будет учить, руководствуясь своими соображениями. Подобная процедура достаточно затратная и трудоемкая, как результат, набор предоставляемых знаний обновляется намного реже, чем того требует действительность.
Втором большим недостатком является сама селекция. Далеко не каждый специалист готов посвятить всего себя обучению «нового поколения», как результат, приходится выбирать из тех, кто согласится. Затем необходимо еще несколько раз сузить круг кандидатов, например, по политическим взглядам (далеко не все согласны с «политикой партии» в отношении образования), по личностным характеристикам (далеко не у всех есть пристрастие к написанию) и так далее. Как мы видим, из всех людей, кто выберет какую-либо профессию, вероятность того, что лучшие из лучших будут обучать будущих коллег, далеко не самая высокая, хотя, конечно же, есть.
В результате имеем сегодняшнюю систему образования.
Что делает Stack Overflow для улучшения ситуации?
- Лучшие знатоки индустрии как учителя. Stack Overflow дает многим увлеченным разработчикам – настоящим знатокам индустрии – то, чего им действительно не хватает в повседневной деятельности, – профессиональное общение. В ответ эти «лучшие из лучших» дарят сообществу свои знания и опыт – то, что должна давать нам образовательная система. С большой вероятностью вы ни за какие деньги не убедите VladD оставить профессию и пойти преподавать, но вы можете получить от него те же знания в виде ответа совершенно бесплатно, задав вопрос. Сама же связка вопрос плюс ответ служит мини-исследованием конкретной проблемы. Обучение по подобным исследованиям в будущем может заменить обучение по книгам.
- Концентрация на актуальных знаниях. Главная особенность Stack Overflow в том, что на сайте разрешено задавать исключительно конкретные узкие прикладные вопросы. Подобные вопросы появляются исключительно в момент непосредственной работы. Таким образом, создаваемая база знаний содержит только актуальную информацию. Конечно, знания устаревают со временем, а в нашей отрасли это происходит на порядок быстрее, чем во многих других. Для учета этого в инструментарии по управлению содержимым сайта доступна возможность голосования за закрытие и удаление вопросов – если сообщество решит, что знания более не нужны, у него есть все необходимые средства исправить ситуацию. В дополнение система автоматически время от времени удаляет «заброшенные» вопросы (подробнее).
- Знания сообщества. Эффективность Stack Overflow заключается в проверке достоверности сообществом: если какая-либо информация кажется участнику неверной, он может принять участие в голосовании, а также предоставить свой, «правильный» вариант. В результате большинство знаний, представленных на сайте, верны (в обратном случае, это заметно по оценке сообщения и комментариям к нему).
- Участие в профессиональном сообществе с начала карьеры. Если вы «живете» в нескольких социальных кругах, например, ваша основная работа связанна с интеллектуальным трудом, и при этом вы профессионально занимаетесь спортом, вы можете видеть, что в каждом обществе действуют свои правила взаимодействия между людьми, которые зачастую очень сильно разнятся от одной социальной группы к другой. Устраиваясь на работу в первый раз, зачастую среднестатистический специалист откроет для себя много нового в самом процессе взаимодействия с коллегами. В некоторых ситуациях это может перерасти к появлению вредоносного авторитетного мнения, которое может быть ошибочно. На мой взгляд, общение в профессиональном сообществе на ранней стадии становления специалистом крайне важно для принятия более обоснованных взвешенных решений при общении с коллегами в будущем.
В завершение вопроса социальной значимости обучения хотел подчеркнуть принцип свободы знаний. Мало кто задумывался (особенно, к сожалению, в нашей стране) о том, кому принадлежит содержимое сайта, создаваемое сообществом. Вся база знаний Stack Overflow принадлежит никому и всему сообществу. Для удобного взаимодействия с данными есть API и регулярные снимки всей базы данных! Хотите скопировать все вопросы и ответы и разместить их на своем сайте? Пожалуйста! Хотите локальный поиск? Все в ваших руках! На мой взгляд, такой подход является одним из тех, которые определили успех проекта.