Eloquent Javascript (HAVERBEKE, 2014) – Sou fã desse livro e já o li e reli várias vezes. Durante os estudos, montei uma planilha (colei algumas imagens dela neste post) separando o que do livro é conhecimento, o que é código, tipos de dados, palavra-chave, valores especiais, operadores e referências. Se alguém quiser é só me pedir que envio. Além de gratuito, ele vem com vários exercícios e um ambiente de testes online que ajuda muito na fixação dos conhecimentos. Ele é sempre citado na lista dos melhores livros e materiais de Javascript, porém, verdade seja dita: o livro é pesado. Não dá para lê-lo de cabo a rabo, fazer todos os exercícios e o entender 100% em pouco tempo. É preciso paciência e mão na massa até entender cada conceito.
Os quatro primeiros capítulos representam, na minha opinião, uma das melhores introduções a programação já escritas. Porém, nem tudo é alegria. A partir do quinto capítulo a curva de aprendizado diminui e o aluno que eventualmente ler tudo sequencialmente enfrentará dificuldades. Minha sugestão é que, depois do 4, o aluno pule para o capítulo 12, 13 e 14 para que o conhecimento adquirido na linguagem seja mostrado em funcionamento dentro do contexto de um navegador. Em seguida, os outros capítulos ficarão menos pesados e os projetos ajudarão a fixar a teoria. Já para quem é expert na linguagem e quer aprender frameworks, esse livro não cobre essa parte. Para quem quer aprender Node.js, existe uma introdução, porém curta e superficial.
Outro livro muito bom para entender as escolhas feitas no projeto da linguagem Javascript é o Javascript: The Good Parts, de Douglas Crockford. Não é um livro que tem a didática como forte, mas ajuda muito a quem quer entender melhor as vantagens de JS.