JavaScriptでAtCoderに挑戦するのはオススメできません。【初心者向け】

スポンサーリンク
JavaScriptでAtCoderはおすすめできない プログラミング

「最近話題になってるAtCoderというのを始めてみたいけど、どの言語を使えばいいかわからない…
そうだ!JavaScriptだけはチョットわかるから、JavaScriptで挑戦してみるか!」

と思っているそこのあなたへ。
悪いことは言いません。C++かPythonに変えることをオススメします。

スポンサーリンク

AtCoder初心者に不向きな言語。JavaScriptは全くオススメできない。

実は僕も、AtCoder登録したての頃は「JavaScript」を使っていました。(当時はchrome拡張機能をよく作ってたので、その名残です)
が、問題を解いていくうちにJavaScriptは全くAtCoder(≒競技プログラミング)向けではないという事がわかりました。

なぜなら、

・速度が遅くTLEになりやすい
・コードが煩雑になりやすい
・他の人のコードを参考にしづらい

という3つの大きなデメリットがあるからです。
それぞれ詳しく見てみましょう。

「速度が遅くTLEになりやすい」

これは、本来C++やPythonであれば一瞬で行える処理が、JavaScriptという言語のシステム的に異様に時間がかかってしまうケースが多発するということです。

つまり、「解き方や考え方が全く同じなのにも関わらず、処理時間オーバーで不正解となってしまうハンデ」を最初から背負っている状態で挑戦することと同義です。
というか、そもそもJavaScriptだと処理時間の関係で正解不可能な問題も割と早い段階で登場してきます。

ある程度競技プログラミングに慣れている中級者以上なら、制限時間が厳し目な問題も手間をかけ工夫をしてなんとか正解できる可能性はあります。
しかし初心者の方が初期段階でこのようなハンデを背負うと挫折してしまう可能性が高いでしょう。

「コードが煩雑になりやすい」

これも大きいです。
まず、準備段階である標準入出力を理解する時点で、いきなりわかりづらい
(僕は標準入出力について理解する時点で結構躓きました。Pythonから入っていたら何も苦労が要らなかったはず…)

標準入出力の理解しづらさのみならず、他の主要言語でデフォルトで搭載されている関数等を自分で実装しなければならないといった事も多々あります。

このように問題を解く上での本質的な部分以外での障壁が多いことも、初心者の心を折る要因の1つです。

「他の人のコードを参考にしづらい」

AtCoderでより上のレベルの問題を解けるようになろう!と思った場合、
提出欄から見ることができる他の人のコードを参考にすることは避けては通れません。
しかしここでもJavaScriptは、次の2つの障害があります。

①まず、「提出の絶対数が少ない」
JavaScriptでの提出を見ると、「灰色」「茶」といったレベルの人ばかりです。
水色以上になると提出が極端に少なくなり、各問題1,2人だったりする事もザラにあります。

②その上、「煩雑で読み辛い」
Pythonと比べるとコードの構造がわかりづらく、人によって書き方が多岐にわたります。
初心者にとっては、「書き方が人によってバラバラすぎるのに、果たして誰のものを参考にすればいいんだろう…」といった余計な悩みも生まれてしまうのが、他言語に比べて更にハンデとなります。

スポンサーリンク

結局、JavaScriptマニア以外にはおすすめできない

JavaScriptで競技プログラミングをする事に強い目的意識を有する/理由付けができる人であったり、
「JavaScriptを極めることが目的であり、AtCoderでの色やレーティングを上げる事は全く考えていない。」
という人であれば、JavaScriptでAtCoderに挑むべきだと思います。

しかし、色やレーティングを上げることがAtCoderに取り組む目的のうちの1つにある。という人がJavaScriptを選ぶのは、完全に非効率な方法を採っていると言わざるを得ません。

断定的な言い方になりますが、
JavaScriptではなく他の言語でAtCoderに取り組むべきでしょう。

コメント

  1. […] […]

タイトルとURLをコピーしました