Abstract: A system and method for training a user on any number of computer software applications. The computer is directed by at least one computer program within a distribution engine 15 to perform a diagnosis of the skill level of a user on a computer software application, prescribe a training plan that will allow the user to achieve a minimum skill level on the computer software application, and provide the user access to a plurality of training software programs to enable a user to complete the training plan.