In this paper we explore the topic of using metaphors and analogies in teaching algorithms. We argue their importance in the teaching process. We present a selection of metaphors we successfully used when teaching algorithms to secondary school students. We also discuss the suitability of several commonly used metaphors, and in several cases we show significant weaknesses of these metaphors.