はじめに
今回は、最近使い始めた勉強ツールの紹介です。
プログラミングスキル向上のためcodewars
(https://www.codewars.com/) を始めたので、簡単にですが、まとめていきます。
Codewarsとは
開発スキル向上のための、コーディング道場(与えられた問題を解く)です。
他にも似たようなツールはありますが、codewars
は、用意された問題をただ解いていくのではなく、 他のユーザが問題を作成し出題することができ、他の人の回答の中からユーザ投票で選ばれたベストプラクティスなども見る事が出来るのが特徴です。これによって、他の人がどのようにコードを書いたのか、様々なアプローチ方法を知ることができスキルの向上に努めることがきます。
Kata
codewars
ではkataと呼ばれるものが、問題を指しています。今では約4000以上ものKataが準備されています。
8kyu(8級)から1kyu(1級)までのランクに分かれた問題を解くことができ、解くことによって自分のkyuを上げていくことができます。
Kataを開くと、このようなページに飛び、左に問題文、右上にソースコード、右下にテストコードがあり、TESTボタンを押すと、実際にテストをすることができます。ATTEMPTを押すと、コードが提出され、正誤判定が行われます。その後、正解であれば下にも載せているのですが、他人のコードを見ることが可能となります。
(この画像の例は偶数の時にEvenを返し、奇数の時は、Oddを返すという問題です。)
Kumite
他のユーザーと競い合って、より良いコードを目指そうとするモード。
Kataしかやっていないので、詳しくはわからないですが、中上級者向けのものに思います。
コミュニテイ
codewars
のコミュニティは活発でそこで質問したり、議論したりと積極的に活用していくことによって、問題解決の手助けとなります。
このように問題ごとに、議論する掲示板(Discourse)があり、他の人の解答やBestPracticeな解答をみたければ、Solutionsに行けば見ることができます。
また、いつ作られた問題なのか、どれぐらい解かれているのか、何の言語で解かれているのか等、可視化されており、個人的に、正答率やどの言語が使われているのか見るのが面白いと感じています。
対象言語
codewarsでは対象になっている言語は30以上あり、人気の言語はもちろん他のあまりなじみのない言語まで使うことができます。
まとめ
codewars
は他人とのコードの比較ができる事が魅力。 リファクタや知らなかった書き方等勉強になりますし、最初は難しいかもですが、処理速度も気にして問題を解けるようにしていきたいです。
毎日1~2題でも良いので、継続的にKataを解いていきたいと思います。
参考