Is it your first language? The first one is always hardest. The problem with C++ as well is it's really low level with pointers which can be hard to get your head around.
"Am I ever going to understand this crap!" is something every programmer has thought at some stage!!