Почему большинство разработчиков заканчивают средними: или как мы убиваем свою креативность
Когда-то я знал музыканта, ставшего разработчиком. Он утверждал, что занятия музыкой совершенно не похожи на то, что он делает в должности разработчика. Он говорил, что этот опыт невозможно перенести на его новую работу и что это два совершенно разных ремесла. Пожалуй, я бы мог назвать его консерватором.
Нам нужно быть более открытыми и стремиться выйти из тесных рамок разработки, чтобы внимательнее посмотреть на каждый аспект жизни и понять, чему в ней можно научиться. Только после того, как мы выявим и создадим эти взаимосвязи, можно стать истинным творцом и новатором, превосходящим все ожидания. К сожалению, для большинства разработчиков это не так.
Туннельное зрение
Легко поддаться иллюзии того, что разработка — это изолированная ниша, а всё, что можно узнать о разработке, находится в конкретных рамках технологии.
Почти как муравей в колонии, ты служишь одним из инструментов среди множества других разработчиков, осуществляющих видение, которое им не принадлежит. Мы приносим творчество в жертву, в обмен получая возможность ходить по бульвару разбитых надежд.
Ты достаточно хорошо понимаешь свои слабые стороны и продолжаешь стремиться к совершенствованию. У тебя есть амбиции. Поэтому естественно, что ты ищешь способы расширения своих знаний и компетенций. Интуитивно ты понимаешь, что основными источниками обучения и личностного роста будут постоянная практика в Leet Code, чтение книг по программированию, участие во всё более сложных проектах и изучение страниц документации в надежде, что выделишься на фоне остальных.
Ты делаешь это, чтобы сиять на фоне других. И да, это может сделать тебя очень успешным. Если ты будешь достаточно упорным, то скорее всего так и получится. Однако этот успех не позволит тебе подняться выше среднего, ты просто совершенствуешься в создании того, что уже существует. Зайди в любой офис Google и ты поймёшь, о чём я — каждый второй там близок к гению-разработчику.
Чего многие люди не понимают, так это того, что тебе не нужно быть феноменальным разработчиком, чтобы стать поистине великим, новаторским и революционным разработчиком, побеждающим середнячков.
Чтобы стать выше среднего, тебе в первую очередь нужно выбросить втулку от туалетной бумаги, через которую ты смотришь на мир, и расширить свой кругозор.
Другими словами, раскрыть глаза и увидеть то, чего не мог увидеть разработчик, о котором я говорил в начале статьи. Навыки музыканта, среди всего прочего, могут сделать тебя более совершенным программистом.
Создай своё собственное созвездие
Вспомним, что такое созвездие. Созвездие — это, по сути, образ, выстроенный из линий между звёздами на небе, создающий из этих крошечных точек более масштабную и целостную картину. В былые времена авантюристы и навигаторы использовали созвездия, чтобы понимать, куда они движутся.
Программирование — лишь одна из таких звёзд, висящая в пространстве без каких-либо связей. Без связей это просто отдельная красивая точка, не образующая никакой уникальной картины. Если это так, то новые созвездия начертить невозможно, и вы не сможете находить новые, передовые способы навигации в мире через моря развивающихся технологий.
Другими словами, если вы не создадите собственное созвездие разработки, то едва ли сможете увидеть новые способы исследования и реализации инноваций через разработку. К сожалению, на это неспособны многие разработчики.
Вам нужно намеренно создавать связи между «звёздами» в вашей жизни. Немногих способных на это избранных называют «творцами» или «визионерами». Когда они реализуют свою креативность в работе, то возникают такие фигуры, как Илон Маск, Стив Джобс и Марк Бениофф. Эти трое технологических талантов изменили мир к лучшему. Этих троих поистине можно назвать уникальными.
Стив Джобс не был разработчиком, но он понимал суть этой концепции. Обладая интересом к бизнесу в компьютерной сфере, он добавил свои знания дизайна, каллиграфии и ментальных практик, перевернув в своём сознании образ персонального компьютера. Это позволило превратить что-то очень сложное и скучное в нечто дружелюбное, привлекательное и полезное. Сам Джобс как-то сказал:
«Творчество — это просто процесс соединения разных концепций. Если вы спросите у творческих людей, как они что-то придумали, то они ощутят лёгкое чувство вины, ведь на самом деле они не делали этого, а просто увидели нечто. А потом это начало казаться им очевидным».
То же самое относится и к основателю Salesforce Марку Бениоффу, который воспользовался своими знаниями CRM, связал их с концепцией облачного ПО и применил психологическую тактику партизанского маркетинга, чтобы пробить себе дорогу на вершину в обход таких гигантов, как Oracle и Siebel. Кроме того, Марк использовал гавайскую концепцию Ohana («семья») и техники безоценочного осознавания, создав безумно позитивную и продуктивную рабочую среду.
Я не говорю, что вам нужно становиться энциклопедистом. Я призываю вас думать вне привычных рамок, чтобы чётче понимать, что можно позаимствовать из множества разных областей, чтобы создать новую область.
Точно так же, как изучение нескольких языков программирования может улучшить ваше понимание сложной логики и теории программирования, получение опыта и знаний в разных отраслях способно повысить ваши навыки разработчика в решении задач, планировании, руководстве, повысить вашу уверенность и креативность.
Разработка - это обо всем, что ее окружает
Разработка — это гораздо больше, чем знание того, как писать код. На самом деле она обо всём, что её окружает. Если вы сможете создать больше связей, то это позволит вам делать гораздо больший вклад в прогресс как личных, так и профессиональных проектов.
Вы будете чётче видеть решения. Лучше продумывать стратегию реализации. Визуализировать предназначение всех ваших действий и привносить понимание того, как создаваемое вами может лучше подстраиваться под реальность и улучшать её. Вы будете обладать мощью озарения. Благодаря таким озарениям вы сможете эффективнее использовать своё мышление в творчестве, а значит, и менять в лучшую сторону свой подход к реализации.
Связи можно устанавливать между любыми точками. Нужно просто делать это преднамеренно и свободно позволять этим идеям вмешиваться в ваши размышления.
Могут ли музыкальные навыки могут совершенствовать вас как программиста? Кто лучше опишет свои побочные умения, чем Рич Хики, создатель языка программирования Clojure, в то же время имеющий бакалаврскую степень композитора Музыкального колледжа Беркли:
Проектирование ПО и сочинение музыки имеют много общего. Оба занятия связаны с манипулированием абстракциями и их координированием, с выработкой концепций их реализации. В случае программ — это процессы во времени. Я со всей определённостью могу сказать, что проектирование ПО удовлетворяет моё стремление к творчеству, которое я искал в сочинении музыки, и полностью заменило мне его».
Иными словами, одна сфера может изменить ваш образ мышления, а значит, и изменить ваш подход к восприятию и решению задач.
Лично я прочитал сотни разных книг, в том числе и по философии, математике, астрофизике и психологии. Могу откровенно сказать, что благодаря расширению кругозора я стал гораздо лучшим разработчиком.
Поэтому вам стоит сделать шаг назад и позволить своему опыту повлиять на работу, чтобы перезарядить батареи утерянной креативности. Не позволяйте себе близоруко рассматривать программирование как изолированную область. Так вы уничтожаете свои шансы по-настоящему превзойти посредственность и выйти за пределы нормы.