Note: This file, and the other docs in this repository, can be viewed on GitHub or as a website with easier navigation.
Welcome to the workspace for Exercism v3!
Exercism v3 is the third major iteration of Exercism, which we are aiming to launch around June 2020. It aims to both add exciting new features and to fix some of the issues present in v2, especially those around being blocked while waiting for a mentor. You can read the WIP plan here.
A summary of the main features:
- Restructured tracks: We are restructuring tracks to build new pathways containing Concept Exercises. These exercises will teach the key concepts that someone needs to know when learning a language. Completing a Concept Exercise will unlock other Concept and Practice Exercises. Concept Exercises will have automated feedback and approval, with no delays waiting for a mentor.
- Approaches: We will be automatically grouping similar solutions to Practice Exercises into Approaches. These will be supported with community-sourced articles expounding each approach, discussing its pros, cons, and potential usages.
- In-browser coding: We will be adding the ability to solve exercises within the browser. The CLI will remain as a first-class citizen, but v3 will allow people to work their way through a track without having to install anything.
- Improved profiles: Profiles will be getting an upgrade - with contributions throughout the site reflected in them. Mentoring, writing exercises, contributing to tracks, and maintaining parts of Exercism will all feature on profiles. Over time, contributing more will also have tangible improvements to your experience, with bumps up mentor queues and access to early testing features.
We are busy working away on the product and development work to add all this functionality, but we need contributors to help get our language tracks into the necessary state for v3. Our biggest need right now is for the implementation of Concept Exercises, but there are also lots of other tasks that we will need help with too. Throughout the development of v3, track maintainers will be creating issues tagged with status/help-wanted
. You can choose any issue and comment saying you want to work on it, and it will then be "assigned" to you.
To get started please explore the issues in the language you wish to contribute to:
(This list is sorted alphabetically.)
- Bash
- C
- C#
- C++
- Clojure
- CoffeeScript
- Common Lisp
- Dart
- Delphi
- Elixir
- Elm
- Emacs Lisp
- Erlang
- F#
- Factor
- Go
- Haskell
- J
- Java
- JavaScript
- Julia
- Kotlin
- OCaml
- Perl 5
- PureScript
- Python
- R
- Racket
- Raku
- ReasonML
- Ruby
- Rust
- Scala
- Scheme
- TypeScript
- x86-64-assembly
If you are a Track Maintainer, please start here.
- The features of v3: A deeper dive into the changes we're making to v3.
- Rationale for v3. An explanation about the rationale behind some of our our design decisions for v3.