По поводу творческого подхода
Женя З., который когда-то натаскивал команду по программированию, утверждал, что олимпиадные задачки по программированию сводятся почти полностью к то ли 5 то ли 6 разным приемам (деталей не помню - помню только что один из них, которй почти обязательно будет - динамическое программирование - техника красивая, но почти бесполезная в real life). И главное в подготовке:
1) научить распознавать тип задачки - на какой именно прием(ы) она
2) набить руку на кодировании этих приемов, так чтобы кодирование шло со скоростью набивки текста
Не уверен, что это сейчас так - но тогда у его подопечных получалось неплохо.
Так вот - imho большая часть даже довольно "творческого" кода состоит из кучи "стандартных кирпичиков", по определенным тоже довольно стандартным правилам как-то скомбинированных. Есть соблазн определить "твоческую" составляющую как результат "сжатия" кода (а точнее объем этого результата) с учетом уже готового словаря эти кирпичиков и правил их соединения - примерно как в алгоритмах сжатия с фиксированным словарем.
Тут правда есть одно "но" - объем этот зависит от конкретного словаря. Причем значительная его часть (на уровне правил комбинирования) не рефлексируется. Так что возможно творческой деятельности вообще не бывает - а бывают люди с очень нестандартным словарем (сформировавшимся в результате каких-то особенностей их обучения - процесс же довольно хаотический). И "творческий вклад" в реальности заключается в основном в вербализации и отчуждении некоторых, специифических только для них, компонент их "словаря".
1) научить распознавать тип задачки - на какой именно прием(ы) она
2) набить руку на кодировании этих приемов, так чтобы кодирование шло со скоростью набивки текста
Не уверен, что это сейчас так - но тогда у его подопечных получалось неплохо.
Так вот - imho большая часть даже довольно "творческого" кода состоит из кучи "стандартных кирпичиков", по определенным тоже довольно стандартным правилам как-то скомбинированных. Есть соблазн определить "твоческую" составляющую как результат "сжатия" кода (а точнее объем этого результата) с учетом уже готового словаря эти кирпичиков и правил их соединения - примерно как в алгоритмах сжатия с фиксированным словарем.
Тут правда есть одно "но" - объем этот зависит от конкретного словаря. Причем значительная его часть (на уровне правил комбинирования) не рефлексируется. Так что возможно творческой деятельности вообще не бывает - а бывают люди с очень нестандартным словарем (сформировавшимся в результате каких-то особенностей их обучения - процесс же довольно хаотический). И "творческий вклад" в реальности заключается в основном в вербализации и отчуждении некоторых, специифических только для них, компонент их "словаря".