4 ms·
This online tutorial grossly overestimates how much the layperson understands about computer languages. For the complete beginner, far too much is left unexplai
by joblessjunkie 15y ago
This online tutorial grossly overestimates how much the layperson understands about computer languages. For the complete beginner, far too much is left unexplained.
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.
It doesn't explain why I can only type in certain places on the screen.
It doesn't explain how to try again, or undo mistakes.
It doesn't explain why a string must be surrounded by quotes, but numbers must not be.
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.
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?
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.
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".
Coding is best learned "the hard way".
- diwank 15y agoMaybe you're right about learning 'the hard way'. I too strongly believe in learning with rigorous practice. But, one has to understand that people take various approaches to learning and teaching. There cannot be a right way to teach given the multitude of learners now online.
- rauljara 15y ago> Coding is best learned "the hard way". Funny. There is a series of books by Zed shaw called "Learn 'x' the Hard Way". The books tells you to type things first; the explanation comes later. In my experience, the most important part of learning to program is that you can do something fun, quickly. If you enjoy the programming, you will continue with it, and then bother to learn the "why"'s. If you don't find it fun, why would you bother learning "why"? The Code Academy tutorial isn't perfect, but I do think it's a fun introduction. Importantly, it's a fun introduction that require almost no set up. I know it has limitations, but it is pretty awesome, and a much better path into Ruby than a lecture on object oriented programming. Not to knock the lecture. It's very important, in fact. I just think the lecture should wait until lesson 2 or 3.
- SatvikBeri 15y agoI agree. The vast majority of what I've read regarding teaching, and my personal experiments tutoring, have shown that alternating between different layers of abstraction is a far better approach than going purely bottom-up. One example is the popularity of Stanford Professor Andrew Ng's Machine Learning class. The course is almost entirely top-down, with concepts, then trying out basic code, then finally learning some of the Math behind the algorithms. But people have definitely been able to learn from the course-I remember seeing an HN post about a guy who built a self-driving RC car using the algorithms in the ML course.
- nealsales 15y agoJust a quick correction to your comment - they are CodeCademy www.codecademy.com, not Code Academy www.codeacademy.org
- mkramlich 15y agoone of those teams picked a bad name, given the obvious and inevitable confusion it would cause.
- thmcmahon 15y agoIt's also constant. Every single time someone tweets/blogs/talks about Codecademy they say Code Academy. It's inevitably followed by "actually it's Codecademy". It's a distraction from what otherwise seems to be a great idea.
- e2daipi 15y agoMayor Bloomberg managed to get it right. Unfortunately though, the BBC managed to misquote him in a recent article[1]. Edit: added reference. Update: seemes as though my email to them got 2/3 of the instances fixes; only the link at the bottom left! [1] http://www.bbc.co.uk/news/technology-16440126 http://www.bbc.co.uk/news/technology-16440126
- larrys 15y agoThe name was a bad choice. But they also have http://www.codeacademy.com http://www.codeacademy.com which redirects to codecademy.com
- benatkin 15y agoI seem to remember codeacademy being owned by someone else, a squatter or an entrepreneur who hadn't got around to doing tomething with it. If I do in fact remember this correctly, one explanation would be that they bought that domain after they'd received more investment money than they started out with.
- tiptup 15y agoAgree with you about Codecademy's assumption/expectation of a layperson's understanding is ambitious but your expectation of what needs to be explained kinda deviates from their aim. Yes, they should've expanded on some concepts but Codecademy should really concentrate on the 'what' and not the 'why' as that can be developed afterwards. Spending most teaching on the 'why' (like most adult learners would do) early on will put off some users off as they do not feel they are 'doing' much and quit/move onto something else. It is obvious the users' background covers a wide spectrum so Codecademy would have to draw a line somewhere and say here's the pre-requisites prior to starting the intro coding course. They may need to provide this background knowledge via a pre-sessional/foundation/principles course (or pintpoint users where to go if they don't) covering the barebone basics of computer science and computing as a task. Whether 'the hard way' is the best is really up to the learner - people learn in different styles so whatever gets their attention really. As a suggestion , Codecademy should provide a list of additional resources for eager learners who wants to understand the underlying concepts and/or provide links to other courses if this particular course is not useful for them.
- zds 15y agoThanks for the comments. I'm the cofounder of Codecademy - we're working to alleviate all of these issues. We do lots of user testing and have surfaced many of these problems on our own. Additionally, we make an effort to simplify a lot of concepts and ease users into them instead of explaining them immediately. We've noticed lots of users actually struggle when deciding what IDE or text editor to download. The REPL makes it easier for them. We'd love to hear more of your comments - shoot me an email at contact (at) codecademy (dot) com.
- vellum 15y agoYou should show solutions in video form so the users can see what they should have done.
- 1point2 15y agoThat is a good idea. Maybe an animated gif - just to get the ball rolling, then use video next screen or two on.
- jcslzr 15y agoThank you, in behalf of all the people that this experience is opening doors for us (at least for me is working)
- ramblerman 15y agoI agree with the overestimation of what the layperson understands. The idea of adding buckets of complexity by beginning with questions like "what is a REPL", "how does the code turn into action?", "how is my message getting to this site?" kind of takes all the fun and exploration out of the experience. As a programmer I dislike magic, I have to know what's happening under the hood. But had I kept asking why, I'd be studying electronics and electricity at the moment. The trust in the existing infrastructure has to begin somewhere, and I think the quick feedback from a REPL is a great learning tool. It whets the appetite, and students can then expand their circle of knowledge over time. Imagine if you had to understand E=mc^2 before being allowed to appreciate the night sky ;)