Thinking about this there is scope to create a beginners 2010 theme by breaking down the header, loop and footer files to smaller managable units, easier to understand and break down.
The way you to could do this would is to use template parts and the new call:
get_template_part()
I use these all the time now for squirting custom code blocks into pages, like slideshows, extra menus etc:
All you would need to do is copy the different code blocks to files like header-image.php, header-menu.php, content-notfound.php, content-gallery.php, content-asides.php, content-default.php, content-topnav.php, content-bottomnav.php etc:
Then the loop could look like this:
<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php get_template_part( 'content', 'topnav' ); ?>
<?php /* If there are no posts to display, such as an empty archive page */ ?>
<?php if ( ! have_posts() ) : ?>
<?php get_template_part( 'content', 'notfound' ); ?>
<?php endif; ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php if ( 'gallery' == get_post_format( $post->ID ) || in_category( _x( 'gallery', 'gallery category slug', 'twentyten' ) ) ) : ?>
<?php get_template_part( 'content', 'gallery' ); ?>
<?php elseif ( 'aside' == get_post_format( $post->ID ) || in_category( _x( 'asides', 'asides category slug', 'twentyten' ) ) ) : ?>
<?php get_template_part( 'content', 'asides' ); ?>
<?php else : ?>
<?php get_template_part( 'content', 'default' ); ?>
<?php endif; // This was the if statement that broke the loop into three parts based on categories. ?>
<?php endwhile; // End the loop. Whew. ?>
<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php get_template_part( 'content', 'bottomnav' ); ?>
This would make it easy to add custom changes, lets say you are adding a post image into the default output, you would copy across to your child theme content-default and have a small file to edit
and deal with, much easier for tutorial writers to say add this code at lines 10-12.
Food for thought there!
Regards
David