Выучил синтаксис языка. как использовать его на практике?
Надо действительно написать этот самый круд.
А дальше его переписывать. 
Этим можно себя занять очень надолго.
Причем не надо сразу задрав штаны бежать за красивыми словами - эмвэце, оопэ. 
Учиться надо постепенно. Иначе станешь не разработчиком, а попугаем. 

MVC надо прочувствовать. Надо поставить себя в ситуацию, когда станет понятно - "Вот я дебил, зачем же я SQL вперемешку с HTML писал! Теперь придется выковыривать. Но уж дальше у меня логика и вывод будут разделены!".  
А потом - "Вот я дебил, зачем же я прямо в контроллере всю логику шарабашил! Теперь в консольной команде то ли код дублировать, то ли опять логику из НТТР интерфейса выковыривать". 
И потом - "Вот я дебил, всё сам на коленке писал, когда в фреймворке всё уже готовое!"
И так много-много итераций. 

И это я не перечисляю совсем уж детсадовские инсайты, типа "вот я дебил, оказывается если SQL запросы не защищать, то и авторизацию по сути писать бесполезно - все равно кто хочешь зайдет" и "Ой, оказывается кроме меня на сайте ещё другие пользователи есть! И им ошибки показывать не надо!"  

В общем, надо сделать простое приложение, по возможности положить его онлайн, и заниматься его развитием.
Синтаксис языка это просто некая надводная часть айсберга. Помимо синтаксиса есть еще такие вещи как 
- runtime
- экосистема библиотек
- best practices
Ни один учебник языка обычно не в состоянии охватить эти все вещи. Да и не надо пихать в учебник. А чтобы испольовать на практике - надо найти команду которая что-то делает и влиться в нее на добровольных началах. Побыть учеником. Юнгой на корабле. Тебя будут ругать бить и пинать. Но это нормально. Только так. Из самых низов можно чего-то достичь.