Level up your programming skills.
Ruby HTML CSS JavaScript CoffeeScript Shell
Latest commit b2c539f Oct 2, 2016 @kytrinyx kytrinyx committed on GitHub Merge pull request #3144 from cgrayson/master
fix minor formatting in Mac CLI readme
Permalink
Failed to load latest commit information.
api Revert "Merge pull request #3091 from nickborromeo/replace-xapi-exists" Oct 1, 2016
app Add missing numbers in profile progress Oct 1, 2016
bin Add script to set up git hooks Jul 27, 2016
config Add /version route that displays meta information Jul 27, 2016
db Removing membership_requests migration. Sep 18, 2016
docker Tell docker users to run bin/setup. May 24, 2016
docs Add note about @ mentions in maintainer docs Oct 1, 2016
frontend Fix heroku lineman buildpack for cedar-14 Oct 1, 2016
lib Fix bug in viewer filter Oct 2, 2016
public Remove all compiled assets from public directory Oct 1, 2016
scripts Add script to set up git hooks Jul 27, 2016
test Fix bug in viewer filter Oct 2, 2016
x fix minor formatting in Mac CLI readme Oct 3, 2016
.coveralls.yml Add coveralls. Setup travis to run with coveralls code coverage. Jan 18, 2014
.editorconfig initial editorconfig file Dec 6, 2013
.gitignore Remove all compiled assets from public directory Oct 1, 2016
.rubocop.yml Exclude node_modules/* from Rubocop scan Aug 8, 2016
.rubocop_todo.yml Auto-correct RuboCop offenses and re-gen todo May 12, 2016
.ruby-gemset update dependencies 2 Jul 4, 2014
.ruby-version.example Revert the upgrade to 2.3.0 (temporarily). See #2733. Jan 22, 2016
.simplecov Add coveralls. Setup travis to run with coveralls code coverage. Jan 18, 2014
.travis.yml Add compilation step to make travis happy Oct 1, 2016
ATTRIBUTION.md public/img/tracks: resize, crop, etc to fix #2394 Jun 5, 2016
CHANGELOG.md Add an un-changelog Mar 25, 2015
CODE_OF_CONDUCT.md Update COC to latest Contributor Covenant version Dec 7, 2015
CONTRIBUTING.md Update Compass instructions for compiling the csss to production Sep 20, 2016
Dockerfile Docker instructions include fetching, committing seed data. May 24, 2016
Gemfile bump rogue version and use ruby for crystal syntax Jul 27, 2016
Gemfile.lock bump rogue version and use ruby for crystal syntax Jul 27, 2016
LICENSE License under AGPL. Fixes #286. Jul 31, 2013
Procfile Don't start mailcatcher in production Jan 22, 2014
Procfile_Vagrant.example Add Procfile_Vagrant.example, add to .gitignore, and update CONTRIBUT… Sep 1, 2015
README.md Tweak punctuation in README Oct 1, 2016
Rakefile Auto-correct RuboCop offenses and re-gen todo May 12, 2016
STAGING.md Add more staging notes Apr 8, 2015
app.rb Add feature to request team membership. Sep 18, 2016
config.rb Move public dir out of lib Nov 22, 2015
config.ru Auto-correct RuboCop offenses and re-gen todo May 12, 2016
docker-compose.yml Tell docker users to run bin/setup. May 24, 2016
lineman.json Move public dir out of lib Nov 22, 2015
package.json Add compilation step to make travis happy Oct 1, 2016
static.json Fix heroku lineman buildpack for cedar-14 Oct 1, 2016
x.rb Refactor language/track/contribute page. Jul 31, 2016

README.md

Exercism

Build Status Code Climate Gemnasium Coverage Status Supporting 24 Pull Requests Join the chat at https://gitter.im/exercism/support

Programming is hard. With practice it gets easier.

Exercism gives you hundreds of practice problems in over 30 programming languages, and a place where you can get feedback on your solutions.

Exercism is especially well-suited for three types of practice:

  • gaining fluency in your first programming language
  • ramping up in a new programming language
  • developing the skills to be a great lead developer: code review, refactoring, and mentoring

Using Exercism

The process happens in two places.

  1. Solve exercises in your local development environment.
  2. Discuss solutions on the Exercism website.

Once you submit the solution to an exercise you can:

  • learn by listening: receive feedback on your code.
  • learn by reading code: browse all the other solutions to exercises you submitted solutions to.
  • learn by sharing your experience: provide feedback on other people's code.

Even in the most trivial exercise, there are many important things to discuss. Simplicity, naming, readability, idioms, good use of existing libraries, performance, and much, much more.

Get started using exercism on the exercism.io website.

Getting Help

Are you stuck trying to solve an exercise?

Submit the unfinished solution and describe in a comment on the website what you tried, and where you're stuck.

Or jump into the support chat, and we'll try to help you out.

Did you find a bug?

That's always frustrating. Go ahead and open a GitHub issue, and we'll help figure out what's going on.

Is someone being unpleasant?

We have a Code of Conduct.

If you need to report something, please email @kytrinyx.

Contributing to Exercism

There are many ways to contribute to Exercism, and only a few of them involve writing code.

Do you like mentoring people? Hang out in the support chat, or submit an exercise so you can give feedback to people who have submitted it, too.

Are you a language enthusiast? Help other people fall in love with your language by getting involved with one of the Exercism language tracks, or by giving feedback to people who submit solutions to a track.

Do you love making enticing user experiences? Help us rethink the profile and account pages. Or the dashboard. Or maybe redesign the homepage. Or the solutions page.

Do you know how to organize information? Help us improve the onboarding experience for people who are new to Exercism, and figure out how to make our contributing docs understandable, or how to better organize our language track documentation.

Do you want to improve your skills in a particular programming language? Help add more exercises, or watch the repository for the language track so that you can help review pull requests and respond to issues.

Do you want to get started contributing to open source? Check out issues with the "good first patch" label.

We're a friendly bunch, and we're happy to help you help us, so don't be scared to ask about anything. We've got a chat room and there are usually people around there, or just ask right in the issue you're wondering about.

Setting up your development environment

If you want to work on a language track, you don't need to run the exercism.io website locally. Just clone down the repository of the language you're interested and follow the instructions in the README and Contributing Guide there.

If you want to work on the Exercism website, check out the installation instructions in the Contributing Guide in this repository.

What's Going On at Exercism?

We send out a weekly "behind the scenes" update about new language tracks, bugs that crop up, features that people are working on, and other Exercism-related tidbits. You can sign up for the newsletter here.

Thank you

Exercism.io is free and open source, and many, many people have contributed to the project. This is a project that started by accident and could never have gotten off the ground by the efforts of any single person.

Thank you! ❤️

License

See the LICENSE file.