SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
CODE KATAS
THE ZEN OF CODING
by /Paul Gower @paulmgower
ABOUT ME
Computer Science Degree
Alltel Client/Server University -
Developing Enterprise Software for over 12 years
Worked at Big, Small, and now a Consulting Company
Dr. Dobbs Article
OVERVIEW
What is a Code Kata?
Why Code Kata?
How to get involved in the community.
Let's Code Kata!
WHAT IS A CODE KATA?
( wikipedia)
Code Kata is a term coined by Dave
Thomas, co-author of the book The
Pragmatic Programmer, in a bow to the
Japanese concept of kata in the martial
arts. A code kata is an exercise in
programming which helps a programmer
hone their skills through practice and
repetition.
Kata (programming)
WHY CODE KATA?
( Steve Yegge blog)
Contrary to what you might believe, merely
doing your job every day doesn't qualify as
real practice.
practicing programming
( Scientific American article)
Ericsson argues that what matters is not
experience per se but "effortful study,"
which entails continually tackling
challenges that lie just beyond one's
competence.
The Expert Mind
EFFORTFUL STUDY
( Jeff Atwood blog)
...tackling problems at the very edge of
your ability. Stuff you may have a high
probability of failing at.
The Ultimate Code Kata
CENTRAL ARKANSAS
CODE KATA
HTTP://CODEKATA.CO
MULTIPLE PHASES
PHASE 1
SUNDAY, AUGUST 25, 2013
Bi-weekly Code Kata posted on Sunday afternoon to the
website
Post your answer following the instructions that will be
listed in the post.
codekata.co
PHASE 2
IN THE FUTURE
Community will rank the best solution
Sponsorship to give the highest voted answer a prize
A regular meetup to Pair-Program Code Katas
LET'S CODE KATA
STRING REVERSE
Imagine a time when you didn't have a framework method that would take a string as input and return the reverse
of it.
TASK
Create a method that takes a string as an input and returns the reverse of the string. Use whatever programming
language you prefer to solve this problem.
INPUT
Use the following items as example inputs:
"Hello World"
"Here we go."
"Code Kata is fun!"
OUTPUT
These are the outputs you should expect from the above inputs:
"dlroW olleH"
".og ew ereH"
"!nuf si ataK edoC"
FIZZBUZZ
FizzBuzz is an old school kata that has been floating around the internet for a while. If you have solved this
problem before then we encourage you to use a different language.
TASK
Your task is to write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead
of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five
print "FizzBuzz". Use whatever programming language you prefer to solve this problem.
INPUT
None.
OUTPUT
Output either i, "Fizz", "Buzz" or "FizzBuzz" depending on if the i is divisible by three or five.
REFERENCE
Thanks to for this .Jeff Atwood's blog Kata
REVERSED BINARY NUMBERS
Yi has moved to Sweden and now goes to school here. The first years of schooling she got in China, and the
curricula do not match completely in the two countries. Yi likes mathematics, but now... The teacher explains the
algorithm for subtraction on the board, and Yi is bored. Maybe it is possible to perform the same calculations on
the numbers corresponding to the reversed binary representations of the numbers on the board? Yi dreams away
and starts constructing a program that reverses the binary representation, in her mind. As soon as the lecture
ends, she will go home and write it on her computer.
TASK
Your task will be to write a program for reversing numbers in binary. For instance, the binary representation of 13
is 1101, and reversing it gives 1011, which corresponds to number 11. Use whatever programming language you
prefer to solve this problem.
INPUT
The input contains a single line with an integer N, 1 ≤ N ≤ 1000000000.
OUTPUT
Output one line with one integer, the number we get by reversing the binary representation of N.
REFERENCE
Thanks to for this . They have some great puzzles on their site and I'm sure we'll use some
of them as we continue to code kata.
spotify's job site Kata
RESOURCES
- our new website to do code katas! (Big thanks goes
to for setting this up!)
- a good website with information about Code
Katas (older but still informative)
by
by
by
- Steve McConnell's website is a great
resources to learn more about how to be a better software developer.
http://codekata.co
@_davidhudson
http://www.codekata.com
The Ultimate Code Kata
Jeff Atwood
Practicing Programming
Steve Yegge
Given I like reading Source Code by the fire with my smoking jacket and
brandy snifer, a list of books
Scott Hanselman
http://www.stevemcconnell.com
THE END
Paul Gower
@paulmgower
paul.gower@gmail.com
http://paulgower.me

Contenu connexe

Similaire à Code Kata

Bavpwjs1113
Bavpwjs1113Bavpwjs1113
Bavpwjs1113Thinkful
 
Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Duckademy IT courses
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1Ruth Marvin
 
Introducing small basic
Introducing small basicIntroducing small basic
Introducing small basicSara Samol
 
10 aplicaciones - Anais Ortiz
10 aplicaciones - Anais Ortiz10 aplicaciones - Anais Ortiz
10 aplicaciones - Anais OrtizAnaisOrtiz
 
Hasktut
HasktutHasktut
Hasktutkv33
 
