Live data from Hacker News

On the Usability of Codecademy

programmingzen.com

51–60 of 85 posts

Re: On the Usability of Codecademy

#51
post #35
post #27

tl;dr - I think I fixed this problem in my app (iheartpy.com) using AIML. Caution: Still a work in progress. The whoe thing - I am a self-taught programmer. And I had been an extensive user of codeacademy myself. I realized this rather serious design flaw early on and tried to do something about it. Initially, I tried to right my own engine based on JSON but midway I discovered AIML. It suited the task perfectly. So…

Looks interesting, good design, didn't try it because it requires a login that gives a scary "THIS APPLICATION WANTS TO READ YOUR EMAIL ON GMAIL OH NOOOEESSSSS" login.

Huh? I actually use the App Engine Users API and zed I'm truly sorry for the crappy message that put you off.

What it meant was that the application would have access to see your email address i.e. google will disclose the address zed's-id@gmail.com

Unfortunately that's the default minimum permission set granted. I use it to send people a welcome message. Further, I promise not to be evil here: iheartpy.com/privacy.txt

Thanks for the encouragement!

Re: On the Usability of Codecademy

#52

I was a complete beginner at coding a few months ago. I really really wanted to learn, so I've tried going to local meetups designed to teach newbies to code and I've tried Codecademy. The problem I found was this tendency to start with the terminal as the teaching tool. The terminal is a black and intimidating hole to a beginner. Sure, I happily typed in 2+2 and got 4 as a result, and I understood how to store varia…

I would argue just the opposite actually. Eclipse has a very intimidating interface intended for experienced developers -- I remember when I was learning Java I used Eclipse and it was not user friendly at all.

Also, my first intro CS course also used Karel the Robot, and while it was cool that I could see this guy run around on the screen, I kept wondering "what is the point of this"? It didn't seem useful or related to writing actual programs at all. While it is less abstract than typing commands in a a prompt, it still felt very contrived.

But I guess that depends entirely on the student's motivation for learning to code -- are they looking to build a website? To understand how computers work? Because they like solving puzzles? Just to "try it out"? Teaching through a robot game like Karel probably would not be a good approach for those who want to get their hands dirty and build actual stuff (and Java is probably not the best first language). But for those who are more interested in understanding computer science / puzzles, those who value the problem solving aspect of programming, a tangible game like Karel might be better.

However, I'd still say CodeAcademy's approach with browser based lessons is much better -- there's a much lower barrier to getting started than downloading and setting up an IDE. Furthermore, they have complete control of their site design. I don't think introducing REPL at the beginning is the best idea, but it's better than hitting the student with a sledgehammer like Eclipse.

Perhaps a compromise would be a very simple game in Ruby/Python? There was a web based Ruby game on HN recently, intended for experienced programmers, in which you wrote the AI for a bot navigating through a map. Obviously that is too complicated for a beginner, but I imagine something simpler could be both appealing, engaging, and accessible.

Re: On the Usability of Codecademy

#53

Earlier quoted context omitted.

Just a quick correction to your comment - they are CodeCademy www.codecademy.com, not Code Academy www.codeacademy.org

one of those teams picked a bad name, given the obvious and inevitable confusion it would cause.

It'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.

Re: On the Usability of Codecademy

#54
post #47

I hate, hate, hate that the "delete" button (I guess it's "backspace" on other PCs) goes back a page in the browser.

It doesn't go back, it actually deletes the page from the internet. Since the page has been trashed, the only logical result is to take you back one history state.

(Sorry, couldn't resist.)

Re: On the Usability of Codecademy

#55
Semi tangentially, the 'backspace = go back' shortcut has accidentally deleted countless posts and emails of mine (and I'm sure many other people's). I really think that shortcut needs to go away.

Re: On the Usability of Codecademy

#56
They need to capture the common interpreter errors in the earlier lessons. So that if you try and do liz.length it doesn't come back with a reference error, but with an explanation of why that doesn't work.

Making friendly error messages in the general case is a hard problem, but doing so in a restricted environment where you know the most likely errors that beginners will make (which you can data mine over the long term) is not.

Re: On the Usability of Codecademy

#57

Earlier quoted context omitted.

one of those teams picked a bad name, given the obvious and inevitable confusion it would cause.

It'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.

Mayor 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

Re: On the Usability of Codecademy

#58
post #54
post #47

I hate, hate, hate that the "delete" button (I guess it's "backspace" on other PCs) goes back a page in the browser.

It doesn't go back, it actually deletes the page from the internet. Since the page has been trashed, the only logical result is to take you back one history state. (Sorry, couldn't resist.)

Whatever it does, it causes lots of totally unexpected data loss.

Re: On the Usability of Codecademy

#59
Another point to consider is the following:

People have been taught by their IT dept., their family members, friends, store clerks, etc., to not mess with a computer. This also applies to their automobiles, appliances, etc.

In short, a lot of people out there have been hit with a newspaper on the nose (various times) for trying something new.

So, they decide to learn a new hobby (or craft), and they spend (waste) a lot of time fighting the fear of breaking things.

Yet, we (as in hackers) all know that one can't really do much harm to a computer with a simple approach such as the one used by CodeCademy. But non-hackers do not know that. They fear the machine (or the result of making a mistake with it (their files will be deleted! - plays in their mind)).

So, CodeCademy, I suggest you help people overcome such fear by showing them what they can do before showing them how to do it.

The terminal is fine, actually, I find that it was a genius idea. But, learning how to code is not bound to a terminal. It is bound to thinking, problem solving, abstractions. A learner cannot be afraid to break things, otherwise, they will not learn.

Challenge their fear (and ignorance) from the start. Instead of throwing them crumbs in the form of a simple string.length exercise, show them that they:

- cannot mess their computer up by playing with your website - will not get a virus - should try again if they fail at something - programming (not coding) takes time to learn

How will you do that?

I can point north, and tell you that Nirvana is that way, but I cannot walk the roads for you.

Sit back, and think about what I'm saying.

Help people learn how to code by helping them get over themselves.

I wish your team the very best;

code_pockets

Re: On the Usability of Codecademy

#60
post #32

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 mi…

Thanks 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…

You should show solutions in video form so the users can see what they should have done.
Post reply on HN