Convert Figma logo to code with AI

exercism logoexercism

Crowd-sourced code mentorship. Practice having thoughtful conversations about code.

7,321
1,030
7,321
391

Top Related Projects

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

183,979

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

  1. Visit https://exercism.org/ and create an account
  2. Choose a programming language to practice
  3. Install the Exercism CLI tool:
    # For macOS with Homebrew
    brew install exercism
    
    # For Windows with Chocolatey
    choco install exercism-io-cli
    
  4. Configure the CLI with your API token:
    exercism configure --token=YOUR_API_TOKEN
    
  5. Download and solve your first exercise:
    exercism download --exercise=hello-world --track=python
    
  6. 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.

183,979

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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