Стадии развития программиста

Разработчик инди-игр Эрик Райдман (Erik Rydeman) определил список типичных стадий развития программиста.

эволюция программиста
  • Копипастер/совсем зеленый новичок: Старается соединить вместе примеры кода, которые он нашёл онлайн. Имеет самые смутные представления о том, что и как работает.
  • Независимый новичок: Узревший матрицу! На самом деле, он узрел её краем одного глаза, но пока не в курсе и пребывает в искреннем заблуждении, думая, что познал силу и теперь дело за малым (хе-хе). Может писать простой и запутанный код, не подглядывая в примеры. Очень радуется, когда результаты его труда работают, именно так, как предполагалось.
  • Присматривающийся к шаблонам проектирования. Он уже познал синтакис своего первого языка, и теперь присматривается к лучшим практикам. Он начинает изучать шаблоны проектирования, и всесилие, которое снизошло на него на предыдущем этапе, растворяется, как осенний туман. Перед нами снова безнадежно зеленый и вечно сомневающийся новичок...
  • Энтузиаст шаблонов проектирования. Его сознание живет идеей “идеального кода”. Энтузиаст старается структурировать собственный код так, чтобы он был близок к недостижимому идеалу и максимально вписывался в существующие шаблоны. Теперь с написанным им кодом работать куда приятнее.
  • Архитектурный СверхФанатик: Это случается с каждым. Но некоторые программисты углубляются в лучшие практики так рьяно, что готовы отстаивать их с рвением, которому позавидуют даже религиозные фанатики со стажем. И, как и последние, они не успокаиваются, пока все вокруг не примут их точку зрения или покинут их поле зрения. Порой на этом этапе снижается продуктивность, а всё потому, что принимаются неверные решения (слишком много доверия теории, не подтвержденного практикой).
  • Опытный архитектор. Накопленный опыт начинает давать плоды. «Архитектор» на уровне чутья знает, что происходит на самом деле, и что с этим всем делать. На этом этапе программист начинает отходить от строгих догм, а главной его фразой становится “it depends” («всяко бывает»). Сложные решения — более не его фетиш.
  • Аскет-минималист. Вопрос: какой способ структурировать код самый лучший? Ответ аскета: простейший из всех возможных. Инженерные теоретические изыски теперь интересуют его много меньше практического результата, а найти решение, которое окажется хорошим, и сделать это с первой попытки — вполне реально: помогает опыт аскета.

А на каком этапе находитесь вы?