Recently I decided to try the courses at Codecademy just to get a feel for what it is like to be learning the fundamentals from the ground up, again. I've found the courses to be very well divided up into basic concepts that a person can take in at their own pace. There is no failing these courses. Progress is kept with 'tracks' that indicate what sections and courses have been completed.
I would recommend this site to anyone who would like to start learning from the very basics, or who would like to just refresh their knowledge and refine their skill base.