What is the difference between the different ways of linking stylesheets

Enqueueing via your functions.php is by far preferable, because it allows WordPress to keep track of which styles are loaded and in which order. This matters, because when css statement are equivalent, the one that is loaded last will be applied to the page.

This may not matter too much when you are developing a simple theme all by yourself (as you’re likely to do as a beginner), but once you want something more complex you’ll see the benefits. For instance when you want to reuse your theme for a second site, you’ll want to build a child theme to store the changes in. At that point you need the enqueuing system to control the order in which the style sheets from parent and child theme are loaded.

Also, when you want to load style sheets you got elsewhere (like font icons), the enqueuing system makes sure you don’t run into conflicts with a plugin that might be loading the same stylesheet.