удобно в использовании людьми, не знакомыми с программированием. Вот нам часто приходится творить похлеще, чем какому-нибудь живописцу. И в самом деле, каков инструментарий художника? Всего лишь холст, кисти, краски и собственное воображение.
Инструмент известен в течение нескольких тысяч лет и за все это время не изменился. Рисовальщик оканчивает в юности какую-нибудь Строгановку и потом в меру дарования, отпущенного ему Господом, всю жизнь малюет холсты, добиваясь, чтобы его художественные способности соответствовали заявкам его воображения. Изучать ему ничего при этом не надо. Только лови моменты «божественного откровения» и воплощай в картинах. Житуха! А настоящий разработчик программного обеспечения живет постоянно в аморфном мире, где ежедневно меняется очень многое, да и он сам не стоит в стороне от прогресса. При этом часто приходится не только рисовать самому «морду» очередной программульки, но и подбирать инструменты (средства разработки, язык, библиотеки…) для создания, а также решать, которые из них следует доизготовить. Так кто больший творец? Универсальный программист или какой-нибудь там художник?
И вот творец столкнулся с очередным серьезным затыком, и нет никаких идей по преодолению препятствия. Что делать? Нередкая ситуация. И тут можно поступить по-разному.
Кто-то «подстроит» исходные условия и поищет обходной путь. Ведь обычно нет требования сделать именно то, что указано. Как правило, нужно создать некий софт, решающий определенные проблемы заказчика. И заказчику важно, решает ли этот софт его задачу, а действует ли он самым оптимальным способом – дело десятое. Так что поле потенциальных решений очень широкое.
Другой принимается интенсивно копать теорию, ища в нужных книгах некое откровение, которое поможет идти дальше. И порой находит.
Третий начинает детально проверять уже проверенные идеи, ища какой-либо пропущенный полезный тоненький нюансик. И кстати, довольно часто ему везет.
А по-моему, нет лучшего способа найти решение сложной проблемы, чем немедленно сделать перерыв и постараться переключиться на другие, более легкие дела, по возможности лежащие в окрестностях решаемой задачи. Зачем? Фишка в том, что человеческий мозг – это вовсе не стандартная машина фон Неймана, которая дедуктивным методом последовательно вычисляет те или иные логические утверждения и на основе результатов делает выводы. И это не машина потока данных, прокачивающая спеллы через иерархическую сеть по мере их разрешения. И даже не нейронная сеть, хотя нейроны в мозгу, разумеется, есть (биологические нейроны и узлы математической нейронной сети – это совершенно разные штуковины, хотя и с похожим названием). Все и проще, и сложнее. Сложнее потому, что мозг умеет работать и в режиме машины потока данных, и в режиме нейронной сети (а уж о машине фон Неймана и говорить нечего), причем этих «машин» одновременно может работать довольно много. А проще потому, что на самом деле в этом биологическом