Head First Software Architecture: A Learner's Guide to Architectural Thinking
by
Raju Gandhi, Mark Richards, Neal Ford
Description: Head First Software Architecture: A Learner's Guide to Architectural Thinking introduces fundamental concepts and practices in software architecture for developers seeking to build practical understanding in architectural design and decision-making
ISBN: 1098134354
We may earn a commission from purchases made through links on this page.
I second the comment (https://news.ycombinator.com/item?id=48327571) recommending How to Design Programs (HTDP) and Structure and Interpretation of Computer Programs (SICP). The former has an edX course (https://www.edx.org/learn/coding/university-of-british-colum... and https://www.edx.org/learn/coding/university-of-british-colum...) and the latter has online lectures (https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CAB...)
Head First Architecture (https://www.amazon.com/Head-First-Software-Architecture-Arch...) is good.
Reading about systems thinking would be useful.
Learning programming languages that have been well designed is helpful. I suggest Programming Erlang: Software for a Concurrent World and Elixir in Action.