Як правильно ставити запитання, якщо ти айтішник-початківець

Привіт!

Останні кілька років дуже багато займаюся з людьми, які тільки-но починають свою кар'єру в ІТ. Оскільки самі питання, і манера їх ставити у багатьох людей схожі, я вирішив зібрати свій досвід і рекомендації в одному місці.

Давним-давно я прочитав статтю 2004-го року авторства Еріка Реймонда, і завжди в кар'єрі неухильно дотримувався її. Вона досить велика і заточена швидше під системних адміністраторів. Мені ж доводиться допомагати людям, які часто взагалі не мають досвіду в розробці, стати джуніорами і почати свою кар'єру.

Тим, хто вже став, або ще тільки мріє стати розробником-початківцем, я можу дати наступні рекомендації:

  • Вивчайте проблему самостійно
  • Спочатку повідомляйте ціль, потім озвучуйте проблему
  • Пишіть грамотно та по суті
  • Запитуйте за адресою і ділитеся рішенням
  • Поважайте чужий час
  • Дивіться ширше

А тепер докладніше.

Вивчайте проблему самостійно

Ви вивчаєте якусь мову програмування за книгою чи курсом. Взяли приклад коду, запустили його, але він упав із незрозумілою для вас помилкою. Якщо вірити книжці, він має працювати. Але ви вірите очам – він не працює. Які є варіанти?

  • Вирішити, що ви ніколи не станете розробником, тому що весь світ проти вас і навіть працюючі приклади не працюють. Кинути навчання;
  • Вирішити, що ви ніколи не станете розробником, тому що занадто дурні або вам не дано. Кинути навчання;
  • Почати запитувати всіх знайомих, хто хоч якось пов'язаний з ІТ, вимагати, щоб розібралися, чому у вас не працює. Дізнатися багато нового про себе, образитись. Кинути навчання;

Який варіант правильний? Ось він:

Зрозуміти, що ви не унікальні (що б там не говорили мама з бабусею), а ІТ світ не такий простий, як про це трубять, коли звуть на курси та вебінари.

Розуміння того, що ви не унікальні, призводить до усвідомлення, що ваша проблема вже зустрічалася у десятків, сотень, тисяч людей. Якщо ви розробник-початківець, то запросто могли щось не помітити, не встановити або не налаштувати. Ось чекліст, яким я пропоную пройти перш, ніж ви зрозумієте, що самостійно вирішити проблему ви не можете, і вам потрібна допомога:

  • Переконатися, що питання є унікальним і на нього немає відповіді в інтернеті.
  • Уважно вивчити причину проблеми, а не слідство
  • Оцінити можливі варіанти вирішення проблеми, їх плюси та мінуси
  • Подумати над альтернативними варіантами досягнення мети
  • Подумати про те, що вас можуть запитати, та заздалегідь підготувати відповіді

С першим пунктом все тривіально: якщо текст помилки вам зовсім незрозумілий - копіюєте його в гугл, і читайте вдумливо текст за посиланнями.

Другий: наприклад, якщо ваш код упав з помилкою "Не можу підключити сторонню бібліотеку", то справа не у вашому коді. Справа в тому, що ви не встановили якусь бібліотеку, яку хочете використати. Отже, потрібно шукати як її встановити, а не як полагодити ваш код.

Третій и четвертий дуже схожі: Що якщо проблема саме у цій бібліотеці, і мені просто потрібно пошукати іншу? Що якщо я взагалі не використовуватиму сторонню бібліотеку, а напишу свій код, використовуючи стандартні засоби?

п'ятий пункт підводить нас до наступної частини: подумайте, що може запитати вас людина, до якої ви звернетеся, і тримайте відповіді напоготові.

Спочатку повідомляйте ціль, потім озвучуйте проблему

Мета це те, що ви хотіли зробити. Наприклад, написати код, який ходить в інтернет і зберігає 10 картинок зі кумедними котиками. Проблема це те, чому ви бачите помилку в консолі, але не бачите 10 смішних котиків. Не починайте своє питання із проблеми. Починайте його із мети, закінчуйте проблемою. Якщо людина, до якої ви звертаєтеся за допомогою, досвідчений розробник і багато знає, то, напевно, вона зможе запропонувати вам більш просте та витончене вирішення проблеми. Якщо ви вже обрали найпростіше і витонченіше — він чітко розумітиме, що й навіщо ви хочете робити, і це прискорить отримання відповіді.

Гарне питання:

Я хочу зберігати 10 смішних котиків щодня, щоб сміятися та продовжувати собі життя. Для цього я написав такий код: […]. Я очікую, що він підключатиметься до FTP серверу і завантажуватиме звідти нові картинки. Однак, коли я запустив його, то побачив таку помилку: […] Хоча через браузер я можу зайти на цей сервер.

Швидка відповідь:

Ти даремно взяв цю бібліотеку, її вже давно ніхто не підтримує та не розвиває. Візьми краще ось цю - я сам завантажую їй картинки з котиками!

Погане запитання:

Привіт, мій код видав таку помилку […], ти не знаєш у чому може бути справа?

