raywenderlich/SC_CaioZullo

Name: SC_CaioZullo

Owner: raywenderlich

Description: null

Created: 2017-11-26 18:38:34.0

Updated: 2017-12-15 22:24:57.0

Pushed: 2018-02-05 17:57:51.0

Homepage: null

Size: 5161

Language: Swift

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

SC_CaioZullo

Swift Code Katas: Getting Started
Kata origin (in Martial Arts)

“Kata originally were teaching and training methods by which successful combat techniques were preserved and passed on. Practicing kata allowed a company of persons to engage in a struggle using a systematic approach, rather than as individuals in a disorderly manner.”

“…Systematic practice does not mean permanently rigid. The goal is to internalize the movements and techniques of a kata so they can be executed and adapted under different circumstances, without thought or hesitation. A novice?s actions will look uneven and difficult, while a master?s appear simple and smooth.

Rosenbaum, Michael. Kata and the Transmission of Knowledge in Traditional Martial Arts. YMAA Publication Center, Boston, 2004. Jump up ^

Code katas

A code kata is an exercise in programming which helps programmers hone their skills through practice and repetition.

https://en.wikipedia.org/wiki/Kata_(programming)

Why do code katas

“How do you get to be a great musician? It helps to know the theory, and to understand the mechanics of your instrument. It helps to have talent. But ultimately, greatness comes from practicing; applying the theory over and over again, using feedback to get better every time.”

“…How do you get to be an All-Star sports person? Obviously fitness and talent help. But the great athletes spend hours and hours every day, practicing….”

“But in the software industry we take developers trained in the theory and throw them straight in to the deep-end, working on a project….”

“…In software we do our practicing on the job, and that?s why we make mistakes on the job. We need to find ways of splitting the practice from the profession.”

CodeKata by Dave Thomas (http://codekata.com/)

Improving problem solving skills with katas

“Every now and then I challenge myself to build an application in a way I've never done before.

Choosing from a range of constraints, I try to forbid myself from using one or two techniques I'm used to, so I can find new ways of solving problems.

It's quite fun to write fully working iOS apps without booleans and if statements, for example. Yes, it's possible. I recommend you to try it…”

https://www.caiozullo.com/blog/2017/1/31/code-challenges-to-improve-your-swift-skills

Achieve mastery through challenge Improve your skills by training with others on real code challenges

https://www.codewars.com/

Potential valuable learning paths for katas
Proposition (2 videos)
Swift Code Katas: Introduction
Swift Code Katas: Game of Life

Introduction: Explain the kata and goals (Test-driven functional Game of Life) https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

Constraints for the kata:

- As simple as possible
    - Basic Foundation types (no classes, structs or enums)
- Test driven
- No mutation - only pure functions and immutable data

Potential audience challenges:


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.