Comments on: Why I Don’t Do Code Katas https://simpleprogrammer.com/dont-code-katas/ Tue, 14 Feb 2023 01:29:21 +0000 hourly 1 https://wordpress.org/?v=7.0 By: jsonmez https://simpleprogrammer.com/dont-code-katas/#comment-2027 Sat, 03 May 2014 23:40:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2027 In reply to Brian T. Forsythe.

That is an interesting take. I suppose I would agree that katas would help you build a base that allows you to run on autopilot when performing certain tasks. The main problem I have is when katas are practiced beyond that point instead of a new challenge.

]]>
By: jsonmez https://simpleprogrammer.com/dont-code-katas/#comment-2026 Sat, 03 May 2014 23:37:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2026 In reply to Brian T. Forsythe.

I do test drive. And I do think it is a design activity. It definitely makes sense to use katas for learning in that way.

]]>
By: Brian T. Forsythe https://simpleprogrammer.com/dont-code-katas/#comment-2025 Thu, 01 May 2014 21:46:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2025 In reply to wizardwerdna.

Spot on!

John (OP), do you test drive? Do you view test-driving as a design activity?

]]>
By: Brian T. Forsythe https://simpleprogrammer.com/dont-code-katas/#comment-2024 Thu, 01 May 2014 21:40:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2024 You struck the nail on the head with “Our daily commute to work rarely presents us with an unfamiliar stimulus or problem to solve. We operate on autopilot, automatically walking and driving to our destinations without much effort or thought.”

That’s what katas are about. We perform katas until test-driving a given design cleanly and efficiently becomes second nature, until the red, green, refactor motions for a given context become second nature. This enables us to move beyond mechanics and focus on the larger picture. If you are focused on code that satisfies a solution rather than on how you create that code (aka “doing it wrong”), katas won’t benefit you much.

I agree with you that katas that are varied and not repeated do not fit the definition. These have their importance in developing problem solving skills but, to continue the martial arts analogy, are more akin to sparring bouts. It’s disappointing that people don’t practice katas more — people should learn to walk well before they expand into Parkour.

]]>
By: wizardwerdna https://simpleprogrammer.com/dont-code-katas/#comment-2023 Mon, 09 Dec 2013 23:50:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2023 In reply to jsonmez.

Solving the same problem over and over again does not equate to obtaining the same answers. You presume that katas are purely mechanical, but I have seen my code improve by doing precisely that. “Blind following” is foolish — and in fact, it is not really done in practice. Watching a kata executed by another, and then attacking it rarely results in the same solution and the same way.

]]>
By: wizardwerdna https://simpleprogrammer.com/dont-code-katas/#comment-2022 Mon, 09 Dec 2013 23:48:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2022 +1 Cory. I think you nailed it.

]]>
By: wizardwerdna https://simpleprogrammer.com/dont-code-katas/#comment-2021 Mon, 09 Dec 2013 23:47:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2021 First of all, I found the Parkour video terrific, and am grateful for it. Thanks.

As to your thesis dissing katas, I will have to join those who demur. In particular, when teaching test-first development, I have found kata practice a terrific vehicle for adopting the non-intuitive disciplines that are triangulation and strategic generalization. Learning to take small steps is a very difficult discipline, particularly for the smartest and most intuitive cowboys. Learning to develop with discipline and to go slow, and that by doing so, you end up going much, much faster and more reliably. With your insights into simplifying code, I found your remarks confusing.

It is also an excellent way to learn to pair — to develop a rhythm with a pairing team, and to build parity with a new partner.

For my part, I have found that repeating katas has often led me to new insights to old problems. Additionally, it facilitates developing a muscle memory that allows mechanical disciplines that are essential in some aspects of a->b problem solving go quickly, without the frustrations of refraining from skipped steps, “knowing” how to get there from here.

At least for many agile practices, kata practice is an excellent way to learn, and achieve a degree of mastery. There will always be a place for intuition and problem solving, of course, but the technique is also key. And kata practice is the best way I have seen to develop those techniques.

]]>
By: jsonmez https://simpleprogrammer.com/dont-code-katas/#comment-2020 Mon, 25 Nov 2013 21:20:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2020 In reply to Haimat Mustafa.

To address what you said about creating 180 web sites: there is a large amount of value in seeing lots of different problems and working on many different things over a long period of time. Focused practice on a single thing is valuable, but I have found that you learn much more and gain much wider perspectives from doing things that have a wide berth rather than focused activities. I do agree that both are necessary though.

Code Katas used correctly are good, used incorrectly in the same way someone would practice for a sport or to play guitar for instance, they tend to be a waste of time.

]]>
By: Haimat Mustafa https://simpleprogrammer.com/dont-code-katas/#comment-2019 Mon, 25 Nov 2013 09:21:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2019 Code Katas might not revolutionize your programming skills but they will improve problem solving skills, short cuts, increase code output and generally make you more comfortable with the programming language and the IDE used. I see little benefit from doing the same exercise more than once or in some cases, twice. Doing that makes no sense. I have no delusions that walking to work each day will improve my squash game. Why would it? Change exercise, change IDE and programming language. Make it fun. Challenge yourself!

Why would you ever hire Jennifer who made 180 websites in 180 days? if you don’t need a person who can generate a lot of websites in a short time period(I hope the websites are all different 🙂 ). I’d never hire Jennifer for anything else than generating as many websites in as short time as possible. Creating 180 websites seems like a dumb enough exercise to stop me from hiring this person.

Code Kata is an exercise which is useful for improving your programming skills in certain ways. It shouldn’t be confused with learning programming from scratch or as the “only tool to learn and improve your programming skills”. It’s one tool of many to help you practice and develop your skills. I’m sure Jennifer would be an even better programmer if she created 25 well-designed web sites and performed 10 different Code Katas in 180 days in stead of doing the same code kata for 180 days or creating 180 different websites just for the sake of it.

]]>
By: jsonmez https://simpleprogrammer.com/dont-code-katas/#comment-2018 Tue, 29 Oct 2013 14:25:00 +0000 https://simpleprogrammer.com/?p=5683#comment-2018 In reply to Cory Foy.

Thanks Cory, because of your input, I went ahead and updated this post to point to this comment chain at the top and also I reworded the definition of code kata to say that some people think code katas are… instead of making a large generalization. Appreciate your input here. 🙂

]]>