Software engineering fatigue
Software engineering fatigue

Making software is like assembling Lego bricks.

At first, you learn the fundamental bricks. Gradually, you learn the precomposed blocks from those fundamental bricks, the abstractions built by others.

More and more, where systems grow more complicated, people compose blocks from other blocks built by others.

Eventually, you stray afar from the fundamental bricks. The cost of finding out what bricks are there became impractical (for building sellable software). Your learning turned from “understanding things” to "how to use things.” You don’t learn the bricks anymore but accept the blocks as they are from others. They are incidental; they feel artificial.

To put it into perspective, learning physics will make you boil down to the truth of the universe, while learning software engineering nowadays makes you learn arbitrary inventions from others. They are not compounds.