Ставишь себе задачу - выполняешь её. Вот и весь ход. Задачи ставить надо не боятся и ставить их "на растяжку", т.е. чтобы в задаче присутствовал элемент, который еще не использовался.
Мой путь таков:
Первым делом я создал сайт с простой авторизацией пользователей.
Вторым делом нашел простой макет сайта, и натянул эту авторизацию туда, сделал скрытые разделы и т.д.
Третим делом Перенес все это дело из просто файла function.php в классы, посмотрел как что куда в классах работает, в общем, притерся с ООП.
Четвертым шагом у меня был разбор MVC модели на движке интернет магазинов opencart, в нем, на мой взгляд, явно выражена модель mvc.
Дальше - реальные задачи и в бой