Как задавать вопросы ментору или старшему разработчику
Если не знаешь, надо не бояться, а узнавать
Поговорим о правилах общения разработчиков. Точнее, разработчиков помладше и разработчиков постарше. Неважно, идёт ли речь об отношениях “учитель-ученик” или “синьор-джуниор”, есть определённые способы улучшить коммуникацию между вами и более опытным программистом.
Внимание: указанные ниже рекомендации не относятся к интересным вопросам, не связанным с конкретной задачей, но связанным с пониманием важных и неочевидных вещей, на которые обычно не дают ответа в гугле.
Не задавайте вопросы
В первую очередь нужно убедиться стоит ли тратить своё время и время коллеги\ментора на этот вопрос. Поэтому стоит сначала задать несколько вопросов самому себе:
- Изучил ли я документацию к использумой технологии?
- Потратил ли я несколько часов на чтение исходников или решение проблемы каким-нибудь ещё путём?
- Проверил ли я гугл на наличие нужной информации?
Какие ресурсы лучше всего подходят для самостоятельного изучения программирования? У нас есть статья про это Читать
Если на все эти вопросы можно дать утвердительный ответ, то помощь коллеги\ментора и правда необходима. Переходим к следующему пункту.
Расскажите о том, что пытаетесь сделать
Подробно опишите задачу, которую пытаетесь решить и какой результат хотите получить. Лучше дополнительно пояснить зачем вообще вы хотите решить эту задачу (в тех случаях, когда это неочевидно). Возможно, вам предложат совершенно иной план.
Расскажите о том, что вы уже попытались сделать
Будет удобнее, если человек, к которому вы обратились за помощью, будет знать всё, что вы уже попытались сделать. Это сэкономит вам обоим время, потому что ему не придётся предлагать решения, которые уже были опробованы и точно не сработают.
Рассказывать о своих попытках нужно максимально подробно, прилагая ссылки на используемые материалы, форумы, StackOverflow и т.п.
Предоставьте примеры кода
Обязательно покажите разработчику код, который у вас не работает. Ни в коем случае не пишите “я написал приложение и оно не работает”. Что именно не работает? Какое сообщение об ошибке? Что в логах?
Используйте сервисы вроде gist.github.com или pastie.org для публикации кусков кода. Чем больше опубликуете и покажете вашей жертве, тем лучше :)
Задайте вопрос
А теперь самое важное: избегайте всеми силами простого “Что мне делать?”. Предоставьте варианты. Составьте список из возможных решений проблемы и спросите подойдёт ли какой-нибудь из них.
В целом, стремитесь к тому, чтобы решение проблемы совместно с вопрошаемым разработчиком заняло как можно меньше времени. В идеале, после предоставления всей информации и самого вопроса вы должны получить конкретный ёмкий ответ и немедленно вернуться к решению задачи самостоятельно.
Я всегда стараюсь потратить минимум несколько часов на решение проблемы самостоятельно. Только так можно чему-то быстро научиться. Цените ваше время и время коллеги\наставника и учитесь решать проблемы самостоятельно. :-)
P.S. Интересно, а эти рекомендации подходят для других областей?