I'm what I think would be considered an 'advanced' programmer. I have years of experience doing reverse-engineering, kernel/compiler/emulation/game development, many programming languages under my belt, etc. Up until about two years ago I felt I was continually learning about coding, and I was a good coder but my overall development (documentation, management, organization, etc) skills were poor, so that became the focus of my learning. Now that I feel those have matured to the point where it's not worth complete focus, although obviously I still have a ton to learn, I now feel like my learning has largely stagnated. I had prided myself on learning new things constantly, but eventually there comes a time where the interesting things to learn are few and far between.
I've been trying to come up with little exercises to continue advancing my knowledge -- building a Tokyo Cabinet type DB being my latest idea to that end -- but I'm simply running out of places to go. It's having a definite effect on my morale as I move forward, feeling like I'm nearing the end of the road, so to speak, despite that I know there's far more out there I haven't even considered.
So my questions are these: How do you go beyond this point? What programming exercises, big or small, will expand my mind? Lastly, has anyone else out there hit this point, and how did you get over it?
Edit: I want to clarify a bit. I don't think I've learned everything there is to know about my fields, or anywhere even near it. I know there's a lot left for me to learn, but I simply don't know what that actually is, which is largely the point of the question. In addition, I've wanted new ways of expanding my skills as a tech person, not just as a coder, so thanks to everyone that's given such recommendations. There's a lot to take in here, but I think this will all help greatly.