Перевод статьи Are you (programming) in your comfort zone? Please don’t.
Я работаю программистом более пяти лет и всё это время использовал только Java стек технологий, не выходя за его пределы. Как следствие, я чувствую себя вполне уверенно с любым Java кодом. Совсем недавно я решил поиграться с JavaScript, а именно с node.js. JS во многих отношениях похож на Java, но он другой. Сквозь призму Java-разработчика, JS виделся мне грязненьким инструментом для фронтенда. Но использование node.js изменило моё отношение к нему и я начал ценить этот язык. Более того, чем больше я писал на JS, тем больше получал от этого удовольствия. В данный момент я использую MEAN стек на работе. И это офигенно увлекательно.
Когда я только начал писать на node.js, то испытывал дискомфорт и беспокойство. Мне было сложно выражать свои мысли на новом языке. Код, который я писал, не следовал хорошим практикам или каким-либо архетектурным стандартам. Всё это было за пределами моей зоны комфорта.
У меня для вас плохая новость: у вас тоже есть своя зона комфорта.
Зона комфорта
Зона комфорта — место, в котором вы чувствуете себя в безопасности. Комфортно. Имеено здесь большинство людей привыкли действовать (работать).
Повседневная деятельность, к которой вы привыкли, обычно не вызывает чувства беспокойства или неудобства. Она — часть вашей зоны комфорта, включающей навыки и умения, которые вы приобрели. И вы остаётесь весьма продуктивны находясь в вашей зоне комфорта.
Почему вам следует выйти из зоны комфорта
Вы чувствуете себя в безопасности. Вы продуктивны. Вы не чувствуете беспокойства или стресса. А затем вам становится скучно. Вы не ощущаете вызова. Ведь зона комфорта состоит из того, что мы уже умеем делать легко. Находясь в ней, вы не можете прогрессировать или прокачивать навыки.
Для программиста отсутствие движения вперёд означает движение назад.
Наибольшей пользой от выхода из зоны комфорта является ваш личный рост. Всякий раз, когда вы решаете задачу, находящуюся за пределами вашей зоны комфорта, и успешно её завершаете, ваша уверенность возрастает. Вы чувствуете, что достигли чего-то значимого.
За пределами зоны комфорта
Прямо за границей зоны комфорта лежит зона обучения. Навыки и умения находящиеся в ней почти досягаемы. Они не так далеко, чтобы заставить вас паниковать, но в то же время не слишком близко, чтобы быть легкодоступными.
Поскольку человек может прогрессировать лишь в зоне обучения, очень важно уметь нащупывать её. Для одних она может быть широкой, для других узкой. Но, как только вы начнёте испытывать себя (бросать себе вызов), эта зона начнёт расширяться.
Как понять, что вы продвигаетесь
Когда вы не знаете, где начинается ваша зона обучения, попробуйте испытать себя. Текущая задача должна быть такой, чтобы заинтересовать вас и вам было не скучно ее решать, но в то же время сложность задачи не должна вгонять вас в ступор. Если эти условия выполняются, вы в зоне обучения.
Вот несколько примеров задач, которые вы можете попробовать:
- изучите другую IDE (если вы пользуйтесь Eclipse, попробуйте Visual Studio или IntelliJ);
- используйте разные ОС (если привыкли к Windows, попробуйте Linux, если привыкли к ОС основанным на Debian, попробуйте Fedora);
- используйте командную строку вместо пользовательского интерфейса;
- используйте vim вместо notepad/sublime;
- изучите язык программирования отличный от вашего (например JS, если вы пишите на Java);
- изучите язык программирования с другой парадигмой/философией (если вы привыкли к ООП языкам, попробуйте функциональные, например Clojure);
- если вы читаете только техническую литературу, почитайте что-нибудь из художественной.
Держитесь подальше от зоны паники
Сразу за пределами зоны обучения лежит зона паники. Как и в зоне комфорта вы не способны прогрессировать в ней. Задачи в зоне паники насктолько сложные, что вы не знаете как к ним подступиться. Вас охватывает беспокойство, вы не можете нормально думать. Или становитесь неуверенными и впадаете в ступор.
Например, если вы всю свою программерскую жизнь писали только на Java, используя ООП, и понятия не имеете как подойти к Haskell, попробуйте для начала .net. Или начните использовать лямбды и изучите элементы функционального программирования доступные в Java.
Оставайтесь в зоне обучения
Когда вы действуете в зоне обучения, текущие навыки будут всё более привычными и начнут перемещаться в зону комфорта. Как только это произошло, задачи, бывшие когда-то в зоне паники, перейдут в зону обучения и цикл повторится.
Желаю успехов в вашем обучении!
Мысли автора показались мне весьма близкими потому что в моей жизни сейчас происходят похожие перемены. Пробую писать на JS и Clojure после нескольких лет использования только Java. Надеюсь перевод статьи вам понравился, и вы воспользуетесь её рекомендациями на практике.