How I Use It
I used Codecademy in an introductory high school web design course. The course was offered as an elective. I was attracted to Codecademy because I had used it myself a while back to brush up on Python. I thought that it would be good to give students a basic introduction to HTML and CSS while working at their own pace. While it worked well for some students, it did not work well for all of them. As intended, I spent quite a bit of time helping the students who needed more support. It would have helped me, though, if I could have had some sort of dashboard to see all of my students' progress. Or if there were some kind of integration with an LMS, that might have allowed me to better support my students as they attempted to move through the lessons.
One major complaint that a few my students had is that they had to read too much. Although I found the instructions perfectly adequate in length, my students often had difficulty moving through the lessons because they were trying to skim instead of reading through the instructions carefully.
Overall, I still really like Codecademy. It just didn't work well for my particular class setup.
Codecademy is great for those who have a genuine interest in learning to code or work well independently. I found it difficult to use with a class of 20 high school students. There is no way to set up a teacher or administrator account for a group of users. My impression is that Codecademy was designed more for individuals who wanted to learn on their own, which is great, but that makes it a little less than ideal for a regular class. If offered as an after school club of highly-motivated or interested kids, I think it would work well.