Направления для развития

Хочу поделиться мыслью.
В программировании есть области, которые сами по себе могут быть направлением развития.
И я сейчас говорю не о языках и фреймворках, не о доменах.
Я говорю о «кусочках» программирования, например - системный дизайн, архитектура, ООП, ТДД, ДДД, парадигмы программирования (функциональное например) и многое другое.
И в каждом этом направлении можно отдельно совершенствоваться, все больше постигая философию, изучая подходы, экспериментируя и тп.
У Егора Бугаенко я где-то прочитал (или услышал) историю, когда он собеседовался в Амазон (кажется), и там он назвал направление своей экспертизы - ООП.
В тот момент я не понял до конца как можно развивать экспертность в одном небольшом (казалось бы) кусочке этого «большого программирования», но теперь понимаю… или лучше сказать ощущаю, вижу даже… огромное поле для изучения и экспериментов в том, что цепляет меня - архитектура и рефакторинг.
И, когда я говорю «архитектура и рефакторинг», это не значит что меня не интересует ООП, тестирование, паттерны, практики экстремального программирования и прочее.
Это не взаимоисключающие элементы. Да и разве они могут быть взаимоисключающими? Мне кажется, это все взаимосвязано в тугой клубок.
В данный момент я смотрю на этот клубок через призму красивой архитектуры.
Мог бы смотреть через призму ООП или ТДД.
Или с точки зрения функционального программирования (в этом случае я бы искал, наверно, пересечения Объектного подхода и функционального, философствовал бы на тему эффективности и красоты в решении определенных задач в сравнении, ну и тп).