Miscellanea V

На самом деле в большинстве массовых алгоритмах нет ничего сложного (сложна ли древняя задачка о поимке льва в пустыне? нет. а это бинарный поиск). Они как колесо или как молоток, следуют из самой области решения проблем. Фигня для начинающих в познании всякой формализации вроде O-большого (ну и вообще всём, чем так богаты Кормен и Кнут) и логарифмов. А также в том, что зачастую нарушена последовательность преподавания. Сначала надо давать структуры / типы данных (в идеале на примере окружающего мира), а уже потом алгоритмы. Так выстраивается более стройная система в голове. Без внятного объяснения базовых структур знание алгоритмов подвисает в воздухе.

Повторюсь. Если код писался профессионалом (всё написано правильно в нужных местах нужными словами), вопрос “читабельности”, “поддерживаемости” и прочего уходит мячиком в уровень квалификации читателя и поддерживателя. Кажется очевидным, что для уровня знаний дворника Васи любой код будет сложным, ведь так? Если продолжать насыщать Васю знаниями, такого кода будет всё меньше. И то, что раньше казалось непонятным, станет понятным. Безусловно, если код написан левой пяткой в тамбуре электрички, несущейся в ад, Вася хоть боженькой греческим растопырится, толку не будет.

И снова повторюсь. N лет назад информационный фон о программировании состоял из кода. Достаточно вспомнить всякие “Компьютеры + программы” и “Dr. Dobb’s”. Даже “Наука и жизнь” печатала статьи про алгоритмы и о том, как их реализовывать. Сейчас… ну хоть и подписан на кучу всякого, хоть и легально год листал ACM’овый ледокол, но постоянно ловлю себя на мысли, что листаю каталоги софта. Вот как каталоги лифчиков и корма для утят, так вот и софт. Словно есть фабрики по производству, а программист свёлся к водятлу, роль которого зазубрить правила и следовать им. И с каждым годом всё меньше людей, которые могут меня понять.

Болтал с олдовым разработчиком на тему того, почему в России нет флагманских продуктов на мировом рынке софта. Вспомнили очевидное. Для сотворения флагмана нужен лидер. Лучше два. Но хватит и технического — того, чья конструкторская и специальная квалификация позволяет делать что-то большое и важное. Все эти именные КБ вроде Туполева, Ильюшина и т.п. с главными и генеральными конструкторами. А для появления таких лидеров нужна среда (экономическая, культурная, образовательная, карьерная). Как в спорте для выращивания спортсменов олимпийского уровня система начинается с детских секций и продолжается до регуляторов вроде МОК, так и с инженерами / изобретателями. При всех иных негативных явлениях в СССР неплохо понимали нужду в такой среде и как-то, но обеспечивали. А всё. Прошляпили несколько поколений, считай, прошляпили десятилетия. Есть мысль, что уже и не нагнать.

Давно пора усвоить, что программист — не самурай. Не воин-поэт, которого усиленно развивали в разные стороны. Современный 25..30-летний программист по общему развитию (эрудиция, культура, воспитание, ширина и глубина разума в отсеках, отвечающих не за программирование) ничем не отличается от таксиста, например. Те же тройбаны за безграмотный текст, то же смешение Гоголя с Гегелем, та же невозможность обсудить Диогена или Набокова, то же незнание названия дерева, что растёт под окном. Вот я по сию пору усвоить не могу, да всё поджигаю асбестовую прокладку между задом и креслом.

Добавить комментарий