I have a love/hate relationship with it myself. I've taken Java/C++ classes, passed them just fine, and then a year later forget everything I've learned. I love doing the algorithms, hate implementing them (the actual programming part), swear it off forever and then start fresh a year later. Almost every year. Around October.