Стоит ли мне её осваивать.
Лучше тебя самого на этот вопрос никто ответить не сможет.
Хочешь стать настоящим профессионалом в области программирования - придется освоить наряду с массой других математических дисциплин. Если же тебя устраивают вторые роли, намерен быть "на подхвате" у лидера проекта, кодируя для него малоинтересные фрагменты по готовой спецификации, то вполне можно обойтись и без этих премудростей. Или, к примеру, намереваешься всерьез заняться какой-либо другой отраслью знаний, скажем, ядерной физикой или там финансами, а программирование рассматриваешь как вспомогательный инструмент для решения своих задач. В этом случае такое углубление в теорию также может оказаться избыточным.
В общем, выбирай инструмент под стать решаемым задачам. Например, чтобы посадить куст роз в саду, в самый раз взять из сарая лопату, экскаватор тут будет не очень удобен. А если взялся копать той же лопатой яму под фундамент особняка, рискуешь провалить все сроки и при этом еще и надорваться.
Может быть это позволит упростить со временем написание программ: меньше надо будет заниматься поиском ошибок. Ведь больше времени уходит не на написание программ, а на её отладку.
А так написал сразу хорошо и дальше не мучаешся. Или хотя бы меньше отлаживать?
И не надейся. Царских путей в программировании, равно как и в геометрии, нет и вряд ли когда-либо будут.
Нет никакого алгоритма построения алгоритмов. Если бы он был, его давно бы уже реализовали, и все программисты пошли бы занимать очередь: оптимисты - на биржу труда, пессимисты - за благотворительной похлебкой.
Дейкстра отнюдь не дает рецепта написания безошибочных программ. На самом деле есть лишь формальный способ
доказать корректность либо ошибочность
готовой программы. То есть разработать программу тебе все равно придется, от этого никуда не денешься. А потом тебе еще придется суметь доказать ее правильность, подобно тому, как доказываются теоремы. Процесс этот нелегок и требует не меньше усилий, чем разработка программы, поэтому мало кто применяет подобные доказательства. Обычно их избегают либо из соображений экономии времени/средств, отпущенных на проект, либо просто по неумению.
Лично я, как уже говорил, использовал этот инструмент лишь в тех нечастых случаях, когда цена ошибки в программе чрезвычайно высока и многократно превосходит по величине весь бюджет разработки программы. Для большинства программ, с которыми мне доводится иметь дело, доказательство их правильности - чрезмерная роскошь.
Хотелось бы знать есть ли продолжение этих его мыслей?
Или может быть другие подобные направления?
Много лет назад мне попадались очень толковые статьи Вирта на эту тему. Хотел сделать их перевод и опубликовать на нашем сайте, но пока попадались лишь ссылки на коммерческие издания вроде Communications of the ACM, которые хотят денег за скачивание. Если попадутся в открытом доступе, с удовольствием поработал бы над ними. Но пока что кроме Дейкстры, увы, бесплатного ничего не нашел.