Ладно, время возвращаться к программированию и инженерии.
Недавно открыл для себя просто потрясающую книгу по системному мышлению от Анатолия Левенчука:
https://ridero.ru/books/sistemnoe_myshlenie/Она же в виде курса на Курсере:
https://ru.coursera.org/learn/system-thinkingПо моему убеждению, инженер-программист (акцент на слове «инженер») просто обязан обладать рациональным, логичным, последовательным мышлением для того, чтобы моделировать окружающий мир и выражать эти модели и их взаимосвязи в своей работе. Вещи, о которых говорит Анатолий в своих трудах, как раз позволяют выработать навыки системного мышления. Эти навыки будут только усиливаться, если параллельно заниматься изучением теории типов и теории категорий. Их тоже можно рассматривать как инструменты моделирования реальности, а чем больше таких инструментов будет в вашем арсенале, тем точнее вы сможете доносить свои идеи.
P.S. Кстати, у Анатолия очень крутой блог в ЖЖ:
https://ailev.livejournal.com, советую внести в закладки, как минимум.