С чего вы начинаете писать cms?
Напишите лучше фреймворк. Даст больше опыта, чем CMS. CMS по сути монотонное создание формочек добавления/редактирования/удаления контента.
А в фреймворке будут более интересные задачи, попробуйте реализовать свою ORM, продумайте роуты, контроллеры, хелперы, попробуйте реализовать интерпретатор для языка Slim (slim-lang.com) или HAML и т.д.
Вот это будет действительно полезный опыт, которым можно будет даже поделиться потом с другими.
С рисования. Рисовать пути превращения типичных запросов сначала в данные, а потом данных в ответ, думая где в него может понадобиться внедриться (изменить, заменить, декорировать) по каким-то условиям и прикидывать как это внедрение и проверку условий осуществлять. Так получите схемы взаимодействия ядра и модулей.