Skip to content

hop-along-polly/kata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kata

There are a ton of online coding Dojos out there; CodeWars, HackerRank etc. and kata are common place in technical interviews. Most often the kata presented in an interview are academic in nature and rely on a specific algorithm or data structure that an inteviewee may not have used outside of their academic career.

This repo contains what I consider to be fundamental kata. Through these kata you will learn how to build data structures like linked lists, binary search trees, and graphs as well as how to use them to solve common algorithm based questions all while enforcing good coding discipline around coding style, Test Driven Development (TDD) and Object Oriented best practices like SOLID Design Principles.

Each kata is accompanied by a README explaining the Data Structure/Algorithm and a full test suite so you can follow TDD while solving it. Look to the specific README within the language folder for specific environment or kata specific instructions.

Structure

Data structures, algorithms, Test-Driven-development, SOLID design principles, and OO transcend any programming language. As a self proclaimed polyglot I want to teach these concepts in various language. You will find a folder for each of the concepts containing a README that explains the data structure, covers algorithmic complexity and explores some algorithms that use that data structure. Every concept folder will have language specific subfolders (i.e. python, node, C#) etc. containing everything you need to get started including a README, requirements files, and most importantly unit tests.

Topics

Covered topics are listed in order from easiest to most challenging.

  1. Linked List
    1. Singly Linked List
    2. Doubly Linked List
    3. Circular Linked List
  2. Heaps
  3. Hash Table
  4. Trees
    1. Binary Search Tree
    2. B Tree
  5. Graphs
    1. Single Source Shortest Path
      1. Djikstra algorithm
      2. Pim's algorithm

Contributing

I would love additional language contributions. I plan on providing tests in Python, C#, javascript (node.js), but Golang and Rust would be awesome. This project aims to be a framework for teaching new developers so documentation, READMEs and clean code are essential.

About

A collection of kata used to mentor devs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages