livelight: (Default)
livelight ([personal profile] livelight) wrote2009-10-23 12:30 pm

Программистское дао

Изгибовыгибистые алгоритмы обычно программируются примерно так:
1. Сесть подумать.
2. Начать писать код.
3. Обнаружить, что получается неприлично сложно, длинно и заковыристо (а потому - глюкаво).
4. Ещё раз сесть и подумать.
5. Загрузить задачу в подсознание и заняться чем-нибудь другим (можно даже жежешку почитать).
6. Неожиданно фкурить, каким образом это всё делается гораздо проще.
7. Всё переделать.

Собственно в момент (6) приходит понимание, как задача устроена на самом деле, и какие в ней есть внутренние связи, до сих пор не замеченные. Пока связи непонятны - видишь кучу деревьев, над каждым из которых надо думать отдельно (и в каждом из которых можно ошибиться); как только связи понятны - думать надо только над одним лесом, который гораздо проще.

Точно то же самое происходит, когда программируешь окружающую реальность и себя в ней. Если слишком сложно - значит, неправильно.
При определённом опыте можно выделить ощущение, которое сообщает, идёшь ли простым естественным путём, или что-то неоправданно сложно. И научиться отличать простые пути от упрощённых.


Upd: Старое на схожую тему

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org