Another vote for breadth
Yesterday I wrote/designed code that touched on image processing, feature recognition, particle physics, data filtering, and anti-counterfeiting techniques.
A lot of invention is not merely coming up with something brand new, but finding ways to synthesize other pieces in novels ways. To facilitate that, you need to know a little about a lot. Curiosity is your friend, no matter what people say about it's proclivity toward feline termination.
Years ago I read a claim that one of the reasons why humans would always be better chess players than computers is the ineffable human qualities and the experiences that are fundamental to us, such as understanding exact change for bus fares or arranging ladies' shoes in an attractive are, affect our thinking in subtle ways that are not so easily representable in software.
And oddly enough, I tried to track down the source of that quote and discovered that one of the greatest chess champions that ever lived,
Paul Morphy, had shot to the top of the chess world only to retire in his early 20's. He apparently had a bit of a shoe fetish and was found arranging ladies' shoes in a half-circle on the floor because he like the way they looked. I can't say that I espouse that level of obsession. Chess masters and grand masters seem to have more than their fair share of loons.
Then again, so do software engineers, but I digress.
Nonetheless, I am a big fan on studying things that are not necessarily immediately applicable. You never know what might pop up as useful. You might be able to apply audio processing techniques to business logic or battlefield strategy to resource management. Keep your mind open and it will reward you.