I have a feeling that all users of computer software must learn to program. I couldn't agree more and I am happy to see that we are making progress towards this, albeit a little slowly. Artists are learning to program. Musicians and mathematicians are learning to program. Pretty soon we will have most civil engineers and doctors programming as well. Programming is a glue that enables you transform and use for your own purpose something that someone else created or discovered (without having to wait for someone else to do it for you).
Programming is not much of a discipline by itself (although Computer Science is). However, everyone need not be a computer scientist in order to be able to program (in a similar way that you need not be a doctor to treat yourself from a small cut). Moreover, a slight shift is happening. Earlier you might have been looking for good C++ programmers, but now you need to start looking for good C++ programmers who are great at solving certain kinds of problems (like computational geometry). This greatness and ability to solve certain problems is what differentiates a programmer, not C++.
Many a times people who are technically competent (that is, of the nerdy sort) tend not to be too social. Which is okay. However, due to this they sometimes might become reluctant in providing/conducting training sessions for others, and in sharing their knowledge and experience.
Of course, this does not indicate that they are not good at training people. In fact, you will be surprised to find that most nerds (who have a pretty strong grasp over their domain) tend to be extremely good trainers, because they have this in-depth knowledge which gives them an uncanny confidence. While nerds can choose to remain socially aloof, they must share their knowledge and insight via training sessions.
Who knows they might become social nerds! Or in turn create more nerds in your organization. Although, I am against nerds becoming too social :) It might take a little while for über nerds to adjust to a form of training that is useful for lesser mortals, but they tend to adjust to the situation quickly enough. Short training sessions like these should eventually get most techies in your organization into a higher plane. If you don't have any über geeks then at least get everyone to start watching.