Многим кажется, что программирование — это скучная и монотонная деятельность. Сутками сидишь за монитором, молча пьешь кофе для бодрости и кодишь, кодишь, кодишь. Мы пообщались с опытными разработчиками. Все они сходятся во мнении: программирование не творческая профессия, но в ней есть и даже должно быть место креативности.
- Креативность — это как
- Есть ли место креативности в программировании
- Должен ли каждый программист быть креативным
- Как программисту прокачать креативность
- Советуем посмотреть по теме:
Креативность — это как
Креативность часто сравнивают с творчеством, но это не одно и то же. Посмотрим на две ситуации, чтобы понять разницу.
Ситуация 1. Вы приехали на отдых в лес и хотите развести костер. У вас с собой спички, но вы решаете добыть огонь трением палочки о бревно. Вам любопытно сделать именно так. После нескольких попыток у вас даже получается.
В этом случае вы творчески решили обычную задачу, но потратили неоправданно много времени и усилий. Если на отдыхе это может быть уместно, то на работе вас вряд ли похвалят за такой подход.
Ситуация 2. Вы приехали все в тот же лес, но на этот раз забыли спички дома. Костер нужно развести обязательно, иначе замерзнете. Магазинов в округе нет, домой ехать далеко и долго. Вам на помощь снова приходят палочка, бревно и сила трения.
В этом случае нестандартное решение задачи не только уместно, но и необходимо: вы буквально спасли себе жизнь и сэкономили время, не поехав на поиски спичек. Вы поступили креативно.
Кирилл Мокевнин, СЕО Хекслета: «Я не очень люблю слово креативность. В понимании большинства, решить задачу креативно — значит каким-то хитрым способом, как-то витиевато и необычно. Но это противоречит инженерии. Я предпочитаю называть эту компетенцию “инженерная смекалка” — когда разработчик придумывает простое решение для сложной задачи, а не усложняет процесс».
Марина Арефьева, разработчица и основательница консалтинговой компании Creative Mind Consulting: «Реальный кейс: программистам ресторана быстрого питания нужно было выполнить задачу клиента и обновить программу лояльности. Они создали свой язык программирования и добавили новые возможности в него. Это потащило за собой ряд сложностей. Например, пришлось поддерживать не только сайт, но и обновления безопасности этого языка».
Креативность — это не изобретение велосипеда. Это созидательная деятельность, в результате которой рождается наилучшее в заданных условиях решение — максимально эффективное и минимально ресурсоемкое.
Есть ли место креативности в программировании
Креативность можно применить в любой профессии, ведь она позволяет решить повседневную задачу неординарно, создав что-то новое и полезное. Профессия программиста — не исключение.
Марина Арефьева, разработчица и основательница консалтинговой компании Creative Mind Consulting: «У меня была рабочая обязанность — каждый понедельник читать 25 email-рассылок про уязвимости Internet Explorer и выбирать информацию, касающуюся уязвимостей Linux. Эта деятельность удручала, отнимала много времени и душевных сил. Я решила покреативить и создала скрипт на Python, который позволил автоматизировать задачу. Так я вернула себе рабочее время и посвятила его программированию».
Креатив кроется в мелочах. Не обязательно создавать что-то глобальное. Главное, чтобы результат деятельности приносил пользу: помогал экономить, оптимизировать процессы, повышать эффективность команды.
Андрей Мошков, руководитель отдела разработки на Хекслете: «В страницы с уроками на Хекслете входит теория, обсуждение, квиз и упражнение. Раньше у этих блоков был общий скролл — когда студент переключался между ними, положение на странице ломалось. Человек попадал то в конец теории, то в начало обсуждения, то еще куда-то. Учиться было неудобно. Решение оказалось максимально простым и исключительно в рамках верстки: мы разделили блоки и добавили в каждый свой скролл, а сайдбар с кнопками закрепили отдельно. Теперь при переключении между блоками позиция сохраняется, как есть».
Креативность — отход от правил. В работе программиста используются паттерны и схожие подходы, которые помогают найти путь для решения задачи. Будет ли разработчик с этого пути сходить — зависит от бюджета, ресурсов и других условий.
Должен ли каждый программист быть креативным
Инженерная смекалка — желательная, но необязательная компетенция. Все зависит от амбиций разработчика. Если хочется продвигаться по карьере и попасть в интересную команду, то без креативности не обойтись. Если же вполне устраивает выполнение рутинных задач по шаблону, то всегда можно найти компанию, в которой требуется как раз такой линейный сотрудник. Правда, это может быть не так просто.
Во-первых, работодатели ценят креативность: при выборе из двух кандидатов наймут того, у кого есть этот навык, а при сокращении в первую очередь попрощаются с тем, кто не умеет мыслить нестандартно.
Кирилл Мокевнин, СЕО Хекслета: «Считаю, что инженерная смекалка полезна на самом базовом уровне и при выполнении примитивных задач. Работаешь с Excel, увидел, что пять человек в команде делает задачу руками, написал маленький скрипт — и теперь все происходит автоматически за секунду».
Во-вторых, представить себе две абсолютно одинаковые задачи в разработке трудно.
Никита Михайлов, автор курсов по верстке на Хекслете: «Предположим, нужно сделать карточку товара для двух магазинов. У одного из них сайт справляется с большим количеством посетителей, а у другого — нет. Действовать по шаблону не получится, нужна “креативность”: отключаем загрузку того, что пользователь не видит, удаляем то, что уже пролистал, и так далее».
Наконец, любая компания заинтересована в развитии, а оно невозможно без креативных сотрудников. Буквальное понимание задач и работа исключительно по техническому заданию могут привести к печальным последствиям.
Так должен ли каждый программист быть креативным? Нет. Но креативное мышление точно не помешает, особенно если есть желание активно продвигаться по карьере. Эффективный ИТ-архитектор, менеджер и тим-лид всегда старается минимизировать затраты на разработку за счет нешаблонных решений, мыслит глобально и ориентируется на финальный результат.
Как программисту прокачать креативность
Лучше всего с нестандартными задачами справляются специалисты с широким кругозором и большим практическим опытом. А еще неплохо выручают базовые знания по ИТ-архитектуре и обмен опытом с коллегами. Разберемся подробнее.
Любопытство — это двигатель развития. Чем больше у человека знаний из разных областей, тем проще ему взглянуть на проблему под другим углом или вообще перевернуть ее с ног на голову.
Андрей Мошков, руководитель отдела разработки на Хекслете: «Стоит расширять свой кругозор, начиная от изучения других языков программирования и технологий, заканчивая знаниями из других сфер. Это называется быть T-shaped специалистом: уметь при случае применять “чужое” у себя на проекте».
В решении сложных задач помогает архитектурная база. Когда она есть, все дается проще. Это как с домами. Ремесленник успешно строит из кирпича, но при виде бетонных блоков теряется. Архитектор же понимает, как строятся здания в принципе — материал не имеет значения.
Марина Арефьева, разработчица и основательница консалтинговой компании Creative Mind Consulting: «Получить базовые знания можно на курсах по ИТ-архитектуре. На них программисты учатся действовать системно, глубоко анализировать данные, автоматизировать некоторые этапы разработки и мыслить финальным результатом. Бонусом получают навык адаптивности, который позволяет работать практически с любым языком».
Конечно, многое приходит с опытом. Профессиональные вызовы мотивируют на поиск новых подходов и развивают мышление.
Никита Михайлов, автор курсов по верстке на Хекслете: «Я за решение задач. Желательно нестандартных и с применением новых подходов. Не столь важно выучить сто алгоритмов, важно увидеть новые направления для решения одних и тех же проблем. Чем больше вариаций будете видеть, тем меньше будут пугать трудности».
Также можно учиться на опыте коллег с креативным мышлением: наблюдать за лидерами в команде и просить консультацию 1:1, посещать хакатоны или специальные конференции для разработчиков, например, SaintHighLoad++ или FrontendConf.
Кирилл Мокевнин, СЕО Хекслета: «Насмотренность — лучший способ прокачать креативность. Как правило, это приходит само в компаниях с хорошей инженерной культурой, где работают не в огне и постоянно улучшают то, с чем работают».
Креативность и креативное мышление — это то, что отличает программистов высшего звена от «младших» коллег. Всем, кто хочет расти в профессии и претендовать на более высокую зарплату, это умение необходимо. Прокачать креативность поможет постоянное решение нестандартных задач и насмотренность.
Советуем посмотреть по теме:
- Интервью с Мариной Арефьевой: о методологиях и креативном мышлении программистов
- Подкаст «Мысли и методы»: Ритуалы, упрощение и расширение сознания
- Сайт с разными задачками для ума: Games for the brain
- Подборка из девяти книг для развития креативности и творческого мышления
- Публичные выступления, грамотные коммиты и еще два навыка для долгосрочного роста программиста. Статья в блоге
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях