Программирование — это творческое решение проблем

С каждым поколением мы становимся заметно умнее. В тандеме с обогащенной школьной средой и по мере того, как мы лучше учимся учиться, показатели IQ увеличиваются на несколько пунктов каждый год. Интересная корреляция с подъемом интеллекта — это спад креативности. Творческий интеллект, CQ, измеряемый с помощью Теста Торранса, снижается последние 30 лет. Основная причина этого падения неясна, хотя есть несколько разумных теорий:

  • Отсутствие структурированного времени простоя для детей, чтобы дать волю воображению
  • Системы образования, которые слишком негибки/стремятся определить «правильно» и «неправильно»
  • Захватывающее потребление экранных медиа

Навигация по сложности

Почему мы должны заботиться об этом? Внутренняя ценность творчества — это удовольствие, доступное всем нам, а в организационном контексте — конкурентное преимущество. Ники Кейс говорит об этом со ссылкой на важность случайности в культурной эволюции идей. Простое измерение производительности — довольно плохой индикатор результата. Делать больше с меньшими затратами не приводит к более высокому уровню инноваций. Подумайте, как мир 1950 года выглядел бы для человека из 1880 года — довольно дико. И каким сейчас мир выглядел бы для кого-то из 1950-х — не так радикально. На самом деле мы переживаем своего рода инновационный лаг.

Повышение креативности

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

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

Как можно улучшить дизайн, чтобы создавать лучшие решения?

  • Смотрите на проблемы не как на постановку проблемы, а скорее как на распознавание паттернов, в котором выявляются привычки, черты и другие повторяющиеся паттерны. Это отсылка к теории генеративности, которая предполагает, что творчество — это навык, которому можно научиться.
  • Сделайте шаг назад от проблемы, которую вы хотите решить, и подойдите к ней в состоянии ума, свободном от последствий. Речь идет о нелинейном мышлении и использовании дивергентного мышления для выработки множества идей.
  • Дети отлично справляются с подражанием практике, необходимой для творчества, отчасти потому, что они плохо осознают «неправильный» ответ. Размышляя о решениях, старайтесь не перекрывать пути, которые могут показаться «неправильными» — на этапе проектирования вы хотите начать с как можно большего количества вариантов, прежде чем сокращать их.

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