What I fail to see are any recommendations of how to apply this to software development. In my own personal investigations, things like programming competitions have shown not to translate well to professional software development (outside of maybe the search or AI algo developers at Google). Practice problems like Eulers and Programming Pearls are a bit contrived and limited, so I'm not sure where else to turn. Do others wonder the same thing?
Working on side projects may be practice, but not necessarily deliberate, and many side projects may not be addressing our individual weaknesses.