exercism
Crowd-sourced code mentorship. Practice having thoughtful conversations about code.
Top Related Projects
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
All Algorithms implemented in Python
:books: Freely available programming books
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Short code snippets for all your development needs
Quick Overview
Exercism is an open-source platform for learning and practicing programming skills through coding exercises and mentorship. It offers a wide range of programming languages and challenges, allowing users to improve their coding abilities while receiving feedback from experienced mentors.
Pros
- Free and open-source platform accessible to all
- Supports a large number of programming languages (50+)
- Provides mentorship and community feedback on solutions
- Offers both guided learning paths and individual practice exercises
Cons
- Some languages have limited exercises or mentors available
- The mentorship process can sometimes be slow, depending on mentor availability
- The web interface may feel overwhelming for beginners
- Some exercises may have unclear or ambiguous instructions
Getting Started
- Visit https://exercism.org/ and create an account
- Choose a programming language to practice
- Install the Exercism CLI tool:
# For macOS with Homebrew brew install exercism # For Windows with Chocolatey choco install exercism-io-cli
- Configure the CLI with your API token:
exercism configure --token=YOUR_API_TOKEN
- Download and solve your first exercise:
exercism download --exercise=hello-world --track=python
- Submit your solution:
exercism submit /path/to/solution/file
Competitor Comparisons
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
Pros of freeCodeCamp
- Larger community and more contributors, leading to faster development and updates
- Broader curriculum covering multiple programming languages and web technologies
- Integrated learning platform with interactive coding challenges and projects
Cons of freeCodeCamp
- More complex codebase due to its larger scope, potentially harder for new contributors
- Less focused on specific language mastery compared to Exercism's targeted approach
- May be overwhelming for beginners due to the vast amount of content
Code Comparison
freeCodeCamp (JavaScript):
function confirmEnding(str, target) {
return str.slice(str.length - target.length) === target;
}
Exercism (Python):
def is_isogram(string):
return len(string) == len(set(string.lower()))
Both repositories offer coding exercises, but their implementations differ. freeCodeCamp's example shows a JavaScript function for string manipulation, while Exercism's Python code demonstrates a concise solution for checking isograms. This reflects the different approaches: freeCodeCamp's broader web development focus versus Exercism's language-specific mastery.
All Algorithms implemented in Python
Pros of Python
- Comprehensive collection of algorithms implemented in Python
- Well-organized structure with algorithms categorized by type
- Serves as an educational resource for learning algorithm implementations
Cons of Python
- Lacks interactive coding exercises and challenges
- Not focused on language-specific features or best practices
- May not provide immediate feedback or testing for implementations
Code Comparison
Python (Bubble Sort implementation):
def bubble_sort(array):
n = len(array)
for i in range(n):
for j in range(0, n - i - 1):
if array[j] > array[j + 1]:
array[j], array[j + 1] = array[j + 1], array[j]
return array
Exercism (Example exercise stub):
def two_fer(name=""):
pass
Summary
Python focuses on providing a wide range of algorithm implementations, serving as a reference and learning resource. Exercism, on the other hand, offers interactive coding exercises across multiple languages, emphasizing practice and mentorship. While Python is excellent for studying algorithms, Exercism provides a more structured learning experience with immediate feedback and community support.
:books: Freely available programming books
Pros of free-programming-books
- Extensive collection of free programming resources across various languages and topics
- Community-driven project with regular updates and contributions
- Easily accessible without registration or setup
Cons of free-programming-books
- Lacks interactive coding exercises or hands-on practice
- No structured learning path or curriculum
- Limited feedback or guidance for learners
Code comparison
Not applicable, as both repositories don't primarily contain code. free-programming-books is a curated list of resources, while exercism provides coding exercises and a platform for learning.
Additional notes
exercism offers:
- Interactive coding exercises with mentorship
- A structured learning path for various programming languages
- Automated tests and feedback on submitted solutions
free-programming-books provides:
- A comprehensive list of free programming books, courses, and resources
- Resources for various skill levels, from beginners to advanced programmers
- Multiple languages and formats (e.g., ebooks, online courses, podcasts)
Both projects aim to support programmers in their learning journey, but they take different approaches. exercism focuses on hands-on practice and mentorship, while free-programming-books offers a vast collection of learning materials for self-study.
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Pros of developer-roadmap
- Provides a comprehensive visual guide for various tech career paths
- Regularly updated with current industry trends and technologies
- Offers interactive roadmaps with detailed explanations for each topic
Cons of developer-roadmap
- Focuses on breadth rather than depth of knowledge
- May overwhelm beginners with the sheer amount of information
- Lacks hands-on coding practice and exercises
Code comparison
While developer-roadmap doesn't provide code examples, Exercism offers practical coding exercises. Here's a sample exercise from Exercism (Python track):
def leap_year(year):
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
developer-roadmap, on the other hand, focuses on providing visual roadmaps and explanations rather than code examples.
Summary
Exercism is an interactive platform for learning programming languages through hands-on exercises and mentorship. It offers a wide range of language tracks and provides immediate feedback on submitted solutions.
developer-roadmap serves as a comprehensive guide for aspiring developers, offering visual roadmaps for various tech career paths. It provides a broad overview of technologies and concepts but doesn't include coding exercises.
While Exercism excels in practical coding practice, developer-roadmap shines in providing a big-picture view of the skills needed for different tech roles. The choice between the two depends on whether you're looking for hands-on coding experience or a comprehensive career guide.
Short code snippets for all your development needs
Pros of 30-seconds-of-code
- Offers quick, bite-sized code snippets for easy learning and implementation
- Covers a wide range of JavaScript concepts and utilities
- Regularly updated with new snippets and improvements
Cons of 30-seconds-of-code
- Lacks structured learning paths or progression
- Limited in-depth explanations or context for each snippet
- No interactive coding exercises or feedback system
Code Comparison
30-seconds-of-code snippet:
const deepClone = obj => {
if (obj === null) return null;
let clone = Object.assign({}, obj);
Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
);
return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : clone;
};
Exercism example (JavaScript track):
export function twoFer(name = 'you') {
return `One for ${name}, one for me.`;
}
Summary
30-seconds-of-code provides quick, practical code snippets for various JavaScript tasks, making it ideal for developers looking for quick solutions or inspiration. However, it lacks the structured learning approach and interactive exercises offered by Exercism. Exercism focuses on comprehensive language learning through guided exercises and mentorship, making it more suitable for beginners or those seeking in-depth understanding of programming concepts.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
For support, please post in the new Exercism forum. New posts here will be closed.
Welcome to Exercism
Where to open issues
For the time being we are triaging all issues from our forum. Please start a new topic there for your issue (presuming there isn't one already). Issues opened here will be automatically closed and you will receive a message redirecting you to the forum.
Feeling uncomfortable?
If you need to report a code of conduct violation, please email us at abuse@exercism.org and include [CoC] in the subject line. We will follow up with you as a priority.
Where to find the code
The code for the website lives in exercism/website. The code for the old website is in this repository, in the v1.exercism.io branch.
Who's behind Exercism?
Read about our Team on the site: https://exercism.org/team
Top Related Projects
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
All Algorithms implemented in Python
:books: Freely available programming books
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Short code snippets for all your development needs
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot