Skip to content

Onboarding both new and experienced programmers well #18

@kytrinyx

Description

@kytrinyx

The onboarding used to be horribly, absolutely, utterly broken. It was incomprehensible, and full of dead ends. It's no longer completely broken, but it's still not great.

I'm opening this issue in the hopes of finding ways of further improving the onboarding, including the option of scrapping what we have and trying something completely different.

When we were doing user research we learned that:

  • experienced programmers were likely to successfully onboard, no matter how terrible the user experience was. They needed a quick overview, a link to download the client, and reassurance that the thing they were installing on their computer was not going to do nefarious things.
  • newbies were thrown by almost everything. Jargon was intimidating. They weren't familiar with the command-line at all, they didn't necessarily know what GitHub was and why the hell Exercism had anything to do with that, and they'd end up on some random page to download the CLI and not understand where they were or what was supposed to happen next.

Also, it seemed like too much explanation/instructions frustrated experienced users, who basically knew the details, just needed to get it done.

I am worried that giving the same instructions to both groups of programmers. If we cater to newbies, the experienced programmers risk thinking that this is not for them, and being frustrated with the unholy level of detail. If we cater to experienced programmers, then newbies are likely to feel stupid and give up.

So as a first step in trying to address the broken onboarding, I decided to have two "how it works" pages. This might not be the best solution, but it did address some of the pain-points that we found when doing the user research.

@siakaramalegos noted in a discussion elsewhere:

I sometimes wonder if having separate sets of instructions for newbies vs experienced programmers helps. For one, I think it reinforces a fallacy that there is some high bar that is difficult to cross to become an "experienced programmer". When is that bar crossed? Secondly, I sometimes wonder if more experienced programmers are better at following directions or not. I think maybe they can troubleshoot bugs better, but not necessarily follow directions better.

These are great observations. I think that the biggest bar is context. Experienced programmers have a lot of it, newer programmers usually don't. As a result, I expect that one could give very short, compact instructions to experienced programmers, but not to newer programmers.

My impression is that the biggest barrier in all of this for new programmers is understanding PATH, though at the moment we aren't even really addressing that separately.

Another great comment from @siakaramalegos:

it might be even better if someone good at animations just created a few short (<1 min) videos explaining what exercism is and how it works/how to use it.

I'd love to have short video/animations.

Someone suggested using animated GIFs, and I have a problem with those, personally, because they are always moving and I can't think while they're in view. I also become physically unwell (I get the same thing with sites that have videos as the background to their homepages).

I have been thinking about how we could make an interactive guide to simplify the "CLI installation" portion of the onboarding. This is described in detail here: exercism/exercism#2535

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions