
A Philosophy of Software Design, 2nd Edition



Programmers know the benefits of everything and the trade-offs of nothing. Architects need to understand both.
Neal Ford • Fundamentals of Software Architecture: An Engineering Approach
A program that does everything in the most efficient possible way is often needlessly difficult to understand.
John Guttag • Introduction to Computation and Programming Using Python, second edition: With Application to Understanding Data
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
amazon.com