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

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

Во время прохождения уроков и выполнения упражнений могут возникнуть трудности. В таких случаях важно правильно задать вопрос — это поможет быстрее получить точный и полезный ответ.

Если вы учитесь на тарифе с поддержкой наставника — обращайтесь к нему напрямую. Если такой поддержки нет, присоединяйтесь к Telegram-сообществу Хекслета. Там каждый день общаются студенты, наставники и менторы. Обсуждения идут в тематических чатах (Python, Java, PHP, Go и другие), так что вы легко найдёте нужный канал и получите помощь от тех, кто сталкивался с похожей задачей.

Почему это важно

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

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

Но мы так не можем 🙂

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

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

Примеры

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

Покажите ошибку и код

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

Реакция специалиста: Откуда этот код — из упражнения, теории или собственного проекта? Где он запускался — на Хекслете или локально? Что значит «не работает» — не запускается, выдаёт ошибку или неправильный результат?

Даже опытный разработчик не может выполнить код «в голове». Без пояснений и описания шагов такой вопрос затрудняет помощь.

Решение: Если проблема с упражнением, сохраните решение в Хекслете — это лучший способ показать и код, и вывод тестов. Если код не из Хекслета — воспользуйтесь одним из сервисов:

  • Pastebin — для фрагментов кода и ошибок;

  • CodeSandbox и CodePen — для фронтенда;

  • Replit — для бэкенда и CLI-проектов.

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

Опишите свои действия

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

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

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

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

Расскажите, где запускается код

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

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

Даже с кодом и ошибкой невозможно учесть все особенности локальной настройки. Причины могут быть в ОС, версиях ПО, даже в BIOS или железе.

Как правильно задать вопрос: Запустил код из теории на своём ПК (VS Code, Ubuntu 18.10, версия языка: 3). Запускал через терминал.
Код и лог ошибки выложил на GitHub: ссылка 

Если вопрос касается настройки окружения, лучше задать его в Telegram-сообществе — возможно, другие участники уже сталкивались с подобной ситуацией.

Используйте отладочную печать

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

Реакция специалиста: Пытался ли студент решить вопрос самостоятельно? Дебажил ли он код? Он не хочет разбираться или действительно не разобрался?

В Хекслете важно не только выполнить задания, но и научиться находить и решать проблемы самостоятельно. В реальной работе поддержки может не быть, и разобраться придётся самому.

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

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

👆 На этом пока всё