Live data from Hacker News

On the Usability of Codecademy

programmingzen.com

11–20 of 85 posts

Re: On the Usability of Codecademy

#11
As it stands, I only see codeacademy being useful for programmers who are new to Javascript. If you're completely new to programming, there are too many problems, like the article mentions, that are difficult to get past without knowing... programming!

Re: On the Usability of Codecademy

#12
I did the same thing with my sister(who doesn't know any code) and the same issues came up with her as well. This is definitely a design issue. How to make the UI better?

In the initial stages of learning of learning a concept, have a dialogue appear for each error saying something like:

When you're coding in the real world no one is going to tell you this, but we've got your back! You forgot the quotes around your name. This problem occurs because some programming languages are case-sensitive, meaning that you have to type it in exactly the way Javascript wants you to. We'll give you a heads up about using quotes 4 more times and after that you're on your own.

To fix this error type in: "Janet".length instead of Janet.length

Re: On the Usability of Codecademy

#13
I love codecademy, but I always wondered if it would be better to ease a newbie into programming with a 'childrens' UI like Scratch or Alice. It wouldn't build up any coding muscle memory, but it might help them get use to the general look and feel of code before asking them to type it out themselves.

Re: On the Usability of Codecademy

#15
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".

Re: On the Usability of Codecademy

#16
A large part of learning to program is testing, then debugging. If 2+3 didn't work, my natural course of action would be to read the instructions again, and then try 2+2.

CodeAcademy is trying to teach people to code, and I think a big part of that, is learning to navigate small problems, debug, and follow instructions. If they just gave instructions that said "type the following", that would take away these problems - but what would that achieve? That would be like a professor not giving repeat questions on an exam, and a student complaining he wasn't clear enough.

Re: On the Usability of Codecademy

#17
post #9

Codecademy have done a great job at reducing something that can be very difficult down to laymans terms but its difficult deciding just how far down the rabbit go they need to go. While the problems with the REPL and trying to delete text are obviously a problem (and a hard one to solve), I'm not sure the issue with leaving out the quotes is. Obviously if the text was replaced with "I don't know anything called liz"…

For some of these early lessons at least, could they not have 'curated' error tests?

ie. for this one, since missing the quote is an obvious error, why not match the string entered with a regex (or your parsing tool of choice) and look for the presence of exactly 2 quotes, with at least one character in between. If it's not there, print "That didn't work. Did you miss out a quote?"

In fact, if they log all the things people type in, they could analyse it for all the most common errors and then start attacking each of those.

Re: On the Usability of Codecademy

#18
post #7

I apologize in advance if what I'm about to say may sound harsh, mean or elitist, but the truth is programming isn't for everyone. While the intent of the article is very noble ("improving the usability of Codecademy"), it also raises very important questions about programming tutorials in general. How much "holding by the hand" should a tutor do, really? The examples the author gives are very relevant to my point. T…

What you call "holding a student by the hand" I call "teaching." It's not legitimate to assume that some subject should only be reserved for an elite group just because it is difficult to teach and learn; the failure in this case is in a lack of good teachers.

Re: On the Usability of Codecademy

#19
As Codecademy is targeting a large demographic with varying ability of coding (i.e. from basic MS Office users because it's part of their day job to people who are more switched on with tech stuff but never bothered to learn coding), they need to work out how to cater them all. I'm personally in the 'I use Office in my day job and have some interest in the latest tech trends but no knowledge of how things work' segment.

Adding more expansive instructions should help as their current one/two-liner approach doesn't really explain anything for the absolute beginners. However, this can put some slightly more knowledgeable learners off by being too pedantic so Codecademy needs to find the right balance. Within their existing UI, they can probably do this via offering more 'Show Hints' per task like certain computer games where Hint 1 is the cryptic-ish hint, Hint 2 gives slightly more context and Hint 3 for really struggling learners. Users can then self-select how much help they need and don't feel like they are being spoonfed. If Codecademy is really targeting the absolute (but willing) beginners, they need to realise these users are unlikely to google for help as they are used to self-contained courses a la CBT courses in their day jobs.

Agree with imjared about the sweet badges - if they want to get the crowd (or maybe just me) going, they should start offering the options for users to buy some embroidered patches or 3D printed versions of the achievements!

Re: On the Usability of Codecademy

#20
post #10
post #7

I apologize in advance if what I'm about to say may sound harsh, mean or elitist, but the truth is programming isn't for everyone. While the intent of the article is very noble ("improving the usability of Codecademy"), it also raises very important questions about programming tutorials in general. How much "holding by the hand" should a tutor do, really? The examples the author gives are very relevant to my point. T…

It's not hand holding when you're trying to introduce someone to programming. Learning to use a REPL isn't a test to separate good programmers from bad. It's something that has to be learned first.

I think babarock phrased it poorly but he's not entirely wrong. I learned to program (like many others of my generation) by futzing around on my C=64's repl. It wasn't a great system by any stretch of the imagination, but actually playing with it (and failing) got me to learn it so well. I think the C=64's repl was simpler for users than Javascript's, which certainly helped. The goal should be to get people to play with it, not to get them to type "Ken".length and press return.

The things we know best are the things we play around with. The things I know the least well are those where I only learned the happy-path through some training procedure. I learned to read and speak and cook breakfast and ride a bike and program and everything else mainly by trying and failing.

(The bicycle is actually an interesting case, because we try to teach the happy-path with training wheels, though this essentially inverts the controls we're trying to learn. It's a confidence-builder, not a skill-builder.)

Last year I took a class to learn a new skill. The teacher was great: he was enthusiastic, and after each teaching point he got us to try it by saying "Now let's go screw it up and learn!" We spent a lot more time screwing it up than being lectured, thankfully.

I don't know much about "Codecademy", but based on this I would say it's not really going to help most people, but not because of these minor usability gripes. The goal shouldn't be to create an 'intuitive tutorial'. You're trying to teach people a new way of thinking. The goal should be to provide an environment where the essence (type something, get result) is completely obvious, and where more information is always available upon request, and where they are encouraged to play around. What I'm seeing is an environment where there's a right and a wrong. It makes programming look like a 1980's MS-DOS adventure game but harder.

Post reply on HN