1. A method executable in a computing system for generating self-steering executable code, the method comprising: analyzing program code; identifying a non-optimized portion of code in the program code; adding at least one optimized version of the non-optimized portion to the program code while retaining the non-optimized portion in the program code; adding a monitoring mechanism to the program code which is configured to monitor a behavior of the non-optimized portion of code; adding a selection mechanism to the program code, said selection mechanism being configured to select between two or more versions of the portion of code during runtime based at least in part on said behavior, said two or more versions including the non-optimized portion of code and the optimized version of the non-optimized portion of code; and compiling the program code with the non-optimized portion, the added optimized version, the monitoring mechanism, and the selection mechanism.