Skip to content

MakingSense/coding-dojo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text

Making Sense Coding Dojo

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 hone our skills and have some fun with our coworkers in the process. 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.

Guidelines

Here are some guidelines, so you have the best possible experience when doing your katas:

When solving katas

  • Clone the repository so you can upload the solution later.
  • Start a stopwatch (this is important! you can use google) and go on coding your kata.
  • Add as many comments as you can! We can't stress this enough, since explaining your reasoning will greatly improve the comments you receive afterwards.
  • Once you've completed it, create a new branch with the format <user>-<kata name> based on the master branch
  • Add your code to the <Kata-folder>\Solutions\<username> folder for the kata you solved and commit it (please try and submit just one commit per kata, if you have more than one, squash them first)
  • Send a pull request to merge to the master branch. In the pull request description, mention how much time it took you to solve the problem. This way you'll have a track record of solving this kata, and you can compare it to your colleagues timing.
  • You can challenge someone to solve this kata! Mention them in the pull request, and you're effectively taking out your white gloves and demanding a duel! (Remember that the first rule of dueling between two gentleman (or ladies) is that a duel cannot be refused without the loss of face and honor)
  • Your colleagues will review your code and leave useful comments. Those can be about coding styles, performance improvements, code refactoring, etc.
  • Once you've addressed all your colleagues' comments, you can merge the branch and delete it. That way we keep the dojo clean after we practice, and save the progress made! Please avoid "merge" commits if you can (this way you'll also be practicing git katas!).
  • You can come back and solve the kata as many times as you like (that's the purpose of a kata, to practice a lot and build 'muscle memory' when coding), though we recommend to only send new pull requests if you feel that the approach to solve it has substantially changed.

When responding to a challenge

  • Basically we follow the same guidelines mentioned above, but make sure you don't take a look at the code produced by the one who challenged you! Or do you have no sense of honor...?

When creating a new kata

  • Anyone can submit a new kata to the repository! Just make sure to cathegorize it properly, and add as many details as you can, maybe even throwing in some youtube videos for illustration purposes. You can take the markdown for an existing kata as a template to create your own one!
  • Remember to add any resource files that might be used as boilerplate to help solve the kata.
  • Create a pull request to the master branch, so we can all pitch in and help maintain a consistent dojo for everyone!

Tips

  • It's completely normal to take more time to solve a kata the first time. No one will judge you if you need more time to solve it than someone else. We're here to improve our coding!

Happy coding!!

Algorithm katas

TDD katas

Math katas

About

Making Sense Coding Dojo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •