There's always that one guy at every job who talks about "high-level" "software engineering" topics but can't code for crap. It's so common I suspect causation. The idea that identifying problems is more difficult than solving them is as facile as suggesting play dates between children is more difficult than Beethoven.
You're looking at it as one or the other, when it should be one or both.
Identifying problems that are soluble and then solving them without creating too many new problems is a lot more difficult than just solving problems. And also a lot more difficult than just wandering around pointing out problems.
You're right about the people who always talk about the "high-level" topics and can't code for crap, but I also think that identifying problems is more difficult. Case in point: 42. Who knows how this number was processed?
Programming and debugging with existing code is challenging, and it's easier to talk about common ideals than actual solutions.