I find java pretty ok, it was a headache for me at first, but I got my "Ah ha!" moment when trying to figure out a nested for-loop. Mind you, I studied c++ back in college and passed my basic and intermediate classes for it with A's, but my comprehension of the language was awful. Pretty much I got by simply because I followed the codes as is and didn't bother to grasp any concepts behind them, sort of like "Oh, this piece of code adds something to this array thing" and not understanding it any further, just enough to make it work in our assignments. But for many years after I didn't even touch anything related to programming until fairly recently and decided to go with java because living pretty close (driving distance) to chicago and seeing the listings they had for programming jobs, I figured I'd study something simple and work my way up to doing work complex enough for servers and databases.
I struggled for a little while because again my comprehension skills were still crap, but my determination was higher than that and i kept watching videos and reading things over and over, even with the basic stuff. Slowly, but surely, I was getting the hang of things and got good enough where I could make simple programs by doing pseudo-code in a notebook and then opening up eclipse and typing the logic out and presto, they worked. Once I got good enough with that and thought about trying to make games again, I decided to go that instead of the whole database/server route and started learning about libgdx. I haven't really done all too much with it since I've been busy with other things, but I'd love to get an indie company going at some point. Thing is, with libgdx it's very very tedious, not extremely difficult but tedious. I just switched to trying to learn unity3d a couple of days ago and already off bat it seems much simpler and with it using c# and that being similar to java in some respects, I'm probably going to stick with it for a while.