Перевод статьи Итамара Тернера-Тауринга «Only code at work? That doesn’t make you a worse programmer».
В конце дня, когда с работой покончено, вы отправляетесь домой — и не тратите ни минуты своего свободного времени на написание кода. И это прекрасно, ведь в вашей жизни есть много других вещей. Но ваш коллега тратит на написание кода дополнительные 20 часов в неделю, и эта дополнительная практика позволит ему стать лучшим программистом, чем вы, он быстрее получит повышение и будет зарабатывать больше вас. А это не хорошо.
Но это к тому же и не правда.
Это заблуждение базируется на неправильном понимании того, какие навыки нужны, чтобы стать хорошим программистом. Энтузиасты, для которых программирование это также и хобби, являются ценными сотрудниками, но вы ценны не меньше. Даже если навыки улучшаются благодаря дополнительным часам, потраченным на написание кода, все равно этот подход по сути не является лучшим.
Разработка ПО, за исключением разве что самых маленьких проектов, это командная работа, требующая разнообразных навыков, знаний и подходов. Тип мышления людей, рассматривающих программирование как инструмент для выполнения работы (назовем их прагматиками), – не менее полезен, чем тип мышления энтузиастов.
Чтобы понять, почему это так, давайте рассмотрим жизненный цикл программиста-энтузиаста. Посмотрим, как развиваются его навыки и сравним это с подходом прагматика. Вы увидите, что как энтузиасты так и прагматики имеют свои сильные стороны, и команды разработчиков получают пользу от обоих типов.
Путь энтузиаста
Исходной точкой для энтузиастов является любовь к программированию: им нравится писать код. Они получают удовольствие от процесса написания программы и от понимания сложностей инструментов, которые используют.
Со временем, когда они приобретают больше опыта и навыков, их точка зрения расширяется. Они уже не просто хотят писать код. Они хотят писать хороший, высококачественный код: они хотят гордиться своей работой. Поэтому теперь они фокусируются не только на удовольствии от написания кода, но и на менее приятных, но все же важных вещах, таких как тестирование.
Если энтузиасты продолжают развивать свои навыки и приобретают больше опыта, они в конечном итоге приходят к тому, чтобы рассматривать код в качестве инструмента, средства для достижения цели. Программа сама по себе все еще интересна, но она также должна писаться для достижения определенных целей. На этом этапе качество кода становится менее объективным критерием: ситуации бывают разные, и то, что подходит для одной, для другой не годится.
Сильные и слабые стороны
У энтузиастов часто бывает хорошее понимание инструментов и технологий, которыми они пользуются. С другой стороны, они иногда склонны к холиварам и фанатизму (им кажется очень важным выбрать самый лучший инструмент). Пока энтузиасты не поймут, что программа это средство для достижения целей, им тяжело дается работа над вещами, не связанными напрямую с написанием кода.
Путь прагматика
Слабые стороны энтузиастов это сильные стороны прагматиков. Прагматики изначально рассматривают программы как средства достижения целей. Они вполне могут сказать вам: «Мне нравится писать программы, но по большей части я забочусь о том, что можно будет делать с помощью этого ПО». То есть для прагматика совершенно естественно фокусирование на целях, а энтузиасту понадобятся годы, чтобы к этому прийти.
Но если прагматики не концентрируются на обучении намеренно, они могут страдать меньшим пониманием инструментов и техник. Это можно смягчить с помощью обучения в ходе работы и ознакомления с доступными технологиями.
Разработка программ это не соревнование
Со временем и практикой сильные стороны энтузиастов и прагматиков могут сблизиться. Но даже в этом случае у разных людей обычно бывают разные наборы навыков, разные методы и подходы к построению программного обеспечения.
Так и должно быть. Современные программы это слишком большие проекты, чтобы их можно было создать в одиночку, и слишком сложные, чтобы отражать лишь одну точку зрения.
Когда вы сравниваете себя со своими товарищами, вам не стоит игнорировать свои слабости, но не нужно забывать и о своих сильных сторонах. Вы можете и должны учиться у своих коллег, но скорее всего есть нечто, чему и вы можете их научить.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]