CMS to trochę złożony projekt jak na początek nauki no ale...
Ponieważ CMS jaki jest każdy widzi (wie) do zestawu HTML+CSS (strona wizualna), JavaScript (niekoniecznie ale daje spore możliwości i interfejs staje się mniej toporny), PHP (przetwarzanie danych) trzeba będzie jeszcze pewnie dorzucić obsługę bazy (składowanie danych) czyli najprawdopodobniej język SQL w wybranej odmianie (zależnej od silnika itp.).
Krótko mówiąc znajomość PHP wystarczyć powinna dopóki wszystko będziesz robił sam, od podstaw. W przypadku chęci skorzystania bibliotek (szablony Smarty, MVC KohanaPHP itp.) warto wiedzieć więcej bo czasami te "systemy" mimo iż oparte o PHP wprowadzają własną "składnię pośrednią". Czasami zamiast pisać masę kodu warto doinstalować dodatkowy moduł - do PHP (PEAR), serwera (mod_cośtam) czy systemu (.so/.dll)...
Pomijam tu oczywiście absolutnie takie aspekty jak testy, zabezpieczenia czy konfiguracja serwera niezbędne przed "pokazaniem" CMS-a światu bo to choć nie należy to do nauki języka wymaga znajomości różnych rzeczy a często także dłubania się w czymś zupełnie innym niż "kod strony".
Najważniejsze to tzw. dobre zwyczaje, które trzeba w sobie wyrabiać - jeśli bierzesz się za CMS zobacz kod i jego układ (katalogi, pliki) w kilku gotowych rozwiązaniach po czym wybierz jakąś architekturę (MVC czy inną) i zacznij od... rozpiski co chcesz mieć i jak ma to wyglądać. Tylko nie szalej na początku bo przy pisaniu (od podstaw, przy braku rozeznania w języku i tworzeniu dość złożonych rzeczy), przez pewien długi czas z dodawaniem nowych funkcjonalności ilość kodu rośnie w postępie geometrycznym ;)
Samouczek na początku się przyda na pewno, potem już tylko Google zostanie...