Программистское дао
Oct. 23rd, 2009 12:30 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Изгибовыгибистые алгоритмы обычно программируются примерно так:
1. Сесть подумать.
2. Начать писать код.
3. Обнаружить, что получается неприлично сложно, длинно и заковыристо (а потому - глюкаво).
4. Ещё раз сесть и подумать.
5. Загрузить задачу в подсознание и заняться чем-нибудь другим (можно даже жежешку почитать).
6. Неожиданно фкурить, каким образом это всё делается гораздо проще.
7. Всё переделать.
Собственно в момент (6) приходит понимание, как задача устроена на самом деле, и какие в ней есть внутренние связи, до сих пор не замеченные. Пока связи непонятны - видишь кучу деревьев, над каждым из которых надо думать отдельно (и в каждом из которых можно ошибиться); как только связи понятны - думать надо только над одним лесом, который гораздо проще.
Точно то же самое происходит, когда программируешь окружающую реальность и себя в ней. Если слишком сложно - значит, неправильно.
При определённом опыте можно выделить ощущение, которое сообщает, идёшь ли простым естественным путём, или что-то неоправданно сложно. И научиться отличать простые пути от упрощённых.
Upd: Старое на схожую тему
1. Сесть подумать.
2. Начать писать код.
3. Обнаружить, что получается неприлично сложно, длинно и заковыристо (а потому - глюкаво).
4. Ещё раз сесть и подумать.
5. Загрузить задачу в подсознание и заняться чем-нибудь другим (можно даже жежешку почитать).
6. Неожиданно фкурить, каким образом это всё делается гораздо проще.
7. Всё переделать.
Собственно в момент (6) приходит понимание, как задача устроена на самом деле, и какие в ней есть внутренние связи, до сих пор не замеченные. Пока связи непонятны - видишь кучу деревьев, над каждым из которых надо думать отдельно (и в каждом из которых можно ошибиться); как только связи понятны - думать надо только над одним лесом, который гораздо проще.
Точно то же самое происходит, когда программируешь окружающую реальность и себя в ней. Если слишком сложно - значит, неправильно.
При определённом опыте можно выделить ощущение, которое сообщает, идёшь ли простым естественным путём, или что-то неоправданно сложно. И научиться отличать простые пути от упрощённых.
Upd: Старое на схожую тему