The idea that software engineering is a "talent" strikes me as wrong. Knowledge of algorithms and data structure is attainable by anyone willing to put in the time to read a book. Hire people, incentivise them to learn what's important to the success of your company. Pay them to practice their new skills. Being congenitally "smart" is not the only path to being useful and innovative in a company. Being curious, willing to learn, and having a company that knows how to steer its workforce is.