Code camps and uni are a good start, but if you want to actually know what you are doing, it takes years of experience, there is no way around this.
> Easy problems take me 2-5 hours
This is fairly typical of someone learning programming for the first time, it is also typical of someone coming out of uni with a degree. I wouldn't worry about it and just keep at it.
> Even if I get a problem right, I gain little to no satisfaction at this point.
Then quit this is the only reason people actually like programming.