Hacker News new | ask | show | jobs
Exercism.io – Become a better programmer (educationware.net)
149 points by Reddichu 4098 days ago
10 comments

You know what'd be a cool website/application? A front end to all these 'learn-to-code' things. Like how Mint is a front end to multiple bank's websites I could have one account that interfaces into project euler, rosalind, exercism, etc grabs exercises and checks them.
For anybody who wants to take a look at the types of exercises they have: all the exercises are on github [1]

[1] https://github.com/exercism/x-common

exercism.io has been an amazing tool to improve my Ruby skills (I can't speak to any other languages yet) although it seems that nitpicks have become a bit on the light side lately.

I'd challenge anyone to pick a language they are semi-comfortable in or a brand new-language and do a month of exercism exercises, refactoring as you get comments, and then moving onto the next exercise.

Even 15 minutes of code practice a day goes a long way.

and I should say, don't forget to critique your peers' code as well (gently and respectfully) as the site points out, reading and critiquing code is just as useful practice in getting better at coding as writing code.
I practically learned Swift by doing the first available exercises. (12 or so) when I ran out of exercises I started to implement new ones by taking the test cases from the ruby track (most similar to Apple's XCTest). Check out the available tracks http://synopsis.exercism.io/ Next I am exited about practicing Rust!
What is up with this blog spam? Especially with that link to yet another bookmarking site at the bottom...
Download some blob from the internet, then run it?

No, thanks

Fair enough. You can also build the binary yourself, since it's all open source. https://github.com/exercism/cli/releases
Looks like it just downloads/uploads plain data to the web service. I thought that in this age of internet technologies a web site would be enough.
I imagine the idea behind this was to avoid having to roll an in-browser IDE with the advantage of letting users use (and learn) the actual tooling that comes with that language.

I personally liked using my own editor, but the CLI didn't provide much added value in my opinion. The tests were enough for me and it was kind of annoying to have to run the CLI every time you're finished just to get the next exercise...

What about curl, wget, httpie?

Or how about lynx or w3m?

Plenty of people want to utilize CLIs and it's definitely beneficial when learning to program to get as much experience on a command line as possible.

Yes, but what's the value in this website having a dedicated application that I either have to trust blindly or evaluate and compile?

We already have this great sandboxed environment called a browser for running untrusted code from the internet. They could still offer endpoints for curl, if it's just about using the command line.

Thats my question exactly. Why roll your own client when you could use curl?
It was originally designed as more of a mentoring platform, so you would be led through it by a friend that knows the process. It's easier to trust a friend than a code review for a non programmer. It's also easier on the friend to be able to download just one binary and start mentoring than for her to have to find a bunch of requirements just to get the exercise.

It's enough to have to get all of the language's requirements installed...

programs who needs em
At least their code is on github and you can inspect..
Yeah. But reviewing 1900 lines of code before I've even seen a single one of their exercises? That doesn't sound like fun. I would be far more willing to run their app if I could try the actual service first.
So if the code was published as a 1900 line ruby gem, you'd be OK with it? Or would you review the 1900 line ruby gem?
It's not absurd to have a healthy distrust of foreign code running on personal machines, especially binaries from random people with a website while there's no discernible reason for a binary in the first place.
Extremely confusing website, are the exercises somewhere on the website or do I need to download an application or are the exercises on Github or what?

The screenshots make it look like CodeAcademy with messages/comments, but I can't find the exercises anywhere.

If you're just interested in the exercises without all the code review shenanigans that the site + CLI tool offer, they're all available on https://github.com/exercism (all the ones named `x$language`).
One of the issues is that it was originally designed as a mentoring platform, so you would be led through it by a friend that knows the process. The help link is very good for some languages, but could use some love for other languages.
Lots of info on using exercism.io at http://help.exercism.io/
You know, at first I found this was really good, but after trying it for a little I just completely forgot about it. Is it as good as everyone says? From the comments so far it makes me want to try it out again.
I really enjoyed it. It was pretty fun to see everyone else's submissions and read their comments. I also like the command-line interface. No GUI or web garbage to muck with to fetch or submit exercises.
When I saw that you expected users to join with their GitHub accounts, I assumed that the exercises would be made available on GitHub and the submissions would also happen through GitHub (on a user specified repo).
You can find the exercises on GitHub (see https://github.com/exercism/xhaskell for example). They have their own workflow for the review process ("nitpicks" and "iterations") which could be grafted onto GitHub issues and pull requests, but it's not necessary and might just make beginners more self conscious about their stuff being open to anyone on GitHub.
whats the purpose of a desktop app for this?
The CLI is easier to integrate into a normal development workflow, than clicking buttons, dragging files, or copy/pasting code to get the code into the browser.

I guess this supposes that "normal" means somewhere near the command-line, which might not be true for all developers.

If you mean CLI by desktop app, then... It strips out one of the most annoying parts of doing exercises for people who already have tools and like them... navigating to a website, using some crappy browser editor, file browser, and all that. No copy/paste.

This is the workflow:

    Ask for a new [language] exercise (it selects the next one for you to work on and downloads a test file and readme)
    Work on exercise locally in whatever environment you want
    Submit exercise and fetch the next one
There's no desktop app. There's a CLI, a collection of problems and their respective tests, and a website for some collaborative code review.