Devo adicionar uma classe / id a tudo ou usar outros seletores

Eu nunca tenho certeza qual é a melhor (mais eficiente) maneira de selecionar um elemento.

Vamos dizer que eu tenho o seguinte layout (exemplo extremamente simples)

<div id="navigation">
  <ul>
    <li>Link 1</li>
    <li>Link 2</li>
    <li>Link 3</li>
  </ul>
</div>
Eu quero selecionar minha lista não ordenada (assegurando que eu não afete nenhum outro UL em todo o meu site), devo fazer#navigation ul {} ou atribuir uma classe ao UL?Quero selecionar meus itens da lista, garantindo novamente que só os afetarei. Eu deveria fazernavigation ul li{} ou atribuir uma classe?E finalmente, se eu quiser selecionar meu primeiro link e estilizá-lo, devo fazer#navigation ul li:first-child {} ou atribuir uma classe?

Eu aprecio estas perguntas são praticamente as mesmas, mas estou curioso quando você deve usar uma classe e quando não.

questionAnswers(4)

yourAnswerToTheQuestion