There are things to like and dislike about both Khan Academy and Codecademy.
While the voiceovers for Khan Academy‘s programming talk-throughs are entertaining and informative, sometimes having to listen or use headphones isn’t convenient. Instructions for “assignments” and the review material are always clear. The most frustrating thing is their help/support (for technical issues) seems to be non-existent. Teachers and fellow students are always around and eager to help with content and material, however.
Codecademy just has text for instructional material which I like because I prefer reading over watching videos. I design and develop video training & eLearning for a living but I hate using either modality myself. My only complaint with Codecademy is the instructions for assignments are, to me, vague and confusing.
In both cases, I sometimes get frustrated that you can’t always be creative in how you solve a problem because the text you input often has to exactly match what the program is looking for to approve a correct answer. That’s not really a problem, however–I just learn by experimenting.