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:
- Visit the repository: https://github.com/gamontal/awesome-katas
- Browse through the categories and find a kata that interests you
- Click on the link to access the kata description or platform
- 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 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
Awesome Katas
A curated list of code katas
Table of Contents
- Introduction
- Dave Thomas's CodeKata
- Wonderland Clojure Katas
- SensioLabs PoleDev Katas
- Gaurav Arora's TDD Katas Collection
- Others
- Contribution
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
- Kata01: Supermarket Pricing
- Kata02: Karate Chop
- Kata03: How Big? How Fast?
- Kata04: Data Munging
- Kata05: Bloom Filters
- Kata06: Anagrams
- Kata07: How'd I Do?
- Kata08: Conflicting Objectives
- Kata09: Back to the Checkout
- Kata10: Hashes vs. Classes
- Kata11: Sorting It Out
- Kata12: Best Sellers
- Kata13: Counting Code Lines
- Kata14: Tom Swift Under the Milkwood
- Kata15: A Diversion
- Kata16: Business Rules
- Kata17: More Business Rules
- Kata18: Transitive Dependencies
- Kata19: Word Chains
- Kata20: Klondike
- Kata21: Simple Lists
Wonderland Clojure Katas
- Alphabet Cipher
- Card game War
- Doublets
- Fox Goose Bag of Corn
- Magic Square
- Tiny Maze
- Wonderland Number
SensioLabs PoleDev Katas
- Kata 1: (Form) DataTransformer
- Kata 2: (EventDispatcher) Event Listener / Event Dispatcher
- Kata 3: (Form) Inherit data / Virtual Form
- Kata 4: (Form) File Upload
- Kata 5: (Translation) Manage translations
Gaurav Arora's TDD Katas Collection
- String Sum Kata
- String Calculator Kata
- The Bowling Game Kata
- The FizzBuzz Kata
- The OddEven Kata
- The PrimeFactor Kata
- Game of Life
- Harry Potter
- LCD Digits
- Leap Year
- Mine Fields
- Poker Hands
- Recently Used List
- Reversi
- Yehtzee
- The Word Wrap Kata
Others
- Look and Say Sequence
- AKS primality test
- Roman Numeral Converter
- Natural sort order
- ES6 Katas
- .Net Code Katas
- Bank OCR
- Bubble sort
- Racing Car Katas
- Coding Dojo's KataCatalogue
- The OCP Kata
- The Birthday Greetings Kata
- Social Networking Kata
- Tell don't ask kata
- Functional Structures Refactoring Kata
- incremental_katas
- CLI Arguments Parser Kata
- Git katas
- Pdt256 katas (php, go, python, java, haskell, typescript)
- Opening Hours Kata
- The Quantum Katas
- Katalyst
- The Beverages Prices Refactoring Kata
- The Goose Game Kata
- Salary slip kata
- RPG Game kata
- Train Reservation kata
- Password-strength Checker TDD Kata
- Parrot Refactoring Kata
- Gilded Rose - Many languages
- Gilded Rose Original - C#
- Java by Comparison Kata
- DNA Transcription Kata
- Refactoring Golf Kata
- Promotion Text Kata
- Args Kata
- CodeCrafters(Build your own Git, Redis, Docker etc.)
- Tennis Refactoring Kata
Contribution
Please read the contribution guidelines.
License
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
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