A Grand Unified Theory of Software
A Grand Unified Theory of SoftwareA Grand Unified Theory of Software
A Grand Unified Theory of Softwarevinod_dinakaran
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsJarek Ratajski
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?Colin Riley
 
Learn Programming with Livecoding.tv http://goo.gl/tIgO1I
Learn Programming with Livecoding.tv http://goo.gl/tIgO1ILearn Programming with Livecoding.tv http://goo.gl/tIgO1I
Learn Programming with Livecoding.tv http://goo.gl/tIgO1Ilivecoding.tv
 
Application development with Python - Desktop application
Application development with Python - Desktop applicationApplication development with Python - Desktop application
Application development with Python - Desktop applicationBao Long Nguyen Dang
 
Dear compiler please don't be my nanny v2
Dear compiler  please don't be my nanny v2Dear compiler  please don't be my nanny v2
Dear compiler please don't be my nanny v2Dino Dini
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?Syed Hassan Raza
 
1. Introduction Original - To Print
1. Introduction Original - To Print1. Introduction Original - To Print
1. Introduction Original - To PrintChinthaka Fernando
 
IS L04 Programming Language
IS L04 Programming LanguageIS L04 Programming Language
IS L04 Programming LanguageJan Wong
 

Similaire à Code Kata (20)

Bavpwjs1113
Bavpwjs1113Bavpwjs1113
Bavpwjs1113
 
Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...
 
Programming
ProgrammingProgramming
Programming
 
python.pdf
python.pdfpython.pdf
python.pdf
 
Mastering python lesson1
Mastering python lesson1Mastering python lesson1
Mastering python lesson1
 
Introducing small basic
Introducing small basicIntroducing small basic
Introducing small basic
 
Java
JavaJava
Java
 
10 aplicaciones - Anais Ortiz
10 aplicaciones - Anais Ortiz10 aplicaciones - Anais Ortiz
10 aplicaciones - Anais Ortiz
 
Hasktut
HasktutHasktut
Hasktut
 
Introducing Small Basic.pdf
Introducing Small Basic.pdfIntroducing Small Basic.pdf
Introducing Small Basic.pdf
 
A Grand Unified Theory of Software
A Grand Unified Theory of SoftwareA Grand Unified Theory of Software
A Grand Unified Theory of Software
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
What does OOP stand for?
What does OOP stand for?What does OOP stand for?
What does OOP stand for?
 
Learn Programming with Livecoding.tv http://goo.gl/tIgO1I
Learn Programming with Livecoding.tv http://goo.gl/tIgO1ILearn Programming with Livecoding.tv http://goo.gl/tIgO1I
Learn Programming with Livecoding.tv http://goo.gl/tIgO1I
 
Application development with Python - Desktop application
Application development with Python - Desktop applicationApplication development with Python - Desktop application
Application development with Python - Desktop application
 
Dear compiler please don't be my nanny v2
Dear compiler  please don't be my nanny v2Dear compiler  please don't be my nanny v2
Dear compiler please don't be my nanny v2
 
What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?What Is Coding And Why Should You Learn It?
What Is Coding And Why Should You Learn It?
 
1. Introduction Original - To Print
1. Introduction Original - To Print1. Introduction Original - To Print
1. Introduction Original - To Print
 
Learning to code in 2020
Learning to code in 2020Learning to code in 2020
Learning to code in 2020
 
IS L04 Programming Language
IS L04 Programming LanguageIS L04 Programming Language
IS L04 Programming Language
 

Plus de Paul Gower

Be a Better Remote Agile Team Member
Be a Better Remote Agile Team MemberBe a Better Remote Agile Team Member
Be a Better Remote Agile Team MemberPaul Gower
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityPaul Gower
 
Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!Paul Gower
 
WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!Paul Gower
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityPaul Gower
 
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018Paul Gower
 
Unit Testing in Umbraco
Unit Testing in UmbracoUnit Testing in Umbraco
Unit Testing in UmbracoPaul Gower
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and WhenPaul Gower
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and WhenPaul Gower
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And WhenPaul Gower
 
Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016Paul Gower
 
Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016Paul Gower
 
How and When To Code Review
How and When To Code ReviewHow and When To Code Review
How and When To Code ReviewPaul Gower
 
Write Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech FestWrite Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech FestPaul Gower
 
Windows 8 and Phone App Development
Windows 8 and Phone App DevelopmentWindows 8 and Phone App Development
Windows 8 and Phone App DevelopmentPaul Gower
 

Plus de Paul Gower (15)

Be a Better Remote Agile Team Member
Be a Better Remote Agile Team MemberBe a Better Remote Agile Team Member
Be a Better Remote Agile Team Member
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
 
Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!Codestock 2019 - Build a successful remote agile team in three easy steps!
Codestock 2019 - Build a successful remote agile team in three easy steps!
 
WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!WeRockIT 2019 - Build a successful remote agile team in three easy steps!
WeRockIT 2019 - Build a successful remote agile team in three easy steps!
 
Overcoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase ProductivityOvercoming Delay: How The Best Developers Increase Productivity
Overcoming Delay: How The Best Developers Increase Productivity
 
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
Rub Some DevOps on your NodeJS app in Azure - ScenicCitySummit 2018
 
