Ник. Стихийник - стр. 8
Засыпав яму и прибравшись на полигоне, расстроенный, я пошел отмокать в озерце. Погода была чудесная, вода приятная, на небе ни облачка. Я расслабился, успокоился и постарался более осмысленно взглянуть на результат. «А что, собственно, произошло? – пришла мысль. – Ну не получилось пока, что поделаешь. И идей, к сожалению, никаких нет».
Программирование – профессия творческая. Почти для любой проблемы находится не менее дюжины способов решения. А иногда можно и нужно скорректировать исходную постановку задачи. Конечно, существует технология разработки и так называемые кодеры, которые пишут код, не отклоняясь от задания ни на миллиметр. Но мы не о них, бедных маленьких винтиках технического прогресса. Я имею в виду других работников клавиатуры, мышки и сканеров мысленных импульсов. Тех, кто, поняв реальные потребности заказчика, сам себе может поставить задачу, выбрать методу ее реализации, разработать интерфейсы и необходимые алгоритмы, построить архитектуру классов, типов, объектов, протоколов сообщений между модулями и реализовать все это добро в коде. Добиться не только того, чтобы оно заработало достаточно эффективно, но и было удобно в использовании людьми, не знакомыми с программированием. Вот нам часто приходится творить похлеще, чем какому-нибудь живописцу. И в самом деле, каков инструментарий художника? Всего лишь холст, кисти, краски и собственное воображение.
Инструмент известен в течение нескольких тысяч лет и за все это время не изменился. Рисовальщик оканчивает в юности какую-нибудь Строгановку и потом в меру дарования, отпущенного ему Господом, всю жизнь малюет холсты, добиваясь, чтобы его художественные способности соответствовали заявкам его воображения. Изучать ему ничего при этом не надо. Только лови моменты «божественного откровения» и воплощай в картинах. Житуха! А настоящий разработчик программного обеспечения живет постоянно в аморфном мире, где ежедневно меняется очень многое, да и он сам не стоит в стороне от прогресса. При этом часто приходится не только рисовать самому «морду» очередной программульки, но и подбирать инструменты (средства разработки, язык, библиотеки…) для создания, а также решать, которые из них следует доизготовить. Так кто больший творец? Универсальный программист или какой-нибудь там художник?
И вот творец столкнулся с очередным серьезным затыком, и нет никаких идей по преодолению препятствия. Что делать? Нередкая ситуация. И тут можно поступить по-разному.
Кто-то «подстроит» исходные условия и поищет обходной путь. Ведь обычно нет требования сделать именно то, что указано. Как правило, нужно создать некий софт, решающий определенные проблемы заказчика. И заказчику важно, решает ли этот софт его задачу, а действует ли он самым оптимальным способом – дело десятое. Так что поле потенциальных решений очень широкое.