Відразу скажу, що я згоден із Меттом Бірнером фактично у всьому. Але я маю кілька доповнень, які мені здаються досить важливими, і якими я хотів би поділитися.
Я наважився написати цю замітку тому, що за сім років, проведені на SOя досить добре вивчив спільноту зсередини. Я відповів на 3516 питань, поставив 58, увійшов до hall of fame (top 20 у всьому світі) в обох мовах, якими пишу постійно, потоваришував з багатьма розумними людьми, і активно користуюся, мабуть, усіма можливостями, що надаються сайтом.
Щоранку, за ранковою кавою, я відкриваю стрічку новин, twitter, і — SO. І я вважаю, що цей сайт може дати розробнику набагато більше, ніж сніпет для копіпаста, дбайливо запропонований DuckDuckGo.
Саморозвиток
Колись давно я натрапив на такий твіт:
Paradoxically, я бачу кращий спосіб дізнатися про нові мови є answer questions ще раз, як вони. - Джон Еріксон
Тоді мене трохи здивувала постановка питання, але згодом я переконався, що це чиста правда. Хакер Rank, фізичні вправи і подібні сайти надають можливість вирішити сферичні завдання у вакуумі, і навіть обговорити ваше рішення з приємними доброзичливими людьми. Переважна більшість книг нині доповнена прикладами, які можна завантажити та запустити. На гітхабі можна знайти цікавий проект на досліджуваній мові, і поринути в безодню чужого вихідного коду. До чого тут SO? — відповідь проста: тільки на SO питання народжені життєвою необхідністю, а чи не химерною уявою конкретних людей. Відповідаючи на такі питання, ми неминуче відточуємо здатність мислити лаконічно (в рамках синтаксису нашої мови), перекладаємо в активну область пам'яті часто використовувані патерни, а читаючи відповіді інших людей — порівнюємо їх із нашими та запам'ятовуємо найкращі підходи.
Якщо відповідь на задане незнайомцями питання відразу очевидна — навіть краще, якщо так — то пошук правильного рішення приносить набагато більше навичок, ніж пошук відповіді на завдання з Хакер Rank.
Об'єктивна оцінка спільнотою
Для розробників, які називають себе синьйорами і вище, досить важливо мати можливість порівняти власне відчуття власної крутості з об'єктивною думкою незнайомих людей. Мені доводилося працювати в колективах, де мій рівень навичок та умінь не викликав ні в кого жодних питань. Я буквально відчував себе гуру. Активна участь у дискусіях на SO досить швидко цей міф у моїй свідомості розвіяло. Мені раптово стало очевидно, що до рівня "señor" - мені ще зростати, рости, і рости. І я дуже вдячний спільноті за це. Душ був крижаний, але дуже бадьорий і винятково корисний.
Зараз я можу закрити будь-яке питання як дублікат:
або відповісти / розблокувати питання, захищене співтовариством від вандалів:
Діяльна присутність у стані відповідальних призвела до того, що я познайомився з багатьма справді видатними розробниками з різних країн. Це круто. Вони всі дуже цікаві люди, а ще їх завжди можна безпосередньо попросити зробити реву коду якоїсь непростої бібліотеки, яку ми вирішили викласти в OSS. Кваліфікація двох таких добровільних ревьюєрів дозволяє перетворити будь-яку незграбно обтесану болванку — на витончений і куленепробивний код, готовий до використання.
Чутки про «токсичну атмосферу» — як мінімум, сильно перебільшені. Я не можу говорити за спільноти всіх мов, але й рубін, І еліксир сегменти – вкрай доброзичливі. Щоб нарватися на небажання допомогти, потрібно в ультимативній формі вимагати написати код домашнього завдання, неакуратно виплеснувши щось на зразок:
І потрібно визначити, що сума всіх послідовних номерів менш ніж 100. Відповідь не повинна використовувати core iterators. How do I do that?
Так, такі питання трапляються, і їх мінусують. Я не бачу у цьому проблеми; SO — це не безкоштовний сервіс, де люди, які страждають від надлишку вільного часу, безкоштовно вирішують чужі домашні завдання.
Соромитися поганого англійського, або недостатнього досвіду - не варто зовсім.
Кар'єрні бонуси
У мене досить насичений профіль на гітхабі, але справжній натиск хедхантерів я відчув лише коли увійшов у top-20 і моя аватарка з'явилася на великих сторінках відповідних мов. Я не шукаю і не збираюся змінювати роботу в найближчому майбутньому, але всі ці пропозиції дозволяють як підтримувати у формі власну самооцінку, так і формують базу на майбутнє; якщо мені раптом прийдеться поміняти роботу, пошуком морочитися не доведеться.
Не забирає багато часу
Я часто чув від різних людей, що на SO відповідають тільки ледарі, а справжні професіонали з ранку до ночі пиляють вихідники потреб бізнесу. Не знаю, можливо, десь існують люди, здатні хреначити код без зупинки по шістнадцять годин поспіль, але я до них напевно не належу. Мені потрібні паузи. Прекрасний варіант перерви на робочому місці, який не надто розслаблює, і не вводить в режим нескінченної прокрастинації, саме «відповісти на кілька запитань». У середньому це приносить по кілька десятків репутації на день.
Розкриває чакри та прочищає карбюратор
Допомагати людям – добре. Мені приємно, що окрім звичайного очного викладання, я можу допомогти — і допомагаю — випадковим людям з Вайомінгу, Кіншаси та В'єтнаму.
Чи достатньо я компетентний відповідати на запитання?
Так.
Всі ми помиляємось, і якщо це станеться — спільнота виправить. Зауважу: не насріє тишком-нишком у карму, а замінусує відповідь (у переважній більшості випадків — з поясненням, що саме тут не так). Замінусована відповідь має сенс видалити, і мінуси відкачають назад. (Віддалені відповіді, як і раніше, залишаються видно людям з репутацією, більшою 10000але вони, повірте, і не таке побачили).
На закінчення
Мені видається важливим і потрібним брати участь у покращенні миру, та відповіді на SO - непоганий варіант це зробити, не злазячи з робочого стільця. Якщо мені вдалося когось переконати почати відповідати прямо сьогодні, я буду дуже радий.