Скажу, как получилось у меня. Началось всё с делфи, который изучался мтодом ctrl+space (autocomplete) :) Написал две программы, одну даже продавать умудрялся. Затем, получив самые начальные знания (даже ещё не понимая ООП) написал дипломный проект вместе с однокурсником, он был чуть опытнее меня, поэтому некоторым моментам научил меня он. Затем как-то сразу появились два проекта по заказу от знакомых, тогда уже засел за мануалы и форумы, ища чью-то реализацию своей маленькой задачи. Так опыт и начал появляться — при решении реальных задач, за которые ты несешь ответственность. Затем устроился на испытательный срок в одну веб-студию, а при уходе от них скопировал себе исходники их CMS и пару недель разбирался в коде — стиль написания был очень схож с моим и обучение далось довольно легко. Затем снова форумы и разбор чужих исходников. Ну уже потом устроился программистом, где и получил первый серьёзный проект в единоличную разработку. Работодатель оказался понимающим и я писал, изучая. Теперь уже начал читать серьёзные книги про паттерны и ООП :)