I think the classic way to start is with something like what you want to end up with, then mutate it to learn what happens.

Having a symbol reference sheet is handy for math, though. And some of the larger systems have oodles of docs, like Komascript or the Memoir class.

/