Как правильно задавать вопросы

Некоторые уроки или упражнения могут вызвать ступор, который не позволяет двигаться дальше. В таких ситуациях мы рекомендуем задавать вопросы в обсуждениях к урокам. Для помощи студентам Хекслета работают менторы. Они отвечают на сотни вопросов в день и обработали уже более 40 тысяч вопросов за всё время.

Существуют заблуждения новичков относительно опытных программистов. Многим кажется, что разработчик может лишь взглянув ошибку или просто прочитав вопрос определить причины ошибки и подсказать её решение. Если бы это было правдой, то вакансия ментора содержала бы такие «интересные» требования:

  • помнить наизусть тысячи страниц текстов уроков, тестов, упражнений
  • по скриншоту или тексту ошибки указывать на неисправность в коде
  • выполнять код в голове, независимо от языка и фреймворков
  • читать мысли и понимать контекст вопроса

Так как эти требования нереальны, рекомендуем следовать простому, но важному принципу, когда обращаетесь за помощью к ментору:

Для получения быстрого и эффективного ответа, вопрос должен быть правильно поставлен и содержать максимум необходимых для его решения данных.

Из-за недостатка информации и плохо сформулированного вопроса ментор тратит больше времени на его понимание, а обсуждение затягивается для выяснения деталей. Такой вопрос студента вызывает ещё больше вопросов у ментора.

В этой статье мы покажем примеры неправильных вопросов, реакцию ментора на них, опишем логику рассуждений и подскажем, как задавать вопросы правильно.


Вопрос студента: У меня не работает код.

Какой код? В упражнении, примере из теории или из самостоятельного задания? А где запускается этот код: в редакторе Хекслета или на домашнем компьютере? Не работает — это значит, что не запускается или запускается, но выдает неправильный результат?

У вопроса отсутствует контекст и данные, которые можно анализировать. Без контекста невозможно понять о чём идёт речь. И даже зная контекст, нужно понимать, какие действия были выполнены и к каким результатам они привели. Допустим, у студента ошибка в решении упражнения, в таком случае он может сохранить своё решение в код-ревью, чтобы показать код и результат его запуска.

Как правильно задать вопрос: Решил задачу в практике, но код прошёл два из трёх тестов. Я добавил отладочную печать на каждый шаг и вижу, что на шаге 3 данные не изменяются, как надо. Помогите понять почему. Ссылка на код-ревью.

Вопрос студента: Выполняю второй пункт самостоятельного задания про работу с файловой системой. Всё работает, но вместо результата работы возвращается ошибка, что нет прав.

Так всё работает или не всё? Каких прав нет: на чтение или запись файлов? Почему он не прикрепил текст ошибки?

Собственная интерпретация ошибки студентом вносит ещё больше путаницы. Это похоже на консультацию у врача по телефону. Информация о том, что у пациента болит нога, ничем не поможет врачу, пока не будут сделаны снимки и анализы. Так же и у ментора: пока нет кода и результатов его работы, диагностировать неисправность по одному лишь описанию очень сложно. Если студент опишет свои действия и их результат, то будет проще понять истинную причину ошибки.

Как правильно задать вопрос: Выполняю команду ./bin/run из второго шага самостоятельного задания и получаю ошибку bash: ./bin/run: Permission denied. Подскажите, что это значит и как исправить?


Вопрос студента: Запустил последний пример из теории у себя на компьютере, но он возвращает ошибку. (Прикреплен скриншот текста ошибки и кода).

Какая операционная система у студента? Какой командой запускался код? Какая версия языка установлена на компьютере студента?

Даже если предоставлена информация про код и способ его запуск, нет никакой гарантии, что получится разобраться с настройками компьютера студента. Причины могут быть в настройках BIOS, отсутствии каких-то библиотек на ПК или других специфичных ситуациях, вплоть до зависимости от железа. Можно попробовать задать такой вопрос в нашем Слаке. Возможно, что с подобную ошибку уже решил кто-то из других студентов. Но нужно быть готовым выполнить всю локальную настройку самостоятельно.

Как правильно задать вопрос: Запустил код из теории у себя на компьютере, но он возвращает ошибку. Выполнял запуск кода в терминале VS Code на Ubuntu 18.10, версия языка: 3. Вот исходный код на Гитхабе, там же есть текст ошибки в файле .log: ссылка.


Вопрос студента: У меня не работает код, посмотрите в чём ошибка. Ревью: ссылка.

И как мне разобраться с этим кодом? Оставил бы хоть какие-то рассуждения почему его код не работает. Он пытался его дебажить? Не вижу ни одного места с отладочной печатью.

Даже опытный разработчик не способен исполнять код в уме или, просто взглянув, указать на место ошибки. Единственный способ разобраться — это отладка и рефакторинг. Студенты однажды придут в реальные проекты, где кода будет в разы больше и он будет гораздо сложнее. Поэтому менторы только дают подсказки и советы, но не занимаются его отладкой и исправлением до рабочего состояния. Посмотрите это видео про отладку, где рассказывается, почему это важный инструмент для каждого программиста: https://www.youtube.com/watch?v=9iwYRcw3A8A

Как правильно задать вопрос: На некоторых тестах код прерывает выполнение. Я добавил отладочную печать и увидел, что цикл выполняется несколько раз и потом прерывается. Подскажите где может быть ошибка: ссылка на ревью.

Была ли эта статья полезна? Спасибо за оценку! Возникла проблема при отправке оценки. Попробуйте позже

Нужна помощь? Напишите нам Напишите нам