I've chosen to be a programmer because I thought that programming is mostly thinking about how to solve a problem in a language that I know. That is, that I have to think, not memorize. I.e. my brain being more like a CPU than RAM. 90% CPU, 10% RAM.
And it proved to be the reverse. Programming nowadays means 90% RAM, 10% CPU. That is, I spend 90% of my time learning APIs, and only 10% on real thinking, i.e. on algorithms.
It resembles the boring classes from school, i.e. the history class, that was about memorizing the dates and places when/where a former romanian ruler fought with the turks. It's nothing like the math classes, where you learned formulas in 10% of the time, and thought about resolving problems in the other 90%.
That is, you don't need to be smart to be a programmer, you just need to have a lot of RAM. A good programmer is not a smart programmer, but one who has memorized the API that the project uses.
And nowadays APIs are big enough to take 1-2 years to learn, and after 1-2 years there is a switch to another API. So, it becomes a perpetual struggle to memorize. By the time you'd become good/productive in an API, and you'd be proud that you can do something fast, it's gone.
The other option, to don't switch APIs often, isn't viable either, because you'll get jobless in a few years.
So, programming being about algorithms, or being fun, is just a school-myth.