This chapter aims to provide computer science stakeholders with a perspective on teaching programming through metaphors. The chapter emphasises that the difficulties encountered in learning programming stem from the structure of programming as a learning task, individual traits, and many factors, including curriculum and teaching approaches as interactional setting variables. First, the need for pedagogical approach to teaching programming is emphasized, briefly introducing the teaching approaches used in programming. Teaching programming through metaphor is introduced as an alternative approach to teaching programming concepts. It explains metaphor as a concept, conceptual metaphor theory, and the use of metaphor in teaching programming concepts. Then, the need to reveal the pattern of the teaching process through in-depth qualitative studies is highlighted as a future research direction. Finally, it is argued that using metaphor is not limited to teaching of concepts, but can also improve thinking skills, differentiate teaching and support teachers' professional development.