【プログラミング】codewarsがすんごくいい教材だった

f:id:suganoo:20181010185308p:plain


twitterでフォローしてる @yuki_sato さんから(勝手に)知ったのですが、とてもいいプログラミング学習サイトを知りました。

codewars
https://www.codewars.com

どんな人使うといいの?

ざっくりいうと、初級者競プロのプログラミングの課題サイトって感じでしょうか。

progateなどのようにプログラミングを0から学ぶスタイルではありません。

すでにある程度、なんとかググりながらコーディングできるレベル、の人が使うといいでしょう。

対応言語がいっぱいある!

驚いたのですが、学べる言語がかなり豊富です。

Java, ruby, python, などの言語は対応してるんですが、Haskell, F, F#, solidity...まで対応してるんですよ!
(問題数にかたよりはあると思いますが。。)

自分はjavascriptを学びたいのでjavascriptやってます。

回答するとベストプラクティスが出る

またもう一ついいことに、課題を解くとベストプラクティスが出るんですね。
これは学ぶ上でかなり助かります。

例えばこれ

  • ある数値が与えられる。その数値を2進数で表す時の1の数を返しなさい。
  • ex. 5 → "101" → 2、 7 → "111" → 3

自分が書いたコードはこれです。

var countBits = function(n) {
  // Program Me
  var num_one = 0;
  while ( 0 < n ) {
    if ( n % 2 == 1 ) {
      num_one++;
    }
    n = Math.floor( n / 2 );
  }
  return num_one;
};

ですが、ベストプラクティスだとなんと1行でできます。

countBits = n => n.toString(2).split('0').join('').length;

おおーすごい!

最後

こういうベストプラクティスが出るのはありがたいですわ。

知らなけらばどうしてたってわからないですもん。


コツコツやってみようと思います。