JavaScript Kata

Summary

For this challenge you will be completing a number of different exercises to practice your JavaScript.

  1. fork the repo at https://github.com/dev-academy-foundations/javascript-kata to create your own copy
  2. clone your forked repo
  3. cd into the new directory and run npm install.

The tests have already been written, now you need to write code to make the tests pass! Each kata is presented slightly differently and focuses on different parts of JavaScript, so make sure you take your time to read the accompanying file and get yourself familiar with the kata before starting.

Time Box

ActivityTime
Kata15 hours
Stretch (JS Olympics)6 hours

Description

The concept of kata are taken from martial arts; small, repetitive tasks used to improve your form. We use kata in coding as small challenges that we can repeatedly do to use different techniques or pieces of code to try and solve the same problem in different ways.

This will be your first time encountering these kata, so don't expect that you will do them quickly. Each time you redo them, you will have the experience from last time, so your time will decrease each time you retry them.

Once our basic kata have been mastered, the next step is placing some restrictions on how you complete them. You will have many different ways to complete the same kata, so restricting how you do it can help hone your form in one particular area.

Tests and error messages

The tests are already written, you just need to write the code to make them pass. Remember that error messages are a good thing in coding - often they point you to the exact line number where there is an issue! Use the feedback from tests to problem solve.

Problem solving

This challenge is an excellent way to work on your problem-solving skills. Read the error messages, use console.log(), break down the problem line by line with your 'rubber ducky'/houseplant/pet, use Google etc

Remember:

  • to pseudocode throughout your kata to help you understand what each line of code is doing (plus, this allows us to see your line of thinking when we mark your work)
  • break down problems into small manageable pieces!
  • when you get stuck, ask for help to get unblocked. The Foundations Discord channel is the best place to ask as all Foundations students are working on this same challenge, and we can guarantee you're not alone whenever you feel blocked!

Get Coding!

You will need to work through the kata in the order given below as they will build on JavaScript from earlier kata.

KataTime
Variables and Objects1 hr
Manipulating Objects1.5 hrs
Super FlipFlop4 hrs
JS Gradebook4 hrs
Built-in Methods4 hrs
Stretch
JS Olympics6 hrs