This repository is now archived, and its content has been exploded into the various tracks and docs repos. It now acts as a holder for any content that hasn't been migrated, and any PRs that weren't merged. Please open those PRs against the relevant track repo. Thank you to everyone who contributed to this stage of our journey towards v3
Note: This file, and the other docs in this repository, can be viewed on GitHub or as a website with easier navigation.
Exercism - v3
Welcome to the workspace for Exercism v3!
Exercism v3 is the third major iteration of Exercism, which we are aiming to launch during 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
- Nim
- OCaml
- Perl 5
- Pharo Smalltalk
- PureScript
- Python
- R
- Racket
- Raku
- ReasonML
- Ruby
- Rust
- Scala
- Scheme
- Swift
- TypeScript
- x86-64 Assembly
If you are a Track Maintainer, please start here.
More information
- 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.