the_tags outputs before echo

the_tags() doesn’t return the links but immediately echoes them. As that happens before the echo they appear before the span.

What you want is this:

echo '<span class="tags">';
the_tags('See also: ', ' &middot; ');
echo '</span>';

or even simpler

the_tags( '<span class="tags"> See also: ',' &middot; ', '</span>' );

As a general rule of thumb you can remember that function that start with the_ directly echo things, while functions starting with get_ return stuff.

So here you could also be using this:

echo '<span class="tags">' . get_the_tag_list('See also: ', ' &middot; ') . '</span>';