Unit Testing in Umbraco
Unit Testing in UmbracoUnit Testing in Umbraco
Unit Testing in Umbraco
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
 
Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016Code Review: How and When - Tulsa TechFest 2016
Code Review: How and When - Tulsa TechFest 2016
 
Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016Write Code For The Future You - Tulsa TechFest 2016
Write Code For The Future You - Tulsa TechFest 2016
 
How and When To Code Review
How and When To Code ReviewHow and When To Code Review
How and When To Code Review
 
Write Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech FestWrite Code For The Future You - LR Tech Fest
Write Code For The Future You - LR Tech Fest
 
Windows 8 and Phone App Development
Windows 8 and Phone App DevelopmentWindows 8 and Phone App Development
Windows 8 and Phone App Development
 

Dernier

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Dernier (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Code Kata

  • 2. ABOUT ME Computer Science Degree Alltel Client/Server University - Developing Enterprise Software for over 12 years Worked at Big, Small, and now a Consulting Company Dr. Dobbs Article
  • 3. OVERVIEW What is a Code Kata? Why Code Kata? How to get involved in the community. Let's Code Kata!
  • 4. WHAT IS A CODE KATA? ( wikipedia) Code Kata is a term coined by Dave Thomas, co-author of the book The Pragmatic Programmer, in a bow to the Japanese concept of kata in the martial arts. A code kata is an exercise in programming which helps a programmer hone their skills through practice and repetition. Kata (programming)
  • 5. WHY CODE KATA? ( Steve Yegge blog) Contrary to what you might believe, merely doing your job every day doesn't qualify as real practice. practicing programming ( Scientific American article) Ericsson argues that what matters is not experience per se but "effortful study," which entails continually tackling challenges that lie just beyond one's competence. The Expert Mind
  • 6. EFFORTFUL STUDY ( Jeff Atwood blog) ...tackling problems at the very edge of your ability. Stuff you may have a high probability of failing at. The Ultimate Code Kata
  • 8. PHASE 1 SUNDAY, AUGUST 25, 2013 Bi-weekly Code Kata posted on Sunday afternoon to the website Post your answer following the instructions that will be listed in the post. codekata.co
  • 9. PHASE 2 IN THE FUTURE Community will rank the best solution Sponsorship to give the highest voted answer a prize A regular meetup to Pair-Program Code Katas
  • 10. LET'S CODE KATA STRING REVERSE Imagine a time when you didn't have a framework method that would take a string as input and return the reverse of it. TASK Create a method that takes a string as an input and returns the reverse of the string. Use whatever programming language you prefer to solve this problem. INPUT Use the following items as example inputs: "Hello World" "Here we go." "Code Kata is fun!" OUTPUT These are the outputs you should expect from the above inputs: "dlroW olleH" ".og ew ereH" "!nuf si ataK edoC"
  • 11. FIZZBUZZ FizzBuzz is an old school kata that has been floating around the internet for a while. If you have solved this problem before then we encourage you to use a different language. TASK Your task is to write a program that prints the numbers from 1 to 100. But for multiples of three print "Fizz" instead of the number and for the multiples of five print "Buzz". For numbers which are multiples of both three and five print "FizzBuzz". Use whatever programming language you prefer to solve this problem. INPUT None. OUTPUT Output either i, "Fizz", "Buzz" or "FizzBuzz" depending on if the i is divisible by three or five. REFERENCE Thanks to for this .Jeff Atwood's blog Kata
  • 12. REVERSED BINARY NUMBERS Yi has moved to Sweden and now goes to school here. The first years of schooling she got in China, and the curricula do not match completely in the two countries. Yi likes mathematics, but now... The teacher explains the algorithm for subtraction on the board, and Yi is bored. Maybe it is possible to perform the same calculations on the numbers corresponding to the reversed binary representations of the numbers on the board? Yi dreams away and starts constructing a program that reverses the binary representation, in her mind. As soon as the lecture ends, she will go home and write it on her computer. TASK Your task will be to write a program for reversing numbers in binary. For instance, the binary representation of 13 is 1101, and reversing it gives 1011, which corresponds to number 11. Use whatever programming language you prefer to solve this problem. INPUT The input contains a single line with an integer N, 1 ≤ N ≤ 1000000000. OUTPUT Output one line with one integer, the number we get by reversing the binary representation of N. REFERENCE Thanks to for this . They have some great puzzles on their site and I'm sure we'll use some of them as we continue to code kata. spotify's job site Kata
  • 13. RESOURCES - our new website to do code katas! (Big thanks goes to for setting this up!) - a good website with information about Code Katas (older but still informative) by by by - Steve McConnell's website is a great resources to learn more about how to be a better software developer. http://codekata.co @_davidhudson http://www.codekata.com The Ultimate Code Kata Jeff Atwood Practicing Programming Steve Yegge Given I like reading Source Code by the fire with my smoking jacket and brandy snifer, a list of books Scott Hanselman http://www.stevemcconnell.com