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

2020 Pinduoduo entry process and operation promotion strategy!

Recently, everyone is basically staying at home, ...

Tik Tok’s content flow and algorithm logic

In the past two years, Tik Tok , as a national-le...

5 ways to boost private education and training traffic

2020 is called the "first year of private do...

Macworld/iWorld exhibition will be cancelled this year

[[121192]] Steve Jobs unveils the first iPhone at...

For promotion on Xiaohongshu, just read this article.

This article will try to answer your questions: 1...

In the era of burning money, what should product managers do?

This is an era of "fleecing the sheep"....

God opened a window for you, but you installed iron bars!

Source: Jiangxi Fire Department Ministry of Emerg...

How to operate an event? One picture is enough! !

First of all, we must understand that activities ...

Meitu Xiuxiu Competitive Product Analysis Report

Beauty photography has become an important tool i...

Can Win10 phones really run Android/iOS programs?

Can Windows 10 phones really run Android and iOS ...