Herranz

About Software Design

In its book A Philosophy of Software Design, John Ousterhout says:

The most fundamental problem in computer science is problem decomposition: how to take a complex problem and divide it up into pieces that can be solved independently. Problem decomposition is the central design task that programmers face every day, and yet, other than the work described here, I have not been able to identify a single class in any university where problem decomposition is a central topic. We teach for loops and object-oriented programming, but not software design.

I recomend the book. In the discussion group software-design-book@googlegroups.com, a lot of people try to contribute. I found this post very interesting: Cognitive Load Developer’s Handbook, by Artem Zakirullin (https://github.com/zakirullin/cognitive-load).