Дело в том, что в проектировании мало-мальских сложных систем и языков программирования в частности есть одна важная деталь - задачу нужно формулировать, в значительной степени ориентируясь на то, какой механизм воплощения за ним будет стоять. Не зная этого, можно сколь угодно просто формулировать сколь угодно сложно воплотимые задачи. То есть, сначала учим слова - затем говорим, но не наоборот.
От того и возникает вопрос про опыт. Да и важен не столько срок, сколько качество