Why should we practice Code Kata?

Why should we practice Code Kata?

[[155877]]

background

The concept of Code Kata was proposed by Dave Thomas, one of the authors of The Programmer's Way: From Labourer to Expert. When Ruby began to become popular, Dave became one of the most important disseminators of the language. At that time, he wrote many articles about the philosophy and market context of the origin of Ruby and Rails. He also learned a lot of agile methods and concepts. It was in this context that Dave proposed the code learning technique of Code Kata and began to promote it.

This concept mainly refers to the repetitive practice of a specific technique or skill in order to master it. The concept of Kata is borrowed from martial arts and refers to a series of movements and moves that can be practiced alone or with others. Of course, the word can also be used to describe other movements in martial arts, such as exercises that highly simulate actual combat.

According to Wikipedia:

Originally, Taolu was a method of teaching and practicing martial arts, through which many successful fighting techniques were preserved and passed down. Practicing Taolu allows a group of people to undergo arduous martial arts training in a systematic way, rather than individually and in a disorderly manner.

The main purpose of using routines (Kata) in martial arts is to pass on effective techniques and practice them repeatedly. This allows learners to practice these movements naturally and reflexively. To achieve this goal, the key is not to practice systematically, but to internalize the movements and techniques and change them according to different needs.

Attitudes towards coding routines

There are three types of opinions about this method of practicing programming skills: despise, neutral, and approve. The neutral group believes that nothing can be learned from writing the same problem over and over again, and the despisers also believe so, but to a greater degree. The rest are the approvers, who believe that writing the same problem over and over again, or writing many small code examples, is useful.

I agree with this approach. I started learning programming intermittently last year, and one of the mistakes I made was not practicing enough and not realizing early on that this is a subject that needs to be learned by doing. The first time I learned about coding routines was on the codewars website, and when I came into contact with this technique, I had already been learning programming for more than half a year.

The importance of practice

Practice, as a learning method, is applicable to all fields, not just martial arts, but also playing musical instruments, improving sports, preparing speeches, and improving grammar and writing. Steve Yegge, a well-known programmer in the industry and author of "The Programmer's Scream", once mentioned the importance of practice in an article.

I know a lot of great programmers - this is one of the perks of working at Amazon. If you watch them carefully, you will find that they exercise all the time. They are already very good, but they still do not forget to exercise. They exercise in many ways, and I will only introduce a few of them in this article. From what I understand, the reason why these great programmers are so successful is that they exercise all the time. The best body can only be obtained by regular exercise, and it must be maintained by constant exercise, otherwise the body will get out of shape. The same is true for programming and software engineering.

How to practice coding katas

Dave Thomas believes that routines can be used as a skill to learn programming. The method is simple: each coding routine is a simple coding problem that is easy to solve, allowing practitioners to keep trying until they succeed. The purpose of this is to help practitioners find better solutions every time. Practitioners can even set various restrictions on routines, such as using a language that they don't often use.

There are many websites that help programming learners practice routines. After knowing this kind of programming practice website, I did some searching and collected some websites recommended by foreign programmers, and recommend them to you here.

  • Codewars
  • codeforces
  • HackerRank
  • Project Euler
  • LeetCode
  • SPOJ: Friends on Quora said that this website is extremely difficult.

The key to practicing coding routines is persistence and concentration. Of course, after practicing to a certain level, it is indeed difficult to make significant improvements by doing some simple questions. It is recommended that friends with high levels practice advanced topics such as artificial intelligence, big data, and natural language processing.

What would the programmers do?

I am still a beginner, so I will continue to practice coding routines. For every routine that I think is difficult and can be extended, I will record my solution in detail, or find a better solution on the Internet, share it with everyone, learn programming together, make progress together, and strive to become a master of black band. This is also the original intention of opening a practice section on this website.

[[155879]]

<<:  Mobile, Ecosystems, and the Death of the PC

>>:  Y Combinator partners conducted a micro interview with entrepreneurs, the essence of which is here

Recommend

What can Foshan enterprises do by developing mini programs?

Mini Programs are a new way to attract new users....

Fearless Starlight: 10 Great Inventors Who Died Because of Their Inventions

Editor: Li Yashan Editor: Huang Shan Layout: Li X...

How many of the “Ten Don’ts” of Product Operations have you committed?

When doing product operations , we have listened ...

Can I surf the Internet on the moon? Can I grow vegetables? Latest answers!

The National Space Administration announced on Se...

Yang Liang's English Vocabulary Memorization Guide 40 Episodes

Course Outline 00 The five most common mistakes C...

These data are quite "hardcore"!

On March 8, the second "Minister's Chann...

Sony and LG chose to give up curved TVs, but why Samsung still insists on it?

Curved TVs should have ushered in a brighter futu...

Sister Abao "Ordinary People's Workplace Counterattack Training Camp"

Course Catalog ├──Chapter 1 Opening Ceremony | └─...

How much of your storage capacity has WeChat and Alipay taken up? Exaggerated

Although WeChat is called Wei, it occupies 5G sto...

Let's talk about the three new font width styles in iOS 16

Preface In iOS 16, Apple introduced three new wid...

Activity Calendar丨Reminders for marketing events in April

The most important thing in building a brand is t...