1. Как правильно читать спецификацию? Люди, которые знакомы с ней, непосредственно брали в руки документ и читали его от корки до корки?
Первый раз читаешь от корки до корки, остальные разы только вспоминаешь, переходя к нужным пунктам. Знание о том, что такой-то пункт есть в стандарте, появляется после первого раза. Заучивать-то можно, но помнить потом всё равно ничего не будешь, потому что оно не используется. Мозг то, что не используется, постепенно стирает.
Эта тема немного шире, чем просто чтение от корки до корки. Есть первый язык, когда ты не знаешь, что вообще может быть в языке и его библиотеке функций. Так вот первый язык ты изучаешь полностью. Но остальные языки, которые ты изучаешь, содержат похожие элементы или вообще такие же. Поэтому ты, например, прочитал семантику функции split() для строки в первом языке, всю её изучил (написал кучу примеров и запустил их много раз), а потом в остальных языках, которые ты изучаешь, ты видишь ту же функцию и тебе не нужно про неё читать, потому что ты проводишь связи (аналогии) со своей первой функцией split(). Поэтому чем полнее ты прочитал про эту функции где-то в начале, тем меньше тебе остаётся про неё читать потом. Так накапливаются знания. Потом наступает момент, когда ты уже не знаешь, чего ты не знаешь, потому что уже всё знаешь, так как про всё читал.
Поэтому начинаешь читать по факту что уже знаешь. Как итог трата времени, скука и бросание дела на пол пути.
Вот если начинаешь читать то, что уже знаешь, надо сменить пластинку. Значит, этот материал для новичков и тебе нужен другой материал, посерьёзнее.