mike-neckのブログ

Java or Groovy or Swift or Golang

code kataについて少し考える

今朝ほど、こんなエントリー書きました。

mike-neck.hatenadiary.com

その後、@tokuhiormさんがGS-Collections code kataをひと通り試したエントリーを書いていました。

GS Collections Kata をひと通りやった - blog.64p.org

正直、手が速く人は羨ましいです。


GS-Collections code kataのREADMEを読んでいると、codekataの考えを元に作られたものであることが読み取れる。そこには、だいたいこんなことが書かれている。

基本的な動作を何度も繰り返すことによって、経験から自らの動きに磨きをかけていくこと。

これは空手の型をヒントに考えられたトレーニングだそうです。

(余談) 僕は小学生の時、空手一級まで取得しましたが、四半世紀経った今ではほとんどの型は忘れて、今できるのは平安初段、二段、鉄騎初段くらい。好きだった抜塞大とか観空大は忘れました。

  • 平安初段、平安二段を覚えているのは、茶帯(3級)になると白帯(無級)、黄色帯(8級)の人に教える役割が発生するので、何度もやって覚えてしまった。
  • 鉄騎初段は4級に上がるときに一年後に入った5級の人が飛び級で3級に上がってしまって、焦った僕も飛び級〜と思って、必死に練習した結果、身についてしまった

ちなみに型がうまくなったからといって、組手が上達するというわけでもない

閑話休題

先ほどのcodekataでも紹介されているように基本的なトレーニングは30分くらいで終わるもので、これを毎日繰り返すことが奨励されています。そして、重要なのは正解にたどり着くことではなく、小さなフィードバックから自分のスキルを向上させることの方であるとも説いています。

GS-Collectionsのcode kataは実際に取り組んでみると、それほど難しい問題ではないです(ただし、Exercise8はなかなか難しい)し、15分くらいで一つのExerciseが終わります。やっている最中ですが、これはひと通りやって終わりではなくて、毎日少しずつ、そして何度も取り組むものではないのかという印象も持ちました。そして、そのトレーニングを何度も繰り返した後で、GS-Collectionsをかなり有効に使いこなせるようになるための教材なのではないかと思いました。

(いや、当然といえば当然ですね)


僕はもうおっさん〜老害なので、kataを繰り返してもあげられる基礎スキルは大したものではないと思いますが、若いエンジニアの皆さんは自分が「これだ!」と思った問題領域について、小さなプラクティス集を作っておいて、毎日15分くらい取り組んでみると、気づいた時にはその問題領域については誰にも負けないようなエンジニアに成長できるのではないかと思います。


結論、自分の問題領域を発見して、小さなプラクティス集を作って、それを毎日やろう!


以上、クソスキルしかないオジサンからの「普通じゃん」なアドバイスでした。


ちなみに、Datomicのクエリーをほぼ毎日書いていたら、なんか空でも書けるようになっていて、おっさん〜老害でもkataの効果はあるのは実感しています。