On the Usability of Codecademy
This online tutorial grossly overestimates how much the layperson understands about computer languages. For the complete beginner, far too much is left unexplained.<p>No one actually codes using a REPL in a browser. Yet the site makes no attempt to explain why or how this REPL exists, or how it works.<p>It doesn't explain why I can only type in certain places on the screen.<p>It doesn't explain how to try again, or undo mistakes.<p>It doesn't explain why a string must be surrounded by quotes, but numbers must not be.<p>It doesn't explain why suffixing `.length` to a string (but not a number) does anything, versus any of 50,000 other English words I might have put in its place.<p>It's confusing that there are three sources of errors: those from the language, those from the tutorial, and those from the browser/internet. Where is this program running? Where does the code live? How does this code turn into action? How does the tutorial know what I'm doing?<p>Codeacademy doesn't explain how any of this magic happens. It just plops you down in front of a REPL and tells you to echo specific things.<p>Coding is not about learning the syntax that lets you type "Ryan".length. It's about learning the underlying concepts: the "why", not the "what".<p>Coding is best learned "the hard way".