Шта сам научио за 10 година на Стацк Оверфлов-у

Шта сам научио за 10 година на Стацк Оверфлов-у
Приближавам се својој десетој годишњици на Стацк Оверфлов-у. Током година, мој приступ коришћењу сајта и перцепција о њему су се много променили и желим да поделим своје искуство са вама. И о томе пишем из угла просечног корисника који није много укључен у живот заједнице сајта или његову културу. Ових дана сам само одговарао на питања везана за ВС Цоде, производ на којем радим. Међутим, раније сам активно учествовао у дискусијама о широком спектру тема. За 10 година И поставио око 50 питања и дао 575 одговора, прегледао је безброј коментара других људи.

Јон Скеете описао културу Стацк Оверфлов-а много бољи и ауторитативнији него што ћу икада моћи да урадим. Његово објављивање је утицало на нека од поглавља у овом чланку, али све у свему ово су моја искрена размишљања о мојим искуствима са Стацк Оверфлов-ом, шта је добро, а шта лоше у вези са сајтом и како се може користити данас. Ова дискусија ће бити прилично површна, без урањања дубоко у функционисање сајта или његову историју.

Дакле, ево шта сам научио из 10 година коришћења Стацк Оверфлов-а.

Морате бити у могућности да постављате питања

На први поглед, ништа не може бити једноставније: унесите неколико речи у поље за текст, кликните на „Пошаљи“ и Интернет ће магично помоћи да решите све ваше проблеме! Али требало ми је скоро 10 година да схватим које речи да укуцам у то проклето поље да бих заиста добио резултате. У ствари, још увек учим о томе сваки дан.

Постављање добрих питања је заиста потцењена вештина (као и писање доброг извештаја о проблему, у том случају). Прво, како уопште можемо да утврдимо да ли је питање „добро“? Стацк Оверфлов понуде наговестити, који наводи следеће квалитете доброг питања:

  • Да ли одговара теми сајта?
  • Подразумева објективан одговор.
  • Још није питано.
  • Истражен је.
  • Јасно описује проблем, обично са минималним примером који се лако може поновити.

У реду, али како изгледа „јасна изјава о проблему“ у пракси? Које информације су релевантне, а које нису? Понекад се чини да да бисте поставили добро питање, прво морате знати одговор.

Нажалост, мало поље за текст овде не помаже. Па да ли је чудо што толико корисника поставља питања лошег квалитета? Понекад је једини одговор који добију линк до неке збуњујуће документације. И још ће имати среће. Многа питања лошег квалитета се једноставно тихо одбијају и нестају у бескрајној нити питања.

Постављање добрих питања је вештина. На срећу, може се развити. Углавном сам учио читајући гомилу питања и одговора, бележећи шта је успело, а шта не. Које информације су корисне, а шта досадне? Иако ћете се и даље плашити да стечено знање користите у пракси и постављате питања. Само дајте све од себе и учите из резултата. Морам признати да је и мене мало срамота због неких својих раних незналица, мада то можда доказује да сам доста унапредио своје вештине постављања питања откако сам се нашао на овом сајту.

Лоша и не тако добра питања нису иста ствар

Нећу заслађивати пилулу: нека питања су лоша.

Питање које се састоји од снимка екрана и фразе „ЗАШТО ОВО НЕ РАДИ!?!” - лоше. Зашто? Очигледно је да се аутор готово нимало није потрудио. Ово није толико питање колико захтев: „урадите овај посао за мене!“ Зашто бих ово урадио? Моје време је превише драгоцено да бих га трошио помажући некоме ко не жели да учи за почетак и неће ценити моју помоћ. Сазнајте шта је Стацк Оверфлов.

Сада размотрите питање под насловом „Како уклонити плаве ивице на мојој страници“, које се састоји од неколико пасуса текста који говори о својству ЦСС оутлине-а, али без експлицитног помињања речи „ЦСС“ или „оутлине“. Иако овакво питање може бити противно многим смерницама за преливање стека, не слажем се, то није лоше питање. Аутор је бар покушао да да неке податке, чак и не знајући шта да да. Покушај се рачуна, као и спремност да се опажа и учи.

Међутим, многи сарадници Стацк Оверфлов-а ће вероватно третирати оба питања на исти начин: поништити и затворити. Ово је фрустрирајуће и искључује многе неискусне кориснике пре него што науче да постављају боља питања и чак разумеју како сајт функционише.

