As we move into the 21st century, there will be a significant increase in the need for computer coders and programmers in STEM and other technical jobs. The broadening of the student base, and their respective variations of skills, necessitates a review and reconsideration of the way computer programming is taught if it is to attain maximum success. This paper approaches computer programming education from a multidisciplinary perspective, comparing it to the learning of a language as a foreign language versus a second language. Various techniques are evaluated within the parameters of both Dale's Cone of Experience and Bloom's Taxonomy to craft an effective learning environment.