今日久々にcodewarsでJSの問題にチャレンジしたら、やっぱり腕が鈍ってたよね😨 しばらくは毎日一問でもやらないとダメだわ。
— Yuki Sato 🍙 (@yuki_sat) October 1, 2018
codewarsはプログラミングの腕を鍛えるのにめちゃくちゃオススメです! ブートキャンプでもたくさんKata(練習問題)を解きました💪https://t.co/vvA2oZ5Q73 https://t.co/FBoBL9Jvz6
— Yuki Sato 🍙 (@yuki_sat) October 2, 2018
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;
おおーすごい!
最後
こういうベストプラクティスが出るのはありがたいですわ。
知らなけらばどうしてたってわからないですもん。
コツコツやってみようと思います。