Programmatically get field definition for custom user profile fields
Yes you can get field definition programmatically with field name and entity name, by using EntityFieldManager::getFieldDefinitions.
For your select list how to get allowed values check this example 

 $options_array = [];
    $field_name = 'field_country_list';
    $definitions = \Drupal::service('entity_field.manager')-&gt;getFieldDefinitions('custom_entity_name', 'bundle');

    if (isset($definitions[$field_name])) {
      $options_array = $definitions[$field_name]-&gt;getSetting('allowed_values');
    }


source : https://api.drupal.org/comment/63953#comment-63953