An apprentice carpenter may want only a hammer and saw,
but a master craftsman employs many precision tools. Computer
programming likewise requires sophisticated tools to cope with
the complexity of real applications, and only practice with
these tools will build skill in their use.
-- Robert L. Kruse, Data Structures and Program Design