Для самообучения рекомендую в первую очередь ознакомиться со
спецификацией языка. Кроме того стоит обратить внимание на
официальную документацию. Это, конечно, не книги, зато официальная документация избавит Вас от перенятия личного стиля разработчика автора книги. При больших затратах времени Вы получите более широкое понимание языка.