The teaching of computational fluid dynamics at the undergraduate level usually focuses on giving students an understanding of the numerical methods and details involved, supported by what are little more than code fragments, followed by learning an abstract form of computational fluid dynamics skills and processes, without any real interaction with the complex core computer coding behind what is often just ‘easy-to-use’ or ‘push button’ commercial interfaces. Quite often, as the student progresses in his/her use of computational fluid dynamics, especially in the research area, it becomes clear that an ‘off-the-shelf’ commercial computational fluid dynamics package is not able to satisfy all requirements to simulate a given problem fully, nor to obtain accurate results. The purpose of this paper is to outline what must be taught to add computer coding to what usually is a well-protected, though capable of being compiled and linked, core computer code so that the complexity of interacting is lessened and better understood.