Вопрос: Кажется, я борюсь с собой. Это происходило несколько раз и серьезно сказывалось на качестве моей жизни.
Мне поручают реализовать фичу, обычно расплывчато, и что-то, что, как мне кажется, добавляет ненужной сложности в кодовую базу. Я пытаюсь урезонить своих менеджеров, но обычно их решение уже принято. Затем я часами борюсь с собой, чтобы заставаить себя доделать фичу. Не потому, что код занимает так много времени, а потому, что я не могу заставить себя это сделать. Я трачу часы на то, чтобы уговорить себя сделать это. Кроме того, я трачу много времени, пытаясь сделать что-то максимально читаемым, удобным в обслуживании и простым. Это означает взвешивание достоинств различных решений и выбор какого-то одного. Я очень колеблюсь, когда принимаю решения, что приводит к большему количеству потраченных впустую часов.
Самое главное — мои менеджеры меня не увольняют. Они не видят, сколько часов я потратил зря, насколько я демотивирован. Вместо этого они относятся ко мне как к одному из своих самых ценных сотрудников (вот это ирония!). (На данный момент я не могу сменить работу. Я помогаю стартапу моего лучшего друга, выполняя эту работу.)
Вы бывали в таких ситуациях? Как вы погружаетесь в работу и делаете это, когда все ваше существо восстает против задачи?
Ответ Джонатана Блоу: Я 42-летний очень успешный программист, который за свою карьеру уже прошел через множество ситуаций, многие из которых сильно демотивировали. И лучший совет, который у меня есть для вас, — прекратить то, что вы делаете. Серьезно. Даже если вам кажется, что вы не в состоянии сделать это, то знайте — вы можете. Это нормально. Вы свободны. Хорошо, вы помогаете стартапу своего друга, но какова соответствующая стоимость этого? Она бы заставила вас сделать это, если бы вы знали, что это растопчет вашу душу (crushing your soul)?
Я не использую фразу «растопчет твою душу» легкомысленно. Когда это происходит медленно, как в этих случаях, трудно увидеть масштаб происходящего. Но это очень серьезная ситуация, и если ее не остановить, это может повредить вашему потенциалу хорошо работать всю оставшуюся жизнь. Причины:
- Правы комментаторы, предупреждающие о выгорании. Выгорание — очень серьезная ситуация. Если вы сильно выгорите, будет сложно эффективно выполнять любую будущую работу, на которую вы пойдете, даже если это якобы прекрасная работа. Относитесь к выгоранию как к физической травме. Однажды я выгорел, и мне потребовалось не менее 12 лет, чтобы полностью восстановить свою продуктивность. Не делайте этого.
- В более широком смысле лучшая и самая творческая работа берет свое начало в радости и восхищении. Если вы потеряете способность испытывать радость и восхищение по поводу вещей, связанных с программированием, вы не сможете работать наилучшим образом. Эта проблема стоит отдельно от эмоционального выгорания и параллельна ему! Если вы выгорите, вы все равно сможете ненадолго почувствовать радость и волнение в начале проекта/идеи, но это быстро исчезнет по мере того, как наступит реальность повседневной работы. Или же, если вы не выгорели, но и у вас нет чувства изумления, скорее всего, вы никогда не начнете хорошо работать.
- Чем раньше вы начинаете карьеру, тем важнее это время для вашего развития. Программисты учатся на практике. Если вы поместите себя в среду, в которой вы постоянно сталкиваетесь с проблемами и работаете на пределе своих способностей, то по прошествии нескольких лет ваши навыки значительно возрастут. Это все равно, что интенсивно изучать кунг-фу в течение нескольких лет или пройти обучение на морского пехотинца или что-то в этом роде. Но это не просто разовое постоянное повышение. Чем быстрее вы сделаете что-то и чем оно будет более тщательным и безошибочным, тем больше идей вы сможете воплотить в жизнь, а это значит, что вы будете быстрее учиться и в будущем. В долгосрочной перспективе навыки программирования подобны сложным процентам. Больше сейчас означает НАМНОГО больше позже. Меньше сейчас означает НАМНОГО меньше позже.
Так что, если вы ставите себя в положение, которое не является действительно сложным, это доставляет неудобства изо дня в день, и вы все делаете медленно, это все не просто про пробуксовку. Вы снижаете эту кривую сложных процентов до конца своей карьеры. Это серьезная проблема.
Если бы я мог вернуться к своей ранней карьере, я бы безжалостно стёр все свои дерьмовые работы (а их было много).
Еще кое-что о личности. Вначале как программист я часто попадал в описанные вами ситуации. Мне не нравилось то, что я делаю, я думал, что руководство глупое, я просто не думал, что моя работа очень важна. Я был очень подавлен из-за проектов, продвигался медленно, временами попадал в режим, в котором я большую часть времени притворялся, что у меня есть прогресс просто потому, что не мог заставить себя выполнить работу. У меня просто не хватало духа на это. (Я знаю, что многие здесь знают, о чем я говорю.) Со временем я впал в депрессию из-за этого: у меня ужасная трудовая этика? Неужели я просто плохой программист? Плохой человек? Но эти вопросы не были так выражены словами или интеллектуализированы, они были больше похожи на общее недомогание и разочарование в том, куда движется жизнь.
Позже я узнал, что у меня совсем не плохая трудовая этика и что я не плохой человек. На самом деле я довольно свиреп и проделываю огромное количество хорошей работы, когда считаю, что то, что я делаю, важно. Оказалось, что для того, чтобы уловить это чувство важности, мне пришлось работать над своими собственными проектами (и даже тогда мне потребовалось много времени, чтобы найти идеи, которые действительно меня тронули). Но как только я это обнаружил, это фактически превратило меня в другого человека. Если это работает для вас, разница между этими двумя образами жизни ОГРОМНА.
Хорошо, это было долго и бессвязно. На этом я остановлюсь. Желаю вас удачи.