Taxonomy and CCK are both used to customize content types. This first thing you usually want to do when building a site, is to figure out how the content types should be defined. With Drupal 7 you have entities instead which provides a more flexible way of defining data structure, but the idea is the same.
Once you have defined your content types, views, panels (or context) comes into play. Views is really good at making listings of different types, like the latest articles, nodes post by user X etc.
Panels can be used to piece things together, but as it's a very complex tool, it can also be a bit overkill to use. It was originally created out of a frustration with the Drupal block system, with all it's limitations. It if you want to use panels to manage blocks, you might consider using context instead as it provides the same functionality but is more lightweight. What panels is good at making lots of pages with very different layout. It has one advantage over context, and that is a more tight integration with views, allowing to use views not defined at blocks as blocks (panel panes).
So to sum up.
- Define content types.
- Create list/displays with views.
- Piece it together with panel/context.