Пособие для программистов: как правильно задавать вопросы
Вы программист и боитесь задавать вопросы, уточнять что-то? Не надо так, показываем, как это делать правильно. Нет, никакого HR головного мозга.
Прочтите эту статью, а потом сохраните, распечатайте, чтобы каждый раз, когда у вас возникает вопрос, можно было быстро этим воспользоваться.
К чему это всё
Большинство людей почему-то боится задавать вопросы. Возможно, потому что они не хотят показаться слабыми, а предпочтут оставаться вечными студентами самоучками. Есть несколько советов, следуя которым можно остаться уверенным в себе и даже продвинуться в карьере.
Независимо от того, являетесь ли вы частью команды, просто пользователем StackOverFlow или студентом, важно задавать правильные вопросы, чтобы глубже вникать в проблему. Получается, что люди, задающие полезные вопросы, более эффективны, вследствие чего уважение к ним возрастает, соответственно и возможности карьерного роста больше. Короче, одни плюсы.
Важно понимать, что если хорошие вопросы экономят время, то плохие вопросы наоборот отнимают его. Плохие вопросы создают повод сомневаться в ваших компетенциях, провоцируют на конфликты из-за навязчивости.
Те, кто задают вопросы ради вопроса обычно не продвигаются по карьерной лестнице. Это потому, что работать с ними означает убеждаться в их глупости . Представьте, вы менеджер нужно кого-то уволить, скорее всего, вы уволите именно тех, кто задавая дурацкие вопросы имитирует деятельность. Единственное, что спасает большинство таких задавальщиков, это то, что все вокруг них тоже плохие, и поэтому найти наиболее бесполезных трудно.
Пошаговое руководство
1. Не пытайтесь понять то, что для вас слишком сложно
- Чем сложнее один вопрос, тем больше новых вопросов будет возникать. Зачем кого-то донимать?
- Просмотрите код по строчке, может вы просто чего-то не замечаете и поэтому у вас возник вопрос;
- Если есть возможность поискать информацию по вопросу, сделайте это. Всех же бесит, когда спрашивают то, что можно нагуглить за несколько секунд;
- Пользуйтесь отладчиком, это первая ступень при поиске проблемы. Если ещё не умеете, посмотрите статью по отладке на нашем сайте.
2. Поймите, что вам нужно и чётко опишите проблему
- Объясните контекст проблемы. Например, если вы участвуете в контесте, укажите URL-адрес соответствующего задания и объясните, почему у вас не получается сделать то, что вы пытаетесь. Или, к примеру, во время просмотра видео-гайда, у вас возник вопрос, тогда, укажите временной промежуток, чтобы кто-то, кто может помочь, понимал, почему вы застряли;
- Расскажите, какие действия вы совершили перед созданием проблемы. Например, вы нажали три кнопки в определенном порядке, потому что это работает в Chrome, но не в Safari? Объясняйте это!
- Расскажите, что должно было быть;
- Объясните, что вы на самом деле видите. Например, если есть сообщение об ошибке, поделитесь ошибкой и строкой кода, вызвавшей ее. Если есть странная проблема с пользовательским интерфейсом, сделайте снимок экрана.
3. Укажите место, где возникла проблема
- Если вы работаете над крупным проектом, конечно же, весь код показывать не нужно, лишь его часть;
- Если код общий, убедитесь, что он не изменится, пока вы пытаетесь понять где проблема. Иначе ситуация будет выглядеть так, что вы отвлекли кого-то, а проблемы уже нет, или это другая проблема.
4. Будьте уверены, что этот код вообще решает данную проблему
- Возьмите проблемный код, и убедитесь, что он ведет себя точно так, как вы описываете его действие в данный момент. Если вы разделите сломанный код, который не реплицирует проблему, вам будет невозможно помочь.
5. Если это возможно, продемонстрируйте то, что должно получиться
- Например, если у вас есть проблема с интерфейсом, создайте живую демонстрацию, например с помощью Plunker, и поделитесь ссылкой;
- Если демонстрация в реальном времени невозможна, объясните, почему. Затем загрузите свой код на сайт вроде Github, и предоставьте процесс запуска кода.
6. Форматируйте свой код
- Неважно, какой стиль вы используете. Это упрощает чтение кода. Это также поможет вам в следующем шаге.
7. Проверьте код на опечатки
- Никому не нужно искать опечатки в коде за вас, этому нужно научиться;
- Например, если вы застряли в туториале, вернитесь к точке, где работал ваш код, и повторите уроки оттуда, убедившись, что ваш код продолжает работать. Когда дойдете до точки, где ваш код не работает, повторите урок и дважды (можно больше) проверьте наличие опечаток;
- Допустим, вы пытаетесь сделать что-то и сравниваете это с чужим кодом. Если в целом всё совпадает, но чужой код работает, а ваш нет, тогда у вас есть опечатки. Ну, теперь, остаётся лишь найти ее. Вернитесь, и последовательно просмотрите код. Выполняйте свою работу сами.
8. Объясните, как вы пытались устранить проблему
- Придумайте список причин, по которым могла возникнуть проблему, и проверьте каждую гипотезу, а потом объясните, что вы сделали;
- Да, в процессе вы можете решить проблему самостоятельно. Зачастую так и происходит.
9. Расскажите своё мнение по данной проблеме
- Основываясь на предыдущих шагах, предоставьте ваше предположение о том, что могло послужить возникновению проблемы.
10. Сформулируйте свой вопрос
- Обдумайте свой вопрос, проверьте, все ли, что нужно для его решения вы знаете;
- Ещё раз обдумайте его и сформулируйте как можно понятнее, чтобы никого не запутать.
11. Обсуждаете процесс работы и помните, что это не последний ваш вопрос
- Если вы выяснили ответ, пока кто-то думает об этом, сообщите им, чтобы другие не мучались;
- Когда вы получите ответ от другого, найдите время, чтобы тщательно переварить его, и полностью понять, что говорит человек. Иначе ему покажется, что его помощь не ценится. А может его совет и вовсе не будет верным;
- Поблагодарите каждого, кто помог, хотя им это не было нужно (если вы конечно, никому не угрожали).
Источник: Gordon Zhu on Medium