👨‍💻 От сложного к простому: алгоритм гарантированного решения любой задачи Программист и математик Дэвид Макайвер в личном блоге рассказывает о собственной системе, которая помогает справляться с, казалось бы, неразрешимыми трудностями. Эта система — полезная концептуальная основа, помогающая лучше освоить то, что вам кажется трудным. Система работает «всегда» — в том смысле, что «в конце концов» вы либо поймете, почему цели достичь невозможно, либо добьетесь успеха. Но она не дает гарантии, что для этого не потребуется бесконечно долгое время. Более вероятный результат — вы либо сравнительно быстро преуспеете, либо вам надоест, и вы сдадитесь. Но это нормально — система задумана таким образом, чтобы вы получали пользу от следования ей на каждом этапе пути, даже если не достигли своей конечной цели. Стоит отметить, что эта система ни в коем случае не служит кратчайшим путем. Она предполагает много работы. Цель системы — не оградить вас от работы, а обеспечить ее полезность. 💡Система с одной петлей Когда вы хорошо представляете, что такое успешный результат, но в настоящее время не можете его достичь, система работает следующим образом: 1. Найдите что-то похожее на трудную задачу, но легкое. 2. Измените легкую задачу так, чтобы она в чем-то одном была такой же трудной, как исходная трудная задача. 3. Выполняйте видоизмененную задачу, пока она не перестанет быть сложной. 4. Если зашли в тупик, выполните одно из следующих действий: → а) Вернитесь к шагу 3 и выберите какой-то другой аспект, в чем эта проблема трудна. → б) Примените общую систему для конкретного трудного аспекта, на котором вы застряли. → в) Спросите совета у эксперта или у кого-нибудь еще. → г) Если после этих трех вариантов вы все еще в тупике, возможно, вы достигли какого-то естественного предела сложности и не сможете добиться прогресса. 5. Если теперь исходная трудная задача стала легкой, все готово. Если нет, вернитесь к шагу 2. Эта система работает намного лучше, чем просто выполнение сложных задач, потому что она дает вам гораздо более прямой цикл обратной связи. В любой момент, когда вы пытаетесь стать лучше в каком-то деле, существует ровно один аспект проблемы, и вы можете сосредоточиться на этом аспекте, исключив все остальное. Когда вы пытаетесь делать что-то сложное сразу в нескольких аспектах, каждый из них будет вам не даваться. Более того, у вас будет получаться хуже, чем если бы вы брались за каждый из этих аспектов по отдельности. Кроме того, потерпев неудачу, вам придется выполнить сложный анализ первопричин, чтобы выяснить, почему. 💡💡 Система с двойной петлей Если вы не очень хорошо представляете себе искомый результат, нужно пройти двойное обучение, чтобы улучшить понимание проблемы и применить решение. 1. Примените систему одной петли, чтобы лучше понять спектр проблем (изучите побольше примеров и научитесь отличать хорошее от плохого) и выработать некое чувство хорошего вкуса. 2. Примените систему одной петли к проблеме в соответствии со своим чувством хорошего вкуса. 3. Получите отзыв о результате от других. Считают ли они, что вы хорошо справились? Если да, отлично, вы поняли, как правильно действовать! Если нет, нужно улучшить либо свое чувство вкуса, либо вкус других людей. Если вы выбрали первое, вернитесь к шагу 1 с новым примером. Во втором случае примените систему одной петли, чтобы решить другую проблему: как убедить других в том, что вы справились хорошо. Это все ужасное упрощение? Ну да, конечно, так и есть. Тем не менее, это очень полезное упрощение, которое выводит вас из тупика, когда проблемы кажутся неразрешимыми. ✏ Как определить самые сложные точки Иногда то, что нужно улучшить, очевидно, иногда — нет. Если это не очевидно, вот что поможет вам понять: ▪Старайтесь выполнить задачу как можно лучше. Не переживайте о неудаче, неудача ожидаема, но постарайтесь обратить внимание на то, как это происходит. Запишите список того, что, по вашему мнению, вы сделали плохо, и того, что вы делали достойно, но с трудом. Также, если в какой-то момент вы зашли в тупик, обратите внимание, на чем вы застряли. ▪Найдите упражнения для начинающих в той области, над которой вы хотите работать, и попробуйте их. Обратите внимание, какие из них даются с трудом. ▪Поговорите со специалистом по этому вопросу (в идеале — с тем, кто умеет учить людей) и попросите его помочь определить места, над которыми вам нужно поработать. ▪Вместо того, чтобы начинать с легкой задачи, работайте в другом направлении. Попробуйте взять трудную задачу и убирать по одному сложному моменту, пока не дойдете до точки, когда задача станет легче. 📝 Рабочий пример: учимся лучше писать Эта система особенно хорошо подходит в качестве механизма для улучшения навыков письма. Писать трудно во многих отношениях. Вот некоторые из них (примерно в том порядке, в котором, как я думаю, стоит заняться ими): ▪Сам физический процесс написания. ▪Поиск своего голоса и стиля. ▪Перфекционизм и/или боязнь показать свою работу окружающим и/или неуверенность в том, о чем писать — все это не дает вам начать. ▪Редактирование и структура. А дальше можно задуматься о более конкретных деталях, которые вам не даются — например, диалоги, описания и т.д. Но если вы читаете это, вы определенно можете писать. Даю слово. Возможно, вы не сможете написать роман (я не могу в данный момент), но вы, безусловно, можете написать твит, и нужна всего лишь серия дополнительных шагов, чтобы дойти до цели. ✏ Вот несколько примеров: ▪Научитесь печатать вслепую, если пока не умеете. Не умея печатать вслепую, вы застопоритесь на базовой механике письма. Это делает сложнее петлю обратной связи. ▪Научитесь писать определенным (своим собственным) голосом. Если вы не можете понять, как писать о теме, попробуйте рассказать об этом на телефон, используя программу записи. Начав писать, прочитайте вслух, что получается. ▪Тренируйтесь писать без каких-либо ожиданий качества, например, пишите в личном документе или в документе Google или создайте блог, объяснив, что он предназначен для писательских экспериментов. Вот несколько хороших вариантов экспериментов: — Наблюдения. Выберите объект (горящая свеча, например) и запишите все, что вы увидели. — Выберите предмет, с которым вы достаточно знакомы, и установите количество слов, которые нужно написать. Пишите все, что хотите, пока не достигнете этой цели. Не стесняйтесь записывать поток сознания. — Выберите мнение и опишите его в 500 словах. ▪Вместо того, чтобы беспокоиться о редактировании в целом, начните думать о редактировании с конкретными целями. — Это связано с выбором правильного голоса и стиля. Прочитайте текст вслух, выясните, где нужны паузы, и вставьте абзацы, где они напрашиваются. Исправьте фразы, звучащие коряво. — Попробуйте редактировать исключительно на основе количества слов. Можете ли вы выразить то же самое с помощью меньшего количества? Что бы вы сделали, если вам пришлось сократить длину отрывка вдвое? — Попробуйте редактировать, удаляя определенные слова. Можете ли вы написать все это, используя только тысячу самых ходовых слов? (Примечание: результат будет ужасен, но цель здесь — попрактиковаться в редактировании, а не в создании хорошего произведения.) Есть много всего другого, что стоит попробовать, но это хорошая отправная точка. #article@physics_math #наука@physics_math #образование@physics_math #программирование@physics_math

Теги других блогов: программист алгоритм математик