Codilityの勧め ~JavaScriptで解くアルゴリズム~

JavaScriptでコーディング試験やアルゴリズムテストを解くなら[Codility for programmers](
https://app.codility.com/programmers/)が一番良いんじゃないかなと思います。
これから一日一題ベースで解いていこうと思います。

## Codility for Programmersとは

世界最大級のコーディング試験のプラットフォームです。
特にグローバル企業で導入されており、AmazonやIntel等の錚々たる企業に採用実績があります。
国内においてはメルカリやスマートニュース等に採用されています。どちらもグローバル展開を強く意識していて、所属エンジニアの技術力が高い会社ですね。


### 操作環境

操作方法のチュートリアルが充実していて、わかりやすいUIだなと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438597/425ca27e-6aed-15e0-8bc1-16660e577b76.png)

### プログラミング言語

多数のプログラミング言語で受験可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438597/b0ad12f1-4082-f362-9530-e47fc5e2f6ee.png)



### 言語環境

英語のみです。
文法的には決してややこしくないのですが、コンピュータサイエンスや数学の語彙が分からないと問題文を理解できません。練習問題を解きながら、語彙をストックしていくと良いと思います。

裏技としてはGoogle翻訳の拡張機能を使うとかなり高い精度で翻訳してくれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438597/b8b92874-0f92-b383-dae0-3453ef1e93f0.png)


## Codilityを解くメリット

### 普段使っている言語の理解が深まる

>(コーディング試験とは)スポーツで言えば基礎体力に相当する、コンピュータサイエンスの基本理解度を見るためのもの(スマートニュースのインタビューより)

私はJavaScriptで解いているのですが、JavaScriptについての理解が深まったと実感しています。例えばreduce()メソッドはCodilityの解法に頻出しますが、ReactによるWebアプリ開発においてもreduce()メソッドを使用することでコードをクリーンにすることができました。
いくつかのJavaScriptのメソッドや文法は、Webアプリ開発よりコーディングテストの中で覚えた方が理解しやすいと思います。今まで曖昧だったArrayの各種メソッドの使い分け等についても自信を持つことができるようになりました。


### 英語力がつく

問題文も全て英語なので、自然と英語力がつきます。コンピュータサイエンス関連の語彙は日本の英語教育では手が届きにくいですが、Codilityは良い教材です。

### エンジニアとしてのキャリアの選択肢を広げやすくなる

主に国内のスタートアップを見ていたのですが、グローバルに事業展開する大企業も良いなと思うようになりました。また、そのような企業はコーディング試験がほぼ必ず課されますが、コーディング試験自体にある程度の慣れが必要だと思います。




## 参考


<a href="//af.moshimo.com/af/c/click?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062&amp;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB07179Q3MJ" rel="nofollow"><img src="https://images-fe.ssl-images-amazon.com/images/I/51ElwXwvJ-L._SL75_.jpg" alt="" style="border: none;" /><br />アルゴリズム図鑑 絵で見てわかる26のアルゴリズム</a><img src="//i.moshimo.com/af/i/impression?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062" alt="" width="1" height="1" style="border: 0px;" />

<a href="//af.moshimo.com/af/c/click?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062&amp;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB00FR78X64" rel="nofollow"><img src="https://images-fe.ssl-images-amazon.com/images/I/51bZA91ZWqL._SL75_.jpg" alt="" style="border: none;" /><br />世界でもっとも強力な9のアルゴリズム</a><img src="//i.moshimo.com/af/i/impression?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062" alt="" width="1" height="1" style="border: 0px;" />

<a href="//af.moshimo.com/af/c/click?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062&amp;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB01N14WBX3" rel="nofollow"><img src="https://images-fe.ssl-images-amazon.com/images/I/61bXMHbyv3L._SL75_.jpg" alt="" style="border: none;" /><br />なっとく！アルゴリズム</a><img src="//i.moshimo.com/af/i/impression?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062" alt="" width="1" height="1" style="border: 0px;" />

<a href="//af.moshimo.com/af/c/click?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062&amp;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2F4873117836" rel="nofollow"><img src="https://images-fe.ssl-images-amazon.com/images/I/51U44SJi3jL._SL75_.jpg" alt="" style="border: none;" /><br />初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発</a><img src="//i.moshimo.com/af/i/impression?a_id=1875799&amp;p_id=170&amp;pc_id=185&amp;pl_id=4062" alt="" width="1" height="1" style="border: 0px;" />

https://qiita.com/drken/items/f909b79ee03e679c7142