I have just started making my first freemarker components and customazations. It is a slow process. But its cool, I would say take all the courses and go for it!!
You will need to have good CSS / HTML skills, and be at home in Google Chrome Dev Tools (elements, console). This will take some time to get experienced in.
Knowledge of the DOM and experience with basic programming is highly recommended.
First you need that background.
Then a very very good understanding of Studio and the relations between Page, Quilts, Components, Layouts, XML format, CSS, Wrapper is something you will probably need first before diving into Freemarker.