Вот тут написано, что изучение любого языка должно начинаться с чтения спецификации языка.
Это неправда, причём неправда вредная.
Изучение любого языка программирования должно начинаться с выбора задачи, которую вы будете решать на этом языке. Этот первый проект, который вы будете писать на новом языке:
- не должен быть тривиальным: программа “hello, world!” демонстрирует не то, что вы ориентируетесь в языке, а то, что вы разбираетесь в среде на уровне “куда писать код, как компилировать”;
- не должен быть слишком большим — вы либо бросите его от многочисленных неудач, либо сваяете совершенно несъедобное гавно;
- должен быть кому-то нужен: вам необходим “заказчик”. Наличие заказчика не означает, что вы получите деньги за этот проект — какой идиот станет платить за вашу первую программу? Заказчик даст вам боевую задачу и будет выдавать свой feedback в ответ на ваши релизы. Очень важно, чтобы в роли заказчика выступал кто-нибудь другой, а не вы, иначе в случае неудач в освоении языка вы рискуете начать пересматривать функциональность программы, а не рыть землю носом.
Поспрашивайте друзей, наверняка кому-нибудь из них нужна какая-то программка, подходящая для вашего первого проекта. Доведите этот проект до конца, и вы убьёте двух зайцев сразу: освоите язык и окажете услугу “заказчику”. Кстати, если вы сделаете его счастливым, то он может заплатить вам символические деньги: всё равно на что-то серьёзное с вашим опытом претендовать рано.
А спецификации языка читать конечно надо. Это можно сделать после того, как у вас заработает программа “hello, world!“, исходники которой вы скачаете из интернета.