К основному содержимому
#SelfDevelopment

The Creative Programmer (Креативный программист) (Рубрика SelfDevelopment)

#SelfDevelopment #Thinking #Engineering #Software #Brain

Недавно я прочитал эту книгу Ваутера Гренефелда про креативнрость в программировании. Суть в том, что Ваутер рассматривает разработку как творческую деятельность, сравнимую с созданием музыки, а не просто технический процесс. Мало того, автор утверждает, что креативность можно развивать и даже дает практические советы о том, как это делать. Книга в оригинале вышла в издательстве Manning, а на русский переведена издательством "Питер". Читал я на русском и особых проблем не заметил.

Если возращаться к самой книге, то автор выделяет следующие столпы креативности

  • Technical knowledge (технические знания): без hard skills в инженерии никуда - сложно быть креативным без знания технической базы. Я уже как-то рассказывал про путь в сторону staff engineer и как прокачивать харды для становления крутым IC (individual contributor)
  • Collaboration (сотрудничество): это то, что обычно называют soft skills, а точнее тут про эффективное общение в команде и обмен идеями. Недавно у меня был доклад как раз на эту тему
  • Constraints (ограничения): часто именно наличие ограничений стимулирует инновации для их преодолениея
  • Critical thinking (критическое мышление): сомнение в предположениях и улучшение решений. У меня есть целая подборка ресурсов про критическое мышление
  • Curiosity (любознательность): стремление к постоянному обучению и разнообразным интересам
  • Creative state of mind (творческое состояние ума): развитие концентрации и внутренней мотивации
  • Creative techniques (творческие техники): методы, такие как использование метафор и мозговой штурм

Если обобщать основные мысли, то

  • Креативность возникает из соединения идей из разных дисциплин, что автор иллюстрирует историческими примерами
  • Автор поощряет "хорошее воровство" идей (адаптация концепций) в противовес простому подражанию
  • Ваутер говорит про баланс между внутренней мотивацией (например, любопытством) и внешними факторами (например, сроками) - это по его мнению повышает продуктивность

В последней главе есть много креативных практик из инструментария писателя, художника и инженра. Поэтому желающий повысить свою креативность может взять эти инструменты и начать их практиковать. А для отслеживания прогресса можно взять Creative Programming Problem Solving Test, позволяющий отслеживать и измерять прогресс в развитии креативности.

P.S. Вопросы креативности в software engineering очень важны, например, ребята из Google исследовали их и недавно написали интересный whitepaper "Developer Productivity for Humans, Part 8: Creativity in Software Engineering", который я уже разбирал раньше.

#Thinking #Engineering #SelfDevelopment #Software #Brain