Здравейте!
Последните две години се занимавам с хора, които току-що започват кариерата си в ИТ. Тъй като въпросите и начина, по който много хора ги задават, са сходни, реших да събера своя опит и препоръки на едно място.
Отдавна прочетох книгата от 2004 година на Ерик Реймонд и винаги съм я следвал неуклонно в кариерата си. Тя е доста обширна и е насочена по-скоро към системни администратори. Аз обаче помагам на хора, които често нямат опит в разработката, да станат джуниори и да започнат своята кариера.
На тези, които вече са постигнали успех или само мечтаят да станат начинаещи разработчици, мога да дам следните препоръки:
- Изучавайте проблема самостоятелно
- Първо кажете целта, след това формулирайте проблема
- Пишете правилно и по същество
- Задавайте въпроси на правилното място и споделете решението си
- Уважавайте времето на другите
- Гледайте по-широко
А сега по-подробно.
Изучавайте проблема самостоятелно
Изучавате някакъв език за програмиране от книга или курс. Взели сте примерен код, пуснали сте го, но той е паднал с неразбираема за вас грешка. Ако вярвате на книгата – той трябва да работи. Но вие вярвате на очите си – той не работи. Какви опции имате?
- Да решите, че никога няма да станете разработчик, защото целият свят е срещу вас и дори работещите примери не работят. Да прекратите обучението;
- Да решите, че никога няма да станете разработчик, защото сте твърде глупави или не ви е дадено. Да прекратите обучението;
- Да започнете да питате всички познати, които по някакъв начин са свързани с ИТ, да изисквате да разберат защо не работи при вас. Да научите много ново за себе си и да се обидите. Да прекратите обучението;
Кой вариант е правилен? Ето го:
Да разберете, че не сте уникални (каквото и да говорят мама и баба), а ИТ светът не е толкова прост, колкото го представят, когато ви канят на курсове и уебинари.
Разбирането, че не сте уникални, води до осъзнаването, че вашият проблем със сигурност вече е срещан от десетки, стотици, хиляди хора. Ако сте начинаещ разработчик, то лесно можете да не забележите нещо, да не сте инсталирали или конфигурирали нещо. Ето чеклист, с който предлагам да преминете, преди да разберете, че сами не можете да решите проблема и имате нужда от помощ:
- Убедете се, че въпросът е уникален и за него няма отговор в интернет
- Внимателно изследвайте причината за проблема, а не следствието
- Оценете възможните варианти за решение на проблема, техните плюсове и минуси
- Помислете за алтернативни варианти за постигане на целта
- Помислете за въпросите, които могат да ви зададат, и предварително подгответе отговорите
С първи всичко е тривиално: ако текстът на грешката ви е напълно неразбираем — копирайте го в Google и внимателно прочетете текста по линковете.
Втори: например, ако кодът ви е паднал с грешка “Не мога да свържа външна библиотека”, проблемът не е в кода ви. Проблемът е, че не сте инсталирали библиотеката, която искате да използвате. Значи, трябва да търсите как да я инсталирате, а не как да поправите кода си.
Трети и четвърти са доста подобни: Какво, ако проблемът е точно в тази библиотека и просто трябва да потърся друга? Какво, ако изобщо не използвам външна библиотека, а напиша собствен код, използвайки стандартни средства?
Пети пунктът ни подтиква към следващата част: помислете какви въпроси може да ви зададе човекът, към когото се обръщате, и имайте отговорите подготвени.
Първо кажете целта, след това формулирайте проблема
Целта е това, което искате да направите. Например, да пишете код, който да влиза в интернет и да запазва 10 снимки на смешни котки. Проблемът е защо виждате грешка в конзолата, а не виждате 10 смешни котки. Не започвайте въпроса си с проблема. Започвайте с целта, завършвайте с проблема. Ако човекът, към когото се обръщате за помощ, е опитен разработчик и знае много, той със сигурност може да ви предложи по-просто и елегантно решение на проблема. Ако вече сте избрали най-простото и елегантно — той ясно ще разбере какво и защо искате да направите и това ще ускори получаването на отговор.
Добър въпрос:
Искам да запазвам 10 смешни котки всеки ден, за да се смея и да удължавам живота си. Заради това написах такъв код: […]. Очаквам, че той ще се свързва с FTP сървър и ще качва нови снимки оттам. Въпреки това, когато го стартирах, видях такава грешка: […] Въпреки че мога да вляза на този сървър през браузъра.
Бърз отговор:
Не е било нужно да избираш тази библиотека, отдавна вече никой не я поддържа и не я развива. По-добре вземи тази — аз самият с нея свалям снимки на котки!
Лош въпрос:
Здравей, кодът ми издаде такава грешка […], не знаеш ли какво може да е проблемът?
Очевиден отговор:
Здравей. Не, не знам.
Пишете правилно и по същество
Не е нужно да изливате поток от мисли върху човека. Човекът, към когото сте се обърнали за решение на проблема, е зает с делата си. Направете така, че бързо да разбере какъв е вашият проблем и какво искате от него. Ако имате проблеми с грамотността — използвайте онлайн услуги за проверка на правописа и пунктуацията. Можете да премахнете ненужната информация от съобщението и без онлайн услуги. Не разтегляйте времето, не започвайте отдалеч. Пишете кратко, ясно и по същество. Предоставете примери.
Лошо:
— Прив как минаха уикенда))) Аз опитвам да събера проекта по-кратко, но не работи, падна по някаква причина О_о, въпреки че всички стъпки са направени както трябва, моля, ела тук))))) В конзолата имам неразбираемо нещо((( вече опитах всичко, нищо не работи, аааа(
Добре:
— Здравей, опитвам се да стартирам проекта, но възникна проблем. Пада веднага след командата docker-compose up, ето лог файла и грешката: […] Можеш ли да ми кажеш как да го реша?
Задавайте въпроси на правилното място и споделете решението си
Не пишете въпроса си в лично съобщение до конкретен човек, освен ако не ви е казано, че трябва да питате именно него. По-добре е да пишете на група от хора, защото:
- Всеки е зает с решаването на собствените си проблеми. Шансът, че някой в общия чат или на форума може да отдели време за вас, е по-висок.
- Шансът, че някой в общия чат знае как да ви помогне, е по-висок.
- Вие оставяте на другите възможността да открият същия въпрос и отговор по-късно.
Погледнете последната точка. Вие вече сте усвоили, че проблемите трябва да се опитват да се решават самостоятелно? Вече сте използвали търсенето в чата/форума/групата, но не сте намерили упоменаване на проблема си? Окей, тогава питайте.
От друга страна, не е нужно да безпокоите хората напразно. По възможност изключете от списъка на получателите всички, които не могат да ви помогнат. Колкото повече съобщения получава един човек, толкова по-малко е вероятно да прочете всички тях. Не създавайте у хората навика да изключват известията или просто да игнорират съобщенията.
Сигурно, вашият опит може да е полезен на някого друг. Спестете време на себе си и на другите, като публикувате отговор или решение. Следващият новичък, ако вече знае какво обсъждаме тук, изобщо няма да ви безпокои — той ще намери вашето решение чрез търсене. Защо казвам, че можете да спестите време на себе си? Защото може да се сблъскате с този проблем след година и да не помните как сте го решили. Търсенето отново ще спаси.
Уважавайте времето на другите
Максимално улеснете живота на хората, от които искате помощ.
Убедете се, че предоставените линкове работят. Опитайте да ги отворите в инкогнито режим. Ако линкът изисква авторизация, ще видите грешка за достъп. Например, ако сте качили код в частен репозиторий или сте изпратили линк към Google Drive, до който достъпът е само ваш — човекът ще види грешка и ще трябва да отдели време, за да ви уведоми за това, а след това да чака, докато вие настроите достъпа. Угородете така, че човек веднага да види това, за което говорите.
Не очаквайте, че някой ще иска да помни за какво питахте преди два дни. Изпратете информацията отново, напомнете контекста. Никой не иска да търси в кореспонденцията нещо, което вече имате под ръка. Ако ви мързи да дублирате информацията, за да не се губи времето на хората в търсене, значи помощта не ви е необходима.
Не изваждайте от контекста. Ако изпращате лог с грешка, очевидно е, че трябва да включите не само самата грешка, но и кода, който я е предизвикал, с пример за това, на какво е счупен.
Ако за решаване на вашия проблем съществува установен процес — следвайте го. Не си струва да изобретявате велосипед, ако вече съществува статия с подробен HowTo.
Не трябва да се опитвате да получите отговор от един човек чрез различни канали (писане в Slack, Skype, Telegram) едновременно — на човека ще му бъде неприятно.
Не пишете еднакво съобщение на няколко души наведнъж, с надеждата, че поне някой ще ви отговори. Всички тези хора могат да ви дадат отговор (вероятно той ще бъде един и същ), но всички те ще се отклони от задачите си за някое време. Използвайте групови чатове.
Гледайте по-широко
Всичко, за което говорихме тук, важи и извън ИТ сферата. Следвайте тези правила в супермаркета, сервиза, на почивка в чужда страна, при общуване с приятели и роднини. Покажете на хората, че цените времето им и не искате да ги натоварвате с дреболии. Покажете, че сте вложили усилия и време, за да решите проблема сами, но не сте успели и наистина имате нужда от помощ. В замяна хората с разбиране ще се отнесат към вашите проблеми и ще помогнат за тяхното решаване.
Източник: habr.com
