Перевод статьи Кевина Постона «What To Do When You Don’t Know What To Do».
Вхождение в «поток» это одно из самых прекрасных ощущений для разработчика. Надеваете наушники и растворяетесь в коде. Часы пролетают, а вы просто наслаждаетесь работой. Знай успевай отмечать галочками реализованные фичи и исправленные баги. А в конце дня сами поражаетесь своим способностям создать что-то из ничего. Вы великолепны.
Но есть дни, когда у вас просто все из рук валится, и вы удивляетесь, как вас вообще на работу взяли.
Это случается, причем со всеми. У каждого человека бывают ситуации, когда он исчерпал все свои умственные силы и даже обращение к Google не помогает, а вызывает раздражение, потому что все равно ничего не понятно. Вы не одиноки.
Так что же делать? Разбираться, что же еще. Вы же разработчик, решение проблем это ваша специализация!
Вот несколько вещей, которые я стараюсь иметь в виду:
1. Код делает только то, что ему сказано сделать
Когда ваш код делает что-то не то, помните, что это вы велели ему сделать это (ну, или какие-нибудь используемые вами библиотеки/пакеты). Умение отлаживать код это настолько жизненно необходимый навык, что многие разработчики воспринимают его как само собой разумеющееся.
Работая над сложной задачей, я записываю все свои действия в логи, чтобы знать состояние моего кода в любой промежуток времени. Кто-то где-то велел вашему коду сделать то, что, по вашему мнению, он делать не должен. Вам только нужно найти, кто и где.
2. Ничего не предполагайте
Обожаю моменты, когда кто-то зовет меня к своему столу помочь с какой-то задачей, а объясняя ее, сам находит решение. Это известный в сфере разработки ПО феномен под названием «метод утенка». Он так часто срабатывает потому, что вам приходится доказывать свои предположения.
Сталкиваясь с проблемой, вернитесь назад по сценарию ваших действий, чтобы убедиться, что все, что вы считаете фактом, действительно им является. Может оказаться достаточным не поверить имени метода или функции. Посмотрите, что на самом деле эти функция или метод делают.
3. Понимание интеграции
Некоторые из самых сложных проблем, которые у меня возникали, были результатом попытки интегрировать мой код и другой пакет или библиотеку. Я знаю, предполагается, что эти вещи будут работать, как описывается в инструкциях, но знаете, что? Этот код писали такие же люди, как и мы с вами, они могли допустить ошибки. Да и не бывает ПО вообще без багов.
Не бойтесь заглянуть в этот чужой код и посмотреть, что конкретно происходит. Порой случается, что проблема вовсе не в вашем коде! Если обнаружили нечто подобное, стоит послать пул-реквест и внести свой вклад в работу сообщества. Благодаря этому не только вы решите свою проблему, но и другие разработчики никогда не встретятся с ней.
4. Взглянуть на проблему на свежую голову
Порой стоит сделать шаг назад и позволить своему великолепному подсознанию разобраться с задачей. Так часто случается. Также часто бывает полезным обратиться к кому-нибудь за помощью.
Не стоит при этом чувствовать себя побежденным. Программы это сложное дело. Даже самые простые ошибки порой могут просочиться, потому что мы ведь не роботы. Мы не совершенны. Так что нечего стыдиться, прося кого-то о помощи. Это не значит, что вы неспособны разобраться самостоятельно. Просто вы достаточно зрелый человек, чтобы понять: есть что-то, что вы упускаете, а кто-нибудь другой, возможно, сумеет это найти.
Если ничего из этого не помогает, я бы поискал другую профессию. Шучу! Это всего лишь несколько вещей, которые помогают мне, и я надеюсь, что и вам они тоже помогут!
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]