По-моему, правильное начало работы с фреймворками выглядит примерно так:
- начинаешь работать с CMS, плюешься от того, как все через задницу
- везде, где возможно, пишешь простые решения сам, игнорируя функционал CMS, потому что там кромешный оверхед
- переходя к более комплексным задачам, начинаешь городить свои велосипеды для того, что требуется постоянно, начиная понимать, что типовые задачи примерно ложатся в одни и те же ходы и решения, а решение этих задач с прицелом на расширяемость, универсальность и безопасность требует достаточно сложных, но одних и тех же схем
- начинаешь читать документацию по фреймворкам, где эти самые схемы воплощены без тех ошибок, которых ты нагородишь, пытаясь создать что-то свое
- пользуешься тем фреймворком, который показался наиболее логичным и подходящим под задачи.