Я не программист
Дальше я пишу о себе всякие хвалебные вещи, читать не обязательно. Как написано в качестве эпиграфа здесь. detail.phpclub.net/
Я на самом деле не программист. Я, конечно, умею программировать, но... не люблю это делать. Я просто люблю решать проблемы (ну и создавать заодно). Я скорее разработчик или дизайнер (дизайнер — это не «оформитель», а, опять таки, «разработчик»). Я умею писать такие ТЗ, что самому читать приятно. Дело в том, что я умею программировать, поэтому мои ТЗ основаны не только на «а вот хочу того и того», а еще и на знании «почему хоть то-то и то-то правильно, а то-то и то-то — нет, и как это все в конце концов реализовать».
Лирическое отступление:
На прошлом месте работы начальник как-то сказал что-то вроде (за точность не ручаюсь, но по духу примерно так) «Вот ты написал два ТЗ, а кому оно нужно? Наш программист сам знает, что нужно». Потом, увидив Spesta, он сказал (дословно): «Блин, классная статистика. Гораздо лучше Киселевской — ты ему ее показывал?». (Диме Кисилеву привет!). При этом я, с присущей мне скромностью, не считаю, что оно лучше запрограммировано. Оно лучше придумано. Именно для этого и нужно ТЗ — не смотря на то, что программист знает, «что нужно», главное — это «как нужно», потому что конечному пользователю все равно общаться с уровнем «как нужно», а «что нужно» его не интересует.
То есть пользователю совершенно не важно, что «нужно собирать такую-то статистику». Ему важно, как потом работать с этой статистикой. Ну, это мы уже залезли, опять же, в интерфейс...
Я тут пару дней думал на тему «Идеальная CMS». Здесь, опять же, проходит грань между программистом и разработчиком. Я придумал пару архитектурных решений и свежих идей, которые «программист» не придумал бы — только потому, что программисту не доводилось так плотно общаться с контентом, как мне.
Основная проблема в том, что я знаю, как ее сделать, но делать не хочу: очень уж лениво так много программировать. Есть, конечно, хороший принцип «If you want something to be done — do it yourself», но...
Забавная история из жизни разработчиков ядра Linux. Человечек, который писал код для моргания светодиодами в случае kernel panic, оставил в коде коммент в духе /* а вот еще кому нечего делать, тот может реализовать моргание азбукой морзе */. Естественно, нашелся человечек, который это реализовал, другой человечек, который портанул под 2.5, куча человечков, которые это сурьезно обсуждают... а первоначальный автор теперь пытается объяснить, что это была ШУТКА и, ради бога, не надо это в ядро мержить.
В ходе дискусии звучали предложения сделать интерфейс, позволяющий писать драйверы для пищания азбукой Морзе на PC-спикере и саунд-бластере и декодировать эту азбуку Морзе на соседней машине с микрофоном.
— One of the nicest things about unix is the two letter commands. Обратите внимание – жертвуя собой, отечественные травоядные боролись не с хищниками. Они мешали хорошо жить травоядным чужой породы. Конечно, не совсем правильно выводить национальную психологию из несложной разработки нескольких программистов – хотя бы и победителей крупного международного соревнования. Наверное, описанные выше свойства отечественных творений – не общий принцип. Но, возможно, достаточно показательная иллюстрация.I actually hate programming,
but I love solving problems.
Rasmus LerdorfМорзе
One-letter aliases
— I read somewhere that having lots of two letter commands makes things too cryptic.
— Yeah, that’s why I have one-letter aliases.
Алгоритм стадности
«Россияне придумали следующий алгоритм стадности. Если одна корова видела бегущую корову своего вида – она начинала бежать в том же направлении. Любопытно, что никто, кроме россиян, не додумался до такой идеи. По словам организаторов игры, именно эта не рассуждающая массовость принесла россиянам победу. Второе изобретение российских программистов было поизощреннее. Если в поле зрения их коровы не было травоядных своего вида – а сплошь чужаки, российская корова с максимальной скоростью съедала всю доступную траву, ничего не оставляя „на развод“. И погибала от голода вместе с чужаками. Сложная смесь самопожертвования и ксенофобии.