An important skill
Recently it has occurred to me that there is a special skill which few people have, but which is absolutely necessary to innovate. I remember when my father taught me math, he always reminded me that I have to "speculate", to think about various possibilities how a problem could be solved. This skill is the thing that is necessary to come up with new solutions. I believe that this skill can be trained very well in the demo scene if you watch demos and try to figure out how these effects might work. It's a different approach than just studying existing effects from books and then implementing them. Of course size optimizing (as in the hugi compos) is also a way to train this skill, as you have to work out many different algorithms and, further, tactical optimizations before finding the optimal one.