Заиста лоша питања нису вредна вашег времена. Али треба имати на уму да они који постављају не баш добра питања то чине ненамерно. Желе да постављају добра питања, само не знају како. Ако слепо и без објашњења кажњавате придошлице, како ће научити?

Добро питање не гарантује одговор

Стацк Оверфлов обично пружа брже одговоре на једноставна питања на која многи људи могу да одговоре. Имате ли питања о бинарној претрази у ЈаваСцрипт-у или о ХТМЛ-у? Предивна! Примите пет одговора за мање од сат времена. Али што је питање сложеније или конкретније, мања је вероватноћа да ћете добити одговор, без обзира на квалитет формулације.

Вероватноћа добијања одговора такође брзо опада током времена. Када питање иде неколико страница дубоко у фид, губи се. Недељу дана касније, можете се само молити да неко са правим знањем налети на ваше питање (или великодушно кликне на њега).

Можда вам се не свиђају тачни одговори

Сваког месеца добијам неколико негативних гласова за такозване непопуларне одговоре. Ово су врсте одговора који у суштини кажу, „разлог је зато што је тако дизајниран“, или „није могуће зато што...“, или „то је грешка коју прво треба поправити“. У свим горе наведеним случајевима, аутори не добијају решење или чак заобилазно решење. И претпостављам да када се људима не свиђа оно што пише у одговору, они га омаловажавају. Чак их разумем, али то не значи да су одговори погрешни.

Наравно, тачно је и супротно: добри одговори не морају нужно да вам говоре оно што желите да чујете. Неки од најбољих одговора прво одговарају на првобитно питање, али затим описују друге приступе решавању проблема. Понекад одговорим на питање корисника и онда напишем дугачак текст зашто се то не препоручује.

Кад год се изрази става поједноставе на гласове горе и доле или дугме за свиђање, битне разлике се губе. Овај проблем се често јавља на Интернету. Колико друштвених мрежа вам омогућава да направите разлику између „подржавам ово“ и „Мислим да је то добро речено, чак и ако ми се не свиђа или се не слажем са тим“?

Све у свему, упркос месечним гласовима против, верујем да заједница Стацк Оверфлов гласа поштено. Ми ћемо се држати овог пута.

Скоро никад не питам на Стацк Оверфлов-у

Што сам дуже користио овај сајт, ређе сам постављао питања на њему. То је делимично због мог професионалног раста. Многи проблеми са којима се суочавам на послу су превише сложени да бих их изразили једноставним питањима, или сувише специфични да би ми било ко уопште могао помоћи. Схватио сам ограничења сајта, па избегавам да постављам питања на која готово сигурно нећу добити добар одговор.

Али ретко сам постављао питања овде, чак и када сам учио нови језик или оквир. Не зато што је тако геније, баш супротно. Једноставно, након година рада на Стацк Оверфлов-у, када имам питање, долазим до дубоког уверења да је мало вероватно да ћу га први поставити. Почињем да тражим и скоро увек нађем да је неко већ питао исту ствар пре пар година.

Посматрање питања других људи је одличан начин да научите нове ствари о свом производу.

Сада радим на томе ВС Цоде, па сам стекао навику да гледам питања означена всцоде. Ово је одличан начин да видите како се мој код користи у стварном свету. Са којим проблемима се сусрећу корисници? Како се документација или АПИ могу побољшати? Зашто нешто за шта сам мислио да је апсолутно јасно изазива толико неспоразума?

Питања су важан сигнал који показује како се ваш производ користи. Али поента није у томе да одговорите и идете даље, већ да прво покушате да разумете зашто особа има питање. Можда постоји проблем у производу који вам је непознат, или неке претпоставке које сте несвесно изнели? Питања су ми такође помогла да откријем многе грешке и инспирисала ме да наставим са радом.

Ако одржавате производ за програмере, немојте мислити на Стацк Оверфлов као на сметлиште (или још горе, на гробље питања). Проверавајте редовно да видите која су се питања и одговори појавили. То не значи да морате сами да одговорите на свако питање, али сигнали из Стацк Оверфлов-а су превише важни да бисте их игнорисали.

Линије између питања, извештаја о грешци и захтева функције су замагљене.

Доста питања о ВС коду на Стацк Оверфлов-у су заправо извештаји о грешкама. И многи други су заправо захтеви за новим функцијама.

На пример, питање са насловом „Зашто се ВС Цоде руши када урадим...?“ - ово је извештај о грешци. ВС Цоде не би требало да се сруши у различитим ситуацијама. Одговарање на питања која су извештаји о грешкама је контрапродуктивно јер аутори могу бити задовољни решењем и никада не поднесу прави извештај о грешкама. У оваквим ситуацијама обично тражим од корисника да поднесу извештај о грешци на Гитхуб-у.

У другим случајевима, разлике могу бити мање очигледне. На пример, питање „Зашто ЈаваСцрипт ИнтеллиСенсе не ради у ВС коду?“ У зависности од тога како ЈаваСцрипт ИнтеллиСенсе не ради, проблем може да спада у једну од три категорије:

  • Ако је у питању конфигурација корисника, онда је то заиста питање за Стацк Оверфлов.
  • Ако би у описаном случају ИнтеллиСенсе требало да ради, али не ради, онда је ово извештај о грешци.
  • Ако у описаном случају ИнтеллиСенсе не би требало да ради, онда је ово захтев за нову функцију.

На крају крајева, већина корисника не мари за ове нијансе — они само желе да ЈаваСцрипт ИнтеллиСенсе ради.

И иако су ове разлике важне за мене, као особу одговорну за пројекат, генерално не би требало да ми сметају. Зато што су питања, извештаји о грешкама и захтеви за функције сви начини изражавања једне идеје: корисник очекује нешто од мог кода, а не схвата. Да је производ савршен, корисници никада не би постављали питања о њему, јер би им све било јасно и радио би тачно оно што желе (или им барем јасно рекао зашто не може).

Програмери су такође људи

Људи су емотивни. Људи су ирационални. Људи су сероње. Не увек, наравно, али понекад! И веровали или не, и програмери су људи.

Постоји фантазија коју ми програмери волимо да кажемо себи: „Радимо са рачунарима, тако да морамо да будемо рационални. Разумемо загонетне симболе, па морамо бити паметни. Софтвер је заузео свет, тако да морамо да будемо кул! Хладан! Напред!!!"

Ово није у реду. А да је тако, помози боже осталом народу. Чак и на Стацк Оверфлов-у, том алату за професионалце који је осмишљен као објективна база знања, чак иу мом, веома специфичном углу ВС Цоде-а, настављам да се сусрећем са свим врстама увреда: логичке грешке, увреде, менталитет стада, итд.

Немојте се заваравати: вероватно нисте тако савршени као што мислите. Али то не значи да не треба да покушавамо да се ослободимо својих недостатака.

Човече, ја сам тај који је ово створио

И ја сам човек, и с времена на време ме нервира оно што се дешава на Стацк Оверфлов-у. На пример, када корисник самоуверено пише глупости или једноставно да погрешан одговор на питање везано за ВС Цоде, производ који сам ја направио и који добро познајем. Чудно, чини се да што је одговор погрешнији, већа је вероватноћа да ће га неко назвати неспорном чињеницом.

Када се то деси, понашам се као на слици и напишем тачан одговор.

Шта сам научио за 10 година на Стацк Оверфлов-у

И неколико пута је то резултирало дугим нитима: јао мени што сам се усудио да доводим у питање њихово знање о ономе што сам створио! Престаните да покушавате да будете у праву све време, проклето паметњаковићи! Јер сам у праву!!!

Лако је постати циничан у овом безнађу

Када се суочите са бесконачним низом питања лошег квалитета, лако је постати циничан. Зар никада није чуо за Гугл? Да ли он уопште уме да конструише кохерентне реченице? Шта си ти, пас?

Понекад погледам на десетине нових питања у току дана. Непрекидно посматрање свих ових неквалитетних питања ризикује да склизне у презир или цинизам. Овај цинизам се може прелити на сајт, што ће потврдити свако ко је наишао на претерано ревног модератора или провео неколико сати истражујући и састављајући питање, да би заузврат добио негативне одговоре и нестао у забораву без икаквог објашњења.

Наравно, постоје корисници који се не труде и постављају лоша питања. Али верујем да већина неквалитетних питања долази од људи са добрим намерама (иако глупих). Увек покушавам да се сетим шта значи бити новајлија. Када тек почнете, не разумете како све овде заиста функционише. У неким случајевима чак ни не знате којим речима да правилно изразите свој проблем. Верујте ми, тешко је бити у овој позицији. И непријатно је када вас полију шљамом само зато што сте поставили питање.

