I guess my perspective is that I usually have to plan out my programs regardless of what language they’re in so I don’t really view it as being similar?
I frequently was surprised to find some simple part of a program actually required me to sit and plan for several hours.
It's perfectly normal in programming to encounter domain problems that take longer than one predicted, or to plan ahead with pseudo code, proofs of concept, class diagrams, etc.
What is abnormal is, over and over again, to find oneself utterly stumped on how best to implement something very basic. At least, it's abnormal when using a high-level language.