Convert Figma logo to code with AI

gamontal logoawesome-katas

A curated list of code katas

2,849
210
2,849
0

Top Related Projects

Issue tracker for Codewars

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

120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.

An opinionated list of awesome Python frameworks, libraries, software and resources.

:link: Some useful websites for programmers.

:books: Freely available programming books

Quick Overview

The "awesome-katas" repository is a curated list of code katas (programming exercises) for various programming languages and skill levels. It serves as a comprehensive resource for developers looking to practice and improve their coding skills through hands-on exercises and challenges.

Pros

  • Extensive collection of katas covering multiple programming languages and topics
  • Well-organized structure with categories for easy navigation
  • Regularly updated with new katas and resources
  • Includes links to external platforms and websites for additional practice

Cons

  • No built-in testing or validation system for completed katas
  • Some links may become outdated over time
  • Limited explanations or solutions provided for the katas
  • Might be overwhelming for beginners due to the large number of options

Code Examples

This repository is not a code library but a curated list of resources, so code examples are not applicable.

Getting Started

This repository is a collection of links and resources, so there's no specific code to run. To get started:

  1. Visit the repository: https://github.com/gamontal/awesome-katas
  2. Browse through the categories and find a kata that interests you
  3. Click on the link to access the kata description or platform
  4. Complete the kata using your preferred programming language and development environment

Competitor Comparisons

Issue tracker for Codewars

Pros of codewars.com

  • Interactive platform with a large community of users
  • Gamification elements like ranks and honor points
  • Supports multiple programming languages

Cons of codewars.com

  • Limited focus on specific kata types or categories
  • Less curated content compared to awesome-katas

Code Comparison

awesome-katas typically provides links to external kata resources:

