Understanding the Principles of Algorithm Design | Nettuts+
A beginner-oriented introduction to algorithms for working developers, arguing that an algorithm is less a special kind of code than an efficient pattern for reaching a goal, illustrated by contrasting brute-force search with binary search over a 50,000-item array and by the Facemash matchup problem from The Social Network. It then turns practical, saying everyday code benefits from the same thinking: know your input, understand your tools' hidden overhead (a jQuery append inside a loop versus building a string first), understand the wider environment, and cut the number of steps with a short checklist. It closes with suggestions for further study such as Knuth, coding competitions, and reimplementing built-in functions like sort.