Баланс между работой и личной жизнью

Читать в полной версии →

Это перевод статьи Work/Life Balance Will Make You a Better Software Engineer от Itamar Turner-Trauring.

Очень хочется верить, что брать работу домой — верный путь превратиться в лучшего программиста, а здоровый баланс между работой и жизнью ограничит возможности узнавать новое.

Но если вы хотите быть хорошим инженером-программистом, вы не должны брать работу домой.

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

Новые проблемы, новые решения

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

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

Я как-то написал профайлер Python Global Interpreter Lock, используя  LD_PRELOAD, чтобы переопределить взаимодействия процесса Python с блокировками операционной системы и отладчиком gdb и посмотреть на C-стек реальной программы. Сколько бы он не запускался, ни разу не принёс достаточно пользы... но работа над ним была очень познавательной.

Читайте также: 4 совета, как подойти к работодателю и предложить ему оплачивать ваше обучение

Дополнительные навыки, которые вы получите, работая над разными проектами, профессионально усовершенствуют вас. Но даже если у вас нет времени или мотивации работать из дома, не бойтесь: баланс между работой и жизнью так же поможет вам совершенствоваться.

Получение разных навыков

Быть хорошим инженером-программистом — это не просто штамповать код. Вам нужны дополнительные навыки. Время, потраченное на выполнение каких-то других штук, кроме кода, может усовершенствовать ваши способности.

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

Сейчас я провожу больше времени со своим ребенком и получаю дополнительный опыт, как косвенное воздействие. Например, чтобы объяснять мир 4-летнему ребенку, нужно уметь находить сложные концепции и упрощать их до базовых основ.

Вам нужен гамак, чтобы решать сложные проблемы

Хотя дополнительное обучение поможет вам, основа баланса между работой и жизнью — не работать. Непростые задачи требуют пауз — времени, когда вы явно не думаете о решениях, когда ваш мозг работает над ними в фоновом режиме. У Рича Хики, создателя Clojure, есть длинное выступление на эту тему, называется Hammock Driven Development.

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

Иногда я сидел с ребенком в нерабочие часы. Я не настолько крут как Хики, а забота о младенце и немного повзрослевшем ребёнке была не такой беззаботной, как гамак. Но я все же заметил, что время, потраченное в отсутствие мыслей о работе, было полезным для решения сложных задач, к которым я возвращался на следующий день.

Научиться делать больше с меньшими затратами

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

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


Перевод: Наталия Басс


От редактора: Мы на Хекслете часто публикуем переводы статей. Важно помнить:

  1. Мнение автора статьи может отличаться от мнения администрации и сотрудников Хекслета.
  2. Цель перевода – показать мнение. Поэтому одна статья может визуально противоречить другой: это просто разные мнения. Мы оставляем на вашу ответственность возможность анализировать и делать выводы для себя.