This document introduces algorithm complexity analysis and "Big O" notation. It aims to help programmers and students understand this theoretical computer science topic in a practical way. The document motivates algorithm complexity analysis by explaining how it allows formal comparison of algorithms' speed independently of implementation details. It then provides an example analysis of finding the maximum value in an array to illustrate counting the number of basic instructions an algorithm requires.