This paper gives a survey of the principles and the state-of-the-art of engineering optimization techniques. Both the classic and emerging approaches to nonlinear optimization problems are reviewed and analyzed. All the techniques are discussed in two basic types: point-based transition and population-based transition, depending on whether a single point or multiple points are generated as new approximate solution(s) in each step. We also consider multi-objective tasks as new application trend and point out the strong potential of population-based methods to tackle multiple objectives simultaneously.