見出し画像

競技プログラミングで自分の実力を図る

外資系企業でソフトウェアエンジニアをしております、タロイモと言います。今日もよろしくお願いします。

----------------------------------------------------

競技プログラミングをご存知でしょうか。

競技プログラミングとは、参加者に課題が与えられ、その課題をプログラミングで解くというものです。

例えば、あるXという数が与えられたらX+Xの答えを返しなさいみたいな問題がでます。(この問題は流石に簡単ですが)

以上の問題の関数をJavaScriptで書くと以下のようになります。

function calc(param) {
    return param + param;
}

このように課題に対してアルゴリズムを考え、そのアルゴリズムをプログラムにする力が必要になります。


今回は、競技プログラミングをするメリットを解説します。

1. 就職活動で役立つ

新卒、中途問わず様々な企業の採用活動でプログラミングテストが使われています。

例えば、paizaやAtCoderの求人では、プログラミングテストの結果で応募できる企業が限られてきます。

このプログラミングテストは、競技プログラミングの形式に似ているので、競技プログラミングに取り組んでおくことでテスト対策になるでしょう。

メガベンチャーなどではかなり高いレベルのプログラミング力が求められますので、競技プログラミングはやらなくてはいけないレベルだと感じます。また、外資系の有名企業ではオンラインテストでのスキル確認だけでなく、直接ホワイトボードに書いてみせるなんてこともあるので、プログラミング力を付けることは必須だと考えられます。

このような就職活動で高いプログラミングスキルを求められる企業でなくても、競技プログラミングの結果を証明できると就職活動も楽になると思います。

2. 自分のスキル確認になる

競技プログラミングに取り組む上で、各言語のAPIを理解する必要があります。

例えば、平面上の2つの点x, yの距離を求めよという問題があった場合、
JavaScriptで書いた場合は以下のようなAPIを使います。意外と知らないAPIで書けることがあるので知らないAPIを学習する機会になります。

//(x, y) = (2, 3), (4, 5)とする。

let distance = Math.sqrt((4 - 2) * (4 - 2) + (5 - 3) * (5 - 3));
let distance = Math.hypot((4 - 2) * (4 - 2), (5 - 3) * (5 - 3));  

3. 面白い

単純に人との競争になるので面白いです。

例えば競技プログラミングサイトのAtCoderではレベル別に問題が分かれていて、得点によってランキングが掲載されます。

また、提出した人のプログラムを見ることができますので、すごいプログラマーのプログラムの書き方を学ぶことができます。


まとめ

今回は競技プログラミングを学ぶメリットを解説しました。

就活・スキル向上・趣味として利用価値があるので、
是非取り組んでみてください。

今回もご精読ありがとうございました。

よろしければサポートお願いします! サポートは、サービスの開発・改良や、記事を書く際の素材費とさせていただきます。 少しでも有益な情報発信をしていけるよう努めてまいります。 是非とも応援よろしくお願いします!!!🙇‍♂️