- [Kata01: Supermarket Pricing](http://codekata.com/kata/kata01-supermarket-pricing/)
- [Kata02: Karate Chop](http://codekata.com/kata/kata02-karate-chop/)

codewars.com offers embedded code challenges:

def multiply(a, b):
    return a * b

# Write your code here

Summary

codewars.com is an interactive platform with a large user base and gamification elements, supporting multiple languages. However, it may lack the specific focus and curation found in awesome-katas. awesome-katas serves as a curated list of kata resources, while codewars.com provides an integrated environment for solving and discussing coding challenges. The choice between the two depends on whether you prefer a comprehensive platform or a curated list of external resources.

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

Pros of exercism

  • Offers a structured learning platform with mentorship and feedback
  • Supports 50+ programming languages with tailored exercises
  • Provides a command-line interface for easy exercise management

Cons of exercism

  • Requires account creation and setup process
  • May have a steeper learning curve for beginners
  • Limited flexibility in exercise selection compared to curated lists

Code comparison

exercism:

class TwoFer
  def self.two_fer(name = "you")
    "One for #{name}, one for me."
  end
end

awesome-katas:

def fizz_buzz(n):
    return 'Fizz'*(n%3==0) + 'Buzz'*(n%5==0) or str(n)

Summary

exercism is a comprehensive platform for learning and practicing coding skills across multiple languages, offering structured exercises and mentorship. It provides a more guided experience but requires setup and account creation.

awesome-katas is a curated list of coding katas from various sources, offering a wide range of challenges without a specific platform. It's more flexible but lacks the structured approach and feedback system of exercism.

Both repositories serve as valuable resources for developers looking to improve their coding skills, with exercism focusing on a platform-based approach and awesome-katas providing a collection of diverse challenges.

120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.

Pros of interactive-coding-challenges

  • More comprehensive and structured content, covering a wide range of programming topics
  • Includes detailed explanations, unit tests, and multiple solutions for each challenge
  • Actively maintained with regular updates and contributions

Cons of interactive-coding-challenges

  • Focused primarily on Python, limiting its usefulness for developers working with other languages
  • May be overwhelming for beginners due to its extensive content and complexity
  • Requires more setup and environment configuration to run the challenges locally

Code Comparison

interactive-coding-challenges example (Python):

class Solution(object):
    def two_sum(self, nums, target):
        if nums is None or target is None:
            raise TypeError('nums or target cannot be None')
        if not nums:
            raise ValueError('nums cannot be empty')
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return None

awesome-katas example (JavaScript):

function twoSum(nums, target) {
  const map = new Map();
  for (let i = 0; i < nums.length; i++) {
    const complement = target - nums[i];
    if (map.has(complement)) {
      return [map.get(complement), i];
    }
    map.set(nums[i], i);
  }
  return [];
}

Both repositories offer coding challenges, but interactive-coding-challenges provides a more structured and comprehensive approach, while awesome-katas offers a broader range of languages and simpler challenges suitable for beginners.

An opinionated list of awesome Python frameworks, libraries, software and resources.

Pros of awesome-python

  • Comprehensive collection of Python resources, libraries, and tools
  • Well-organized into categories for easy navigation
  • Regularly updated with new content and contributions

Cons of awesome-python

  • Lacks hands-on coding exercises or challenges
  • May be overwhelming for beginners due to the sheer volume of information

Code comparison

Not applicable, as both repositories are curated lists without specific code examples.

Key differences

awesome-katas:

  • Focused on coding exercises and challenges (katas)
  • Primarily aimed at improving programming skills through practice
  • Covers multiple programming languages

awesome-python:

  • Extensive collection of Python-specific resources
  • Includes libraries, frameworks, tools, and learning materials
  • Serves as a comprehensive reference for Python developers

Use cases

awesome-katas:

  • Ideal for developers looking to improve their problem-solving skills
  • Useful for interview preparation and algorithmic practice
  • Suitable for coding dojos and group learning sessions

awesome-python:

  • Excellent resource for Python developers seeking libraries or tools
  • Helpful for beginners learning about Python ecosystem
  • Valuable reference for staying up-to-date with Python developments

Community engagement

Both repositories have active communities, but awesome-python has significantly more stars, forks, and contributors, indicating a larger and more engaged user base.

:link: Some useful websites for programmers.

Pros of Best-websites-a-programmer-should-visit

  • Broader scope, covering various aspects of programming and career development
  • Regularly updated with new resources and websites
  • Organized into clear categories for easy navigation

Cons of Best-websites-a-programmer-should-visit

  • Less focused on hands-on coding practice
  • May overwhelm beginners with the sheer number of resources
  • Some links may become outdated over time

Code comparison

While both repositories are primarily curated lists, they don't contain significant code samples. However, here's an example of how they structure their content:

Best-websites-a-programmer-should-visit:

## Learn to Code
* [FreeCodeCamp](https://www.freecodecamp.org)
* [Codecademy](https://www.codecademy.com)

awesome-katas:

## Kata Websites
- [Codewars](http://www.codewars.com/)
- [LeetCode](https://leetcode.com/)

Both repositories use markdown formatting to organize their lists, but Best-websites-a-programmer-should-visit tends to have more detailed categorization and descriptions for each resource.

:books: Freely available programming books

Pros of free-programming-books

  • Extensive collection of free programming resources across various languages and topics
  • Regularly updated with community contributions
  • Well-organized structure with categories for different types of resources (e.g., books, courses, interactive tutorials)

Cons of free-programming-books

  • Lacks focus on practical coding exercises or challenges
  • May overwhelm beginners with the sheer volume of resources available
  • Some links may become outdated or broken over time

Code comparison

Not applicable for these repositories, as they primarily consist of curated lists rather than code samples.

Additional notes

free-programming-books serves as a comprehensive resource for learning programming through various mediums, while awesome-katas focuses specifically on coding exercises and challenges. The former is better suited for those seeking a wide range of learning materials, while the latter is ideal for developers looking to improve their skills through practice.

Both repositories benefit from community contributions and regular updates, making them valuable resources for programmers at different stages of their learning journey. The choice between the two depends on the user's specific needs and learning preferences.

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

banner

Awesome Katas Awesome

A curated list of code katas

Table of Contents

Introduction

A kata, or code kata, is defined as an exercise in programming which helps hone your skills through practice and repetition. Dave Thomas @pragdave, started this movement for programming. This project aims to provide you with a list of some kata exercises that I've found in the Internet and the Github community. These exercises vary from general to more complex algorithms and real life situations for you to try using your preferred programming language. Remember that code katas are not quizzes or puzzles. You should not only try to 'solve' it, but find a very good solution, following best practices of the programming language you are using.

CodeKata

Wonderland Clojure Katas

SensioLabs PoleDev Katas

Gaurav Arora's TDD Katas Collection

Others

Contribution

Please read the contribution guidelines.

License

CC0