A task is an individual job carried out on a project. Tasks are cost centers - meaning costs are assigned to individual tasks rather than project.
A project contains a list of tasks. In the most straight-forward case this is a simple list. In this case all tasks are visible to the customer in the final invoice. Such tasks are referred to as customer tasks.
However it is possible that you wish to track costs at a more granular level than what you eventually present to the customer. This can be done by using yard tasks. These are 'child' tasks to customer tasks. They have costs assigned to them but their price is rolled-up to the parent customer task. Note that customer tasks with child yard tasks may still have costs assigned directly to them.
Yard tasks also offer additional features. They have a type and subtype that allow them to be classified. The classifications can be whatever you wish, and allow you to aggregate costs any way you wish.
Task pricing is the subject of a seperate tutorial.