Логическое мышление и опыт
Важность логики
Какую роль логическое мышление играет в информатике? Центральную. Работа компьютеров основана на логике, а значит, чтобы программировать их, давать им указания, нужно мыслить логически. В противном случае вы с большой вероятностью ошибетесь.
Логическое мышление — один из ключевых компонентов вычислительного мышления, которое проходит через все его аспекты, и не важно, какая стоит задача — создавать алгоритмы или оценивать их. Программистам необходимо мыслить логически, когда они разрабатывают новую программу, переделывают уже существующую под новые задачи, ищут дефекты программного кода или проводят иную оценку.
В информатике используются очень простые и точные языки математической логики. Как и наши головоломки, эти языки имеют набор правил, называемых аксиомами. Наши два исходных правила головоломки являются для нее аксиомами. Так же, как и мы, математики выводят из аксиом правила более высокого уровня, что позволяет продвигаться в рассуждениях большими шагами.
Такие логические элементы формируют основу языков программирования и определяют, что означает каждая их конструкция. Поэтому люди, создающие программы, тоже должны рассуждать логически. Поскольку в основе языков программирования лежит логика, мы можем использовать логическое мышление, чтобы рассуждать о возможностях наших программ. Таким образом даже можно убедиться в правильности их работы. Для этого действия программы описывают на языке логики. Затем с помощью логических рассуждений подтверждают, что программа дает именно задуманный эффект.
Мы также увидели, что программисты изобрели способы приравнять логические правила к собственно программам — это называется логическое программирование. Чтобы написать такую программу, надо разработать правила, на основании которых можно произвести определенные вычисления. Правила для нашей головоломки, записанные на языке логического программирования, могли бы стать программой для решения задач. И какой бы язык программирования вы ни использовали, логическое мышление придется применять обязательно.
Специалисты за работой
Чем больше у нас опыта в разгадывании головоломок, тем больше правил накапливается в уме и тем быстрее и легче мы решаем новые задачи. Именно так гроссмейстеры играют в шахматы. Они видят в текущих позициях ситуации, похожие на те, что им уже встречались, и делают ход, подсказанный опытом. Это позволяет не перебирать огромное количество ходов наперед, что у человека происходит медленно и порой с ошибками. Компьютеры играют именно так — перебирают массу вариантов и смотрят, какие будут последствия. Люди-шахматисты играют гениально, потому что используют как логическое мышление, так и сопоставление с образцом; кроме того, у них накопилась масса неформальных правил.
Так поступают не только профессиональные шахматисты. Есть предположение, что это свойственно практически всем специалистам независимо от навыка, которым они прекрасно овладели. Например, когда пожарные успевают выбраться из горящего здания прямо перед обвалом крыши, это происходит благодаря сопоставлению с образцом, только процесс идет подсознательно. Интуиция — подсознательное сопоставление с образцом на основе богатого прошлого опыта.
Если вы хотите стать специалистом в любой области, развивайте навыки сопоставления с образцом и обобщения. Есть универсальный принцип, который позволяет овладеть любым навыком до уровня гения и стать невероятно успешным, — нужно потратить 10 000 часов на тренировки. Столько времени тратят на занятия скрипачи-виртуозы. Подобным образом самые успешные программисты (те, кто стал миллиардерами) примерно столько учились писать программы. Даже тибетские монахи, известные безмятежностью и способностью сострадать, практиковали медитацию примерно столько же времени, чтобы достичь внутреннего покоя.
Если вы хотите в совершенстве овладеть программированием, начинайте практиковать вычислительное мышление прямо сейчас. И даже если вы не собираетесь стать программистом, развивая такие навыки, как логическое мышление, обобщение, абстрагирование и сопоставление с образцом, вы добьетесь больших успехов в любой профессии. Логические головоломки — занимательный способ тренировать эти навыки, особенно если будете обдумывать процесс и записывать правила.
Ответы
На рис. 30 и 31 показаны решения для двух последних головоломок «Улей».