If you can't make use of your technical skill (solve the problem) you definitively don't have it. That's why you need to be a problem solver in the first place.
I farm as a hobby, so I see lots of unique problems. In typical programming jobs you're just stringing together the work of others. There's lots of book learning to do, but not much actual problem solving.
There are people solving real problems, but those kinds of jobs are fairly rare, and often not very well paying when done in academia. Implementing working implementations based on those already found solutions are where the jobs are.