1. A computer-implemented method for training a user, comprising: a. sensing, using a computer system that includes at least one processor, at least one action performed by the user; b. selecting, using the computer system, at least one training action from a collection of available training actions using a training needs model that estimates at least one of a cost and a benefit of exposing the user to a plurality of combinations of available training actions, based on the sensed at least one user action, if the sensed at least one user action indicates a need for the user to be trained and at least one relevant training action from the set of available training actions is identified; and c. delivering, using the computer system, the selected at least one training action to the user.