Здравствуйте!
В продолжение предыдущего поста по теме изучения программирования и важности развития логического мышления, обсудим увлекательный метод повышения своих способностей – игру Human Resource Machine от компании Tomorrow Corporation. Данный пост не является рекламой, мне действительно нравится данная игра и я ее рекомендую всем, кто хочет развить свои навыки программирования.
Игра на удивление тривиальна – надо выполнять миссии, сложность которых растет от уровня к уровню, путем программирования действий своего подопечного. Вам не надо знать никакого «питона» или «си-плюс-плюс» - достаточно просто понимать логику действий и задать ее с помощью команд на уровне «возьми слева» и «кинь направо».
С ростом уровня вам станут доступны условия («делай это, если…»), циклы (повторение действий до выполнения какого-то условия) и т. п. Для перфекционистов есть возможность не просто пройти каждый уровень, но и сделать оптимально: либо использовав минимум команд, либо создав алгоритм, выполняющий задание за минимальное время.
Кстати, достаточно неочевидным для многих является то, что порой невозможно получить решение, которое будет оптимальным по обоим критериям одновременно. Пытаясь получить как одно, так и другое решение, вы учитесь не просто решать поставленные задачи, но и находить альтернативные решения. Это очень важно: в современном мире часто нужны решения, которые потребляют меньше компьютерной памяти, а где-то ресурсы практически безграничны, а важна лишь скорость.
Я с удовольствием проводил по часу в день, разминая мозги данной игрой. Не так трудно найти решение (в игре нет поистине трудных задач), как оптимизировать его. Порой ты написал решение в 9 строк, а оптимальным является 8 – ломаешь голову час, пытаясь понять, какая команда лишняя, ведь вроде бы все важны, сдаешься и ложишься спать… А потом подрываешься посреди ночи, и с криком «Эврика!» бежишь протестировать озарившую тебя идею пока она еще не забылась…
В следующем посте поговорим еще об одной игре, которую я настоятельно рекомендую всем своим друзьям, а также об одном бесплатном(!) курсе, который может оказаться полезным подспорьем на пути к олимпу бытового программирования. Подпишитесь, чтобы не потеряться!