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

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

Задавать вопросы более опытным разработчикам — важный навык в процессе обучения. Многие программисты прошли тот же путь и могут понятным языком объяснить концепции и идеи из области программирования, которые новичку кажутся сложным. Разберемся, как правильно задавать вопросы.

Шаг первый. Самостоятельный поиск решения

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

  • Попытайтесь найти ошибки. Как бы банально это не звучало, большинство проблем с кодом возникает из-за пропуска специальных символов или ошибки в имени переменной.
  • Попытайтесь найти ответ в Google. Уважайте чужое время: прежде, чем просить о помощи, убедитесь в уникальности проблемы.

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

Ответы можно искать на профильных форумах — например, на StackOverflow, Quora, Toster, Reddit или CodeProject. Писать вопрос стоит в разделе, который соответствует вашему языку программирования или технологии. К вопросу лучше добавить соответствующие хэштеги, которые помогут более опытному программисту найти его.

  • Попытайтесь найти ответ в руководстве. Документация к популярным языкам программирования (а JavaScript и Python к ним, безусловно, относятся) содержит подробное описание синтаксиса и возможностей языка. Это еще один источник решения проблем, которые могут возникнуть у вас во время обучения или работы над проектом.

Шаг второй. Обращаемся за помощью

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

Представим, что у вас есть скрипт, который отвечает за сбор экспедиции для миссии по покорению Марса. Вы хотите добавить в код, расположенный ниже, новую функцию readCrew:

function getRightCaptain() {

}

function getRightDoc() {

}

function getAllEngineer() {

}

module.exports = {
  getRightCaptain,
  getAllEngineer,
  getRightDoc,
};

readCrew читает данные из файла «crew.txt». Однако при попытке сделать это программа выдает ошибку ENOENT: no such file or directory, open 'crew.txt':

function readCrew() {
    return fs.readFileSync('./crew.txt').split('\\n');
}

Есть несколько правил формулировки вопроса:

  1. Введите в контекст. Объясните, что у вас есть скрипт на JS, который выполняет чтение из файла под названием «crew.txt».
  2. Опишите проблему. Данные из файла не читаются, программа выдает ошибку и прекращает работу.
  3. Обозначьте желаемый результат. Постарайтесь избегать формулировок из разряда «как сделать так, чтобы заработало?». Чем конкретнее, тем лучше: например, получить данные из файла и вывести их в консоль.
  4. Как воспроизвести проблему. По шагам расписать путь к воспроизведению проблему — лучше сделать это в хронологическом порядке. Например, так:
  • Откройте консоль
  • Запустите скрипт
  • В текущей версии кода возникнет ошибка ENOENT: no such file or directory, open 'crew.txt'

Что именно идет не так? Здесь стоит указать данные из логов, результат вывода в консоль или код ошибки.

Какие идеи есть у вас? Например, вы понимаете, почему так происходит, но не знаете, как исправить проблему.

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

Шаг третий. Поблагодарите и поделитесь решением

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

И помните: не стыдно чего-нибудь не знать, но стыдно не хотеть учиться.
Oleg Sabitov

Oleg Sabitov

Шеф-редактор Elbrus Bootcamp