"Ричи О'Бауэр. Программирование как высшая форма творчества" - читать интересную книгу автора

ченного в университете. Математический анализ и прочая абстрактная мате-
матика не дают мне способов написания элегантного и компактного кода
программ. Возможно, для людей, поставленных перед необходимостью прог-
раммирования узкоспециальных задач в области математики, эти знания мог-
ли бы пригодиться, но мы всё-таки работаем не над отображением трехмер-
ных графических сцен, а занимаемся задачами другого уровня... Могу чест-
но признаться, что занимаюсь программированием не с точки зрения практи-
кующего математика. Hапротив, я выполняю работу лингвиста - переводчика
с повседневного языка на компьютерный, объясняя компьютеру, что и как
нужно выполнить, чтобы прийти к желаемому результату".
Что ж, в сочетании с тем, что Пол считается отличным программис-
том и лидером многих проектов, его слова нельзя попросту отбрасывать.
Они требуют тщательного и вдумчивого анализа.
Пол вполне мог бы стать переводчиком, литератором или психоло-
гом, хотя и учился на программиста. Распространенное, но неверное мнение
университетских преподавателей звучит так: "Вы должны знать теорию, а
практическая реализация тех или иных вещей настолько проста, что мы не
будем ее рассматривать". И хотя я знаю многих людей, которые не встреча-
ли никаких затруднений с теорией, все они с трудом проходили практичес-
кую реализацию задачи. Сейчас я могу с уверенностью сказать: их мозги,
способные с легкостью решать сложнейшие дифференциальные уравнения, поп-
росту пасовали, когда возникала необходимость переложить свои запредель-
ные выкладки в удобный и, главное, эффективный текст конечной программы.
В конце концов, математиков, философов и лингвистов учат на разных фа-
культетах, не так ли?
Hо обычный программист - не столько математик, сколько лингвист
и философ в одном лице, активно применяющий положения формальной логики.
Вы никогда не встречали программистов, которые не могут подробно и ясно
объяснить алгоритм решения той или иной задачи? Уверяю вас: с их прог-
раммными продуктами лучше не сталкиваться. Эти люди не обладают точнос-
тью мышления и, как следствие, оказываются просто не в состоянии порож-
дать хоть сколь-нибудь совершенный программный код.

Вернемся к первоначальной теме, оставив на некоторое время рас-
суждения о наших личных склонностях и предпочтениях. Итак, что еще мы
можем посчитать объективными причинами для выбора этого пути в жизни?
Разумеется, это финансовая сторона дела.
За работу в анализируемой области в наше время хорошо платят.
Hаправлений для активной профессиональной деятельности становится всё
больше и больше, а объемы информации, сопутствующие им, вынуждают прог-
раммистов обретать довольно жесткую специализацию: базы данных, сетевые
технологии (и коммуникации в целом), графика, прикладное программирова-
ние под разные платформы... Список можно продолжать до бесконечности, но
вы и сами понимаете, насколько MFC и Qt разнятся меж собой. Когда прог-
раммист решает какую-либо задачу, ему волей-неволей придется держать в
голове все нюансы той системы, в которой он работает, и все особенности
той платформы, под которую он пишет - в противном случае сопровождение
этой программы станет малореальным еще до окончания работ над первой,
отладочной версией.
В больших компаниях, разрабатывающих серьезные проекты, дело,