How to autoload classes from a 3rd party PHP library I would like to use a 3rd party PHP library in my module and I wanted to ask what I need to do to autoload the classes?

Example:
Drupal\my_module\MyClass
wants to instantiate
ThirdPartyNamespace\Something\Else\Class1

The official Drupal 8 documentation doesn't really deal with more complex namespacing scenarios.
Drupal use composer to manage the 3rd party libraries (Symfony, guzzle, etc...).
The problem is Drupal has versioned the vendor folder into the core directory; it is a problem because, if you added a new library in the root composer, you change the vendor directory and change the composer.json/composer.lock. So, if Drupal releases a new version, your changes will be deleted.

The Composer Manager module is created to solve the problem. You need to include a composer.json file in your module; the Composer Manager module downloads the library and registers a new autoload file (the second autoload).
The problem with this is only when you need use a middle-ware library, since the Composer Manager module registers a new autoload in the Request Kernel Event. This event is called after the middle-ware so this library is not available in the middle-ware layer.

In most cases, the Composer Manager module is the best solution to add new vendors.

There is the issue Remove external dependencies from the core repo and let Composer manage the dependencies instead.