/*shounen.ru - лирика в комментариях*/

Четыре состояния программиста

Первое состояние

Вы знаете, что вы хотите сделать, вы знаете, где это сделать, вы знаете, как это сделать, вам легко это сделать.

Самое приятное состояние. Оно требует минимум усилий и даёт очень хорошую "отдачу". Например, вы вдруг, понимаете, что в программе, можно задать параметр не в командной строке, а прочитать из файла. Вы легко добавляете в место обработки параметра код чтения из файла, короткий, ясный, простой. Вы улучшили функциональность программы, затратив при этом минимум сил и получив очень хороший результат. Правда, лёгкость решения развращает, и переход к задачам из второго состояния труден, ибо требует напряжения мозгов.

Второе состояние

Вы знаете, что вы хотите сделать, вы знаете где это сделать, но не знаете как и/или вам это сложно сделать.

Например, вы понимаете, что в данном куске кода явно неоптимальное решение. Применение же оптимальных методов потребует использование сложных алгоритмов, которые вы или не знаете, или которые требуют сложных телодвижений. Даёт максимальное удовольствие после реализации, потому что вы получаете хорошый результат, приложив много усилий. На такие "подвиги" трудно решиться, но удовольствие и гордость от решения долго греют душу.

Третье состояние

Вы НЕ знаете ЧТО вы хотите сделать, вы НЕ знаете ГДЕ это сделать. Но знаете КАК и/или вам это просто.

Вы прочитали в книжке интересный алгоритм и теперь горите желанием его реализовать на практике. Предположим, у вас пара рабочих проектов. Вы можете или воткнуть алгоритм в один из проектов, или начать новый. В большинстве случаев, удовольствие весьма постредственно, потому что вы реализуете фичу, которая вообще говоря, нафиг не нужна, но которую "захотелось сделать". Полезность в проекте - спорна, "для себя" польза есть, потому что, возможно, в следующем проекте вам опыт примерения алгоритма весьма поможет.

Четвёртое состояние

Вы знаете что вы хотите, но не знаете где это сделать и как.

Наиболее тяжкое состояние, когда есть потребность в инструменте для решения задачи, но совершенно нет ни представления, как её решать, ни идей о практической форме (оно должно работать, но как это выглядит никто не представляет). Обычно тяжкий груз на плечах программиста. Хочется, но непонятно даже с какого края начинать. Например, задача голосового управления компьютером. Или средство скоростного ввода информации от пользователя в машину.

Обычно такие задачи так и не решаются. Но если удача приходит - удовольствие от решения, вместе со славой и известностью, непередаваемы.


© 11.08.2004