Skip to content

thoughtworks-jumpstart/katas

Repository files navigation

katas

Instructions

Intro

Katas are used in Karate as exercises to practice and internalise the moves. Similarly, we need to practice our software development skills with artifical problems without facing the pressure of a production environment.

Work in pairs

Writing code is a very collaborative process. Learn to work with others.

Find a pair and work with them to solve the problem. Think about the problem together and work out what tests you should write.

Red, Green, Refactor Approach

We recommend adopting ping pong pair programming and test driven development (TDD). You write a failing test and let your pair pass the test. If necessary, they should refactor their code after passing the test. Then they should write the next failing test and hand it to you to pass the test and refactor where necessary. Rinse and repeat. This is the RED, GREEN, REFACTOR approach for test driven development.

Seeking help

If you are stuck, you should first seek help from your pair. Discuss the problem and the possible solutions together.

We also encourage you to refer to documentation (e.g. MDN) to learn how certain JavaScript APIs can be used (e.g. Array.prototype.map or Array.prototype.filter).

Feel free to approach your instructors if you are still stuck.

However, we caution against searching for complete solutions to the problems online. The purpose of these exercises is to hone your software development skills, and copying code does not help you in the long run.

Lists of Katas

Solutions to Katas could be different because of different approaches (recursion vs iterative) or different goals (readability vs runtime efficiency)

Javascript Core APIs

Algorithms and Data Structures

Programming Paradigms

Best Practices