Иако је Стацк Оверфлов учинио много да помогне почетницима, још много тога треба да се уради. Покушао сам да пронађем баланс између придржавања стандарда сајта и попустљивости према неискусним корисницима. Ово може укључивати објашњење зашто сам гласао за затварање питања или постављање коментара који подстиче корисника да пружи више информација. Још увек имам простора да растем.

С друге стране, немам оклевања да одбацим кориснике са репутацијом од 50 који постављају питања попут „Који је најбољи изглед ВС кода за развој ЈаваСцрипт-а?“, или који постављају сапунске снимке кода уместо текста.

Понекад само желим да ти се захвалим

Постоји слаба култура захвалности на Стацк Оверфлов-у. Сећам се да је једном давно сајт аутоматски исекао речи „здраво“ и „хвала“ из питања. Можда је ово још увек урађено, нисам проверио.

Данас, свако ко је радио у корисничкој подршци добро зна да превише љубазности може стати на пут, па чак и изгледати присиљено. Али понекад вам неко на овом сајту уради нешто веома важно и једини начин да му се захвалите је да му дате плус. То је срање.

Ефикасност не захтева да постанемо роботи без душе. Споредни канал може да обезбеди аутентичнију комуникацију између људи, наравно ако то сами корисници желе.

Понекад желим да знам шта се десило након што сам добио одговор

Стацк Оверфлов функционише на принципу трансакције: неки људи постављају питања, други одговарају. Шта се дешава након добијања одговора? Ко зна? Понекад се питам о овоме. Да ли је мој одговор био од помоћи? У ком скромном пројекту је помогао? Шта је испитивач научио?

Наравно, немогуће је задовољити ову радозналост. Захтевати од корисника да воде рачуна о томе како ће користити информације које добију било би веома проблематично, чак и када бисте то могли да урадите. Али занимљиво је размишљати о томе.

Гамификација је ефикасна...

...када процесе претварамо у игре.

Још увек сам мало забринут када видим малу иконицу +10 или +25 на статусној траци. Можда су ови мали додири гејмификације разлог зашто се враћам на сајт већ 10 година. Али током година, такође сам почео да се питам каква је игра Стацк Оверфлов и шта значи победа у њој.

Сигуран сам да је систем направљен у најбољој намери: да награди људе за корисна питања и одговоре. Али чим додате високе резултате, он ступа на снагу Гудхартов закон, а неки корисници почињу да прилагођавају своје радње не да би постигли максималну вредност, већ да би добили максималне оцене. А ово је важно јер...

Репутација не значи оно што ви мислите да значи.

Репутација није еквивалентна техничкој компетенцији, комуникацијским вештинама или разумевању како функционише или треба да функционише Стацк Оверфлов.

Не желим да кажем да је репутација бескорисна. То једноставно не значи шта значе администратори Стацк Оверфлов-а или шта би реч „репутација“ требало да значи. Схватио сам да је углед мерило утицаја. Размотрите два хипотетичка одговора објављена на сајту:

  • Једна о уобичајеној гит операцији. Написао сам одговор у три реда за два минута користећи Гоогле.
  • Други је о теорији испреплетених графова. Можда само стотину људи у целом свету може да одговори на то. Написао сам неколико пасуса и пример кода који објашњавају проблем и како да га решим.

За пет година, први одговор је прегледан 5 милиона пута и добио је 2000 гласова. Други одговор је погледан 300 пута и добио два слаба гласа за.

У извесној мери ово је веома непоштено. Зашто награђивати нешто што је било на правом месту у право време? (није све одређена срећом; разумевање правила игре такође игра огромну улогу). С друге стране, прво питање је заправо помогло много више људи него друго. Можда је вредно признати да, у извесном смислу, признање води ка гомилању „угледа“?

Зато сматрам да је „репутација“ на Стацк Оверфлов-у нека врста мере утицаја. Права репутација се не може мерити само поенима, она долази из заједнице. Чије савете слушам, ко помаже другима, коме верујем? Можда ће сви то бити различити људи, у зависности од тога да ли пишем у ПХП-у или за иОС.

Уз то речено, не знам шта би Стацк Оверфлов требало да уради у том погледу. Да ли би корисници били толико мотивисани када би уместо „репутације“ зарадили „лукаве поене“? Да ли ће корисници остати исто ангажовани ако уопште не постоји систем бодовања? Мислим да је мало вероватно. А мит да је „репутација“ на Стацк Оверфлов-у еквивалентна стварној репутацији користи не само самом сајту, већ и његовим најактивнијим корисницима. Па, заиста, ко не воли да повећава своју репутацију?

Не, као што се најчешће дешава у животу, да бисте добили праву представу о томе шта се дешава, морате анализирати не само бројеве. Ако пост има 10 хиљада поена на Стацк Оверфлов-у, онда погледајте како ова особа комуницира, која питања и одговоре објављује. И у свим осим изузетним случајевима, имајте на уму да је мало вероватно да ће сами резултати Стацк Оверфлов-а указивати на било шта осим на способност особе да користи сајт. И по мом искуству, често ни не говоре о томе.

Не бих био продуктиван без Стацк Оверфлов-а

Сваки пут када треба да урадим нешто компликовано у гит-у, идем на Стацк Оверфлов. Сваки пут када ми треба нешто једноставно у басх-у, идем на Стацк Оверфлов. Сваки пут када добијем чудну грешку у компилацији, идем на Стацк Оверфлов.

Нисам продуктиван без ИнтеллиСенсе-а, претраживача и Стацк Оверфлов-а. Судећи по неким књигама, ово ме чини веома лошим програмером. Вероватно бих пао на много тестова и не бих решио много проблема на табли. Нека тако буде. Озбиљно, сваки пут када користим .сорт у ЈаваСцрипт-у, морам да потражим информације о томе када ћу добити -1, 0 или 1, и пишем ЈС сваки дан, развијајући најпопуларнији уређивач за језик.

Не, Стацк Оверфлов је невероватан алат. Само будала не би користила све алате који су му доступни. Па зашто не би био унутрашња будала као ја? Сачувајте ресурсе свог мозга за важна знања, као што је памћење свих заплета серије Сеинфелд или смишљање софистицираних каламбура (које толико недостају у овом чланку, али ће бити много других потпуно другачије природе).

Стацк Оверфлов је чудо

Стацк Оверфлов омогућава свакоме, без обзира на искуство или знање, да поставља питања о програмирању. На ова питања одговарају потпуни странци, од којих већина проводи време свог живота и каријере помажући другима бесплатно.

Чудо је сама чињеница постојања и резултат рада Стацк Оверфлов-а. Сигуран сам да не испадне све онако како су креатори замислили, али покушавају. И поред свих недостатака, сајт већ дуги низ година помаже огромном броју људи, укључујући и мене.

Стацк Оверфлов неће трајати вечно. Једног дана ће доћи нешто боље. Надамо се да је ово нешто што ће научити из грешака Стацк Оверфлов-а и извући најбоље из њега. До тада, надам се да овај сајт нећемо узимати здраво за готово. Ово је и оријентир и животна заједница, која се стално попуњава новим људима. Ако вас ово брине, запамтите да је све ово врло крхко, па чак и мале акције - као што је помагање добронамерним, али још увек неуким придошлицама - могу имати позитиван ефекат. Ако критикујем овај сајт, то је само зато што ми је стало и што знам како да га побољшам.

ПС

Још увек сам био школарац када сам дошао у Стацк Оверфлов. Управо сам почео да пишем (ЕС5!) ЈаваСцрипт у Ецлипсе-у, и чинило се да 90% питања почиње са „Коришћење јКуери-ја, само...“. И иако нисам знао шта радим, странци су проводили време помажући ми. Мислим да то тада нисам баш ценио, али нисам заборавио.

Људи ће увек желети да Стацк Оверфлов буде нешто другачије: сајт за питања и одговоре; алат за решавање кућних проблема; животни стандард програмирања. И за мене је овај сајт, упркос свом расту и недостацима, у својој сржи отворена заједница у којој странци помажу једни другима да уче и да се усавршавају. И то је супер. Драго ми је што сам био део Стацк Оверфлов-а последњих 10 година и надам се да ћу то наставити. Желим да научим онолико нових ствари у наредној деценији као иу претходној деценији.

Извор: ввв.хабр.цом

Додај коментар