On Programming

Learning to design programs is like learning to play soccer. A player must learn to trap a ball, to dribble with a ball, to pass, and to shoot a ball. Once the player knows those basic skills, the next goals are to learn to play a position, to play certain strategies, to choose among feasible strategies, and, on occasion, to create variations of a strategy because none of the existing strategies fits.
- Felleisen, Findler, Flatt, and Krishnamurthi, How to Design Programs: An Introduction to Computing and Programming

One cannot truly be a master until one perfects its basic fundamentals; only then does one attain enlightenment.