Você está cometendo um erro clássico: está tentando ler livros técnicos como se fossem romances. Não são. São manuais de instruções disfarçados de texto. A abordagem correta é:
- Pare de Ler. Comece a Fazer.
- Abra o Estruturas de Dados em JavaScript na página sobre árvores binárias.
- Leia 1 página.
- Feche o livro. Implemente o código.
- Repita até terminar o capítulo.
- Use Livros Como GPS, Não Como Bíblia
- Você não precisa ler Clean Code do início ao fim.
- Tem um problema com código bagunçado? Busque o capítulo sobre "Nomes Significativos". Aplicou? Ótimo. Próximo problema.
- Se o Livro Não Tem Exercícios, É Lixo
Clean Code te entediou? Claro! É um livro cheio de opiniões sem exercícios práticos.
Troque por livros como "The C Programming Language" (K&R) ou "Structure and Interpretation of Computer Programs" (SICP), que obrigam você a codificar.
- Meta Realista: 1 Capítulo Por Semana (Não 4 Livros Por Ano)
4 livros/ano = Pressão desnecessária. 1 capítulo/semana = 52 capítulos/ano. Isso sim é progresso.
Livros técnicos são como receitas de cozinha: não adianta ler 100 receitas de risoto se você nunca ligou o fogão. O valor está em sujar as mãos.
E se depois de 20 páginas o livro ainda te entediar. Vida curta, próximo.
Só discordo de uma coisa, na sua resposta, que é o ponto 3, livros não precisam ter exercicios para serem bons, por exemplo, o livro "Introdução a arquitetura de software: uma abordagem de engneharia", vai te explicar muita coisa sobre o desenvolvimento de software, e não tem 1 exercicio se quer, pois são livros de conceito, e o conceito prevalece sobre a prática. Principalmente quando nos referimos ao mercado, muitas das vezes, você não precisa implementar um lista duplamente encadeada, pois já existe a implementação na linguagem, mas saber como funciona te ajuda a saber onde implementar e o pq. de resto concordo totalmente.
Acho que maniero deu uma boa explicação de como ler um livro técnico. Mas, reforçando é isso livro técnico tu vai escrever, sublinhar e resumir trechos que tu acha importante, quando for de uma linguagem muitas vezes tu vai pro computador e vai fazer os código e experimentar, isso ajuda a deixar mais dinâmico o estudo do livro.
Se vale a recomendação eu fiz também um vídeo elencando 10 livros interessantes pra estudar, lá tem um que tu pode ler como um romance (por que ele é) talvez tu sinta a diferença.