По-моему, Tony написал очень хорошую мысль. По моему опыту (да я туповатый и ленивый, но всё же) 2 года до уровня джуниор - это не предел.
Ощущение, что этот процесс лёгкий и быстрый очень долго формировалось разного рода "обучающими школами", которые обещали вход в профессию буквально за несколько месяцев. Я слышал, что такие люди вроде как бывали, но лично не знаком.
От себя хотел бы добавить, что в самом начале стоит определиться, чего именно человек хочет. Чаще всего это устройство на хорошую работу. Так вот, я уверен, что начинать нужно именно с требований для устройства на хорошую работу. Обычно люди сначала учатся программировать, а потом занимаются поиском работы. Только вот оказывается (очень неожиданно), что уметь программировать и уметь работать программистом - это совсем не одно и то же.
Поэтому даже недостаточно посмотреть, что пишут в вакансиях на хедхантере. Нужно именно пообщаться с нанимателями и попросить рассказать, что им нужно на самом деле.
Сделать работающую программу просто. И если вам нужно именно это, то отлично. Но обычно людям нужна именно хорошая работа, и соответственно именно это нужно ставить своей целью, определить, что для этого нужно, какие навыки нужно приобрести, и заниматься именно этим.