Очевидна відповідь:

Вітання. Ні не знаю.

Пишіть грамотно та по суті

Не треба виливати на людину потік думок. Людина, до якої ви звернулися за вирішенням проблеми, зайнята своїми справами. Зробіть так, щоб він швидко зрозумів, що у вас проблема, і що ви від нього хочете. Якщо з грамотністю у вас проблеми, використовуйте онлайн-сервіси перевірки орфографії та пунктуації. Прибрати з сміття повідомлення ви можете і без онлайн сервісів. Не лийте воду, не починайте здалеку. Пишіть коротко, ємно і по суті. Надайте приклади.

погано:

- Прив як вихи пройшли))) я тут намагаюся коротше зібрати проект але у мене не працює падає чомусь О_о хоча начебто я все зробив як треба, підійди будь ласка))))) тут взагалі в консолі щось незрозуміле у мене ((( вже прям все спробував нічого не працює, аааа(

Добре:

— Привіт, я намагаюся запустити проект, але виникла проблема. Падає відразу після команди docker-compose up, ось лог запуску та помилка: […] Можеш підказати, як вирішити?

Запитуйте за адресою і ділитеся рішенням

Не варто писати питання особистим повідомленням конкретній людині, якщо вам не повідомили, що запитати слід саме його. Краще написати групі людей, бо:

  • Кожен зайнятий вирішенням своїх проблем. Шанс, що хтось у загальному чаті чи на форумі може приділити вам час – вище.
  • Шанс, що хтось у загальному чаті знає, як вам допомогти – вище.
  • Ви залишаєте іншим можливість знайти це питання і відповідь пізніше.

Погляньте на останній пункт. Адже ви вже засвоїли, що проблеми треба намагатися вирішувати самостійно? Вже скористалися пошуком по чату/форуму/групі, але не знайшли згадки про свою проблему? Окей, тоді питайте.

З іншого боку, не варто турбувати людей даремно. По можливості виключіть зі списку одержувачів усіх, хто не може вам допомогти. Чим більше повідомлень приходить людині, тим менше шансів, що вона прочитає їх усі. Не виробляйте звичку вимикати сповіщення або просто ігнорувати повідомлення.

Напевно, ваш досвід може бути корисним ще комусь. Заощаджуйте час собі та іншим, виклавши відповідь чи рішення. Наступний новачок, якщо він уже знає те, про що ми тут розмовляємо, взагалі нікого не турбуватиме — він знайде ваше рішення пошуком. Чому я говорю, що ви можете заощадити час собі? Тому що ви можете зіткнутися з цією проблемою через рік і не згадайте, як її вирішували. Пошук знову врятує.

Поважайте чужий час

Максимально спростіть життя людям, у яких просите допомоги.

Переконайтеся, що посилання, які ви надсилаєте, працюють. Спробуйте відкрити її в інкогнітом режимі. Якщо за посиланням потрібна авторизація, ви побачите помилку доступу. Наприклад, якщо ви завантажили код у приватний репозиторій, або відправили посилання на гугл диск, до якого доступ є тільки у вас - людина побачить помилку, і їй доведеться витрачати час, щоб повідомити про це вам, а потім чекати, коли ви налаштуєте доступ. Зробіть так, щоб людина відразу побачила те, про що ви кажете.

Не чекайте, що хтось захоче згадувати, про що ви питали два дні тому. Надішліть інформацію ще раз, нагадайте контекст. Нікому не хочеться шукати у листуванні те, що є у вас під рукою. Якщо вам ліньки продублювати інформацію, щоб люди не витрачали свій час на пошук, значить, допомога вам не потрібна.

Не виривайте з контексту. Якщо надсилаєте лог з помилкою, очевидно, що треба включити не тільки саму помилку, але й код, що її викликав, з прикладом того, на чому він зламався.
Якщо для вирішення вашої проблеми є встановлений процес — дотримуйтесь його. Не варто винаходити велосипед, якщо вже є стаття з покроковим HowTo.

Не варто добиватися відповіді однієї людини різними каналами (писати в слак, скайп, телеграм) одночасно — людині буде неприємно.

Не потрібно писати однакове повідомлення відразу декільком людям, сподіваючись на те, що хоча б хтось вам відповість. Всі ці люди можуть дати вам відповідь (швидше за все, він буде той самий), але всі вони на якийсь час відвернуться від своїх справ. Використовуйте групові чати.

Дивіться ширше

Все, про що ми розмовляли тут, можна застосувати і за межами сфери ІТ. Дотримуйтесь цих правил у супермаркеті, автосервісі, на відпочинку в іншій країні, спілкуючись з друзями та родичами. Покажіть людям, що ви цінуєте їх час, і не хочете їх напружувати через дрібниці. Покажіть, що ви витратили сили та час на те, щоб вирішити проблему самостійно, але вам не вдалося, і вам справді потрібна допомога. На вдячність люди з розумінням поставляться до ваших проблем і допоможуть з їх вирішенням.

Джерело: habr.com

Додати коментар або відгук