CodeGym /Java Blog /ランダム /スポーツとしてのコーディング。競技プログラミングのショートガイド
John Squirrels
レベル 41
San Francisco

スポーツとしてのコーディング。競技プログラミングのショートガイド

ランダム グループに公開済み
私たち人間は、行うことすべてにおいて互いに競争する傾向があり、それがおそらく私たちが種として成功した主な理由の 1 つです。プログラミングも例外ではありません。コーディングは非常に複雑で多層的で要求の厳しい分野であるため、プログラマーが誰が最も能力があるかを見つけるために互いに競争することに熱心であることは驚くべきことではありません。 スポーツとしてのコーディング。 競技プログラミングのショートガイド - 1

競技プログラミングとは何ですか?

競技プログラミングは、参加者がプログラミングのスキルと、アルゴリズムやデータ構造などの CS 分野の知識を使用してコーディングの問題を解決するマインド スポーツの一種です。。このような競技会の参加者はスポーツプログラマーとも呼ばれ、さまざまな制限の下で、提供された仕様に沿ってコードを記述する必要があります。勝つために、スポーツプログラマーは、与えられたタスクの解決策となるコードを考え出す必要があります。勝者は、費やした時間、最終コードの品質、実行時間、プログラムのサイズなどの多数の基準に基づいて宣言されます。Google、Facebook、Amazon、Microsoft などの多くの大手テクノロジー企業が決定します。 、競技プログラミングをサポートし、競技会の開催に参加すると同時に、才能のあるスポーツプログラマーを雇用しています。1970 年代に始まった国際大学プログラミング コンテスト (ICPC) は、最古の競技プログラミング コンテストとして知られています。

競技プログラミングのメリット

プロのプログラマーとして競技プログラミングに参加することで得られるメリットの簡単なリストを以下に示します。
  • ロジックやアルゴリズム、基本的な数学、データ構造、計算的思考、デバッグなどのプログラミング スキルの向上。
  • あなたの専門的なポートフォリオや履歴書に追加するのに最適です。
  • 市場のリーダーに注目され、魅力的な仕事のオファーを得るチャンス。
  • コーディングのさまざまな側面を練習する方法。
  • 開発者コミュニティにおけるソーシャルなつながりとネットワーキング。
  • エキサイティングで競争力のあるコンテスト。

競技プログラミング プラットフォーム

これらは、インターネット上で利用できる最も人気のある競技プログラミング プラットフォームの一部です。 CodeChef は、毎月数百の課題といくつかの新しいコンテストが開催される競争力のあるプログラミング コミュニティです。 Codewars は、プログラミングの課題を解決するコーディング オンライン コミュニティです。独自のチャレンジを送信して、他のユーザーによって評価されるようにすることができます。 最も人気のある競技プログラミング プラットフォームの 1 つ。毎年定期的に競技プログラミングマラソンを開催し、数十の課題を提供します。 HackerEarth には、さまざまな難易度の 10,000 を超えるプログラミング チャレンジがあり、誰でも利用できます。 Codeforces はロシアの競技プログラミング プラットフォームで、何百ものプログラミングの課題があり、あらゆる種類のコンテストを頻繁に開催しています。 コンピューター サイエンスのさまざまな分野でプログラミングの課題を提供し、毎年コードプリントやその他の競争力のあるプログラミング コンテストを主催します。

競技プログラミングコンテスト

毎年、数十の競技プログラミングコンテストが開催されています。ここでは、最も人気があり有名なものをいくつか紹介します。
  1. ICFPプログラミングコンテスト
1998年から毎年6~7月頃に開催される国際的なプログラミングコンテスト。
  1. トップコーダーマラソンの試合
競争力のあるプログラミング コミュニティ コンテストの中でも人気があり、多額の賞金が得られます。Topcoder のマラソンは通常約 2 週間続き、参加者にはソリューションを改善する機会が与えられます。各一致には、すべてのソリューションの品質を出力する異なるスコアリング メカニズムがあります。
  1. CodeChef ロングチャレンジ
CodeChef Long Challenge は、最長 10 日間続く毎月のコンテストです。
  1. Facebookハッカーカップ
Hacker Cup は、Facebook が毎年開催するオープン プログラミング コンテストです。世界中から参加者が参加でき、多額の賞金を賭けた複数のラウンドで構成されています。
  1. Google コードジャム
Google Code Jam は、Google が主催および運営する国際的なプログラミング コンテストです。2003年から毎年開催。
  1. アメリカン コンピューター サイエンス リーグ (ACSL)
American Computer Science League (ACSL) は、中学生と高校生を対象としたコンピューター サイエンスとプログラミングのコンテストを開催します。
  1. 国際大学プログラミングコンテスト (ICPC)
国際大学プログラミング コンテストは、大学生を対象としたアルゴリズム プログラミング コンテストです。競技プログラミング コンテストの中で最も古いものの 1 つ。

ヒントと推奨事項

最後に、競技プログラミングに興味がある場合に役立つヒントと推奨事項をいくつか紹介します。
  • プログラミング言語を選択します。
これは非常に明白ですが、それでも言及する価値があります。競技プログラミングで使用するには、自分が最も使いやすいプログラミング言語を選択することから始める必要があります。C++、Java、Python は最も一般的であり、ほとんどの競技プログラミング コンテストで広く受け入れられています。
  • データ構造とアルゴリズムについての十分な知識を深めます。
競技プログラミングの課題をうまく解決するには、少なくともデータ構造とアルゴリズムの基本を知っていることが本質的に重要です。アルゴリズムデータ構造に関する記事で、これらのトピックに関する学習教材へのリンクを確認してください。
  • 自分のコーディング スタイルとプログラミングの課題へのアプローチを見つけてください。
競技プログラミングの課題の参加者が解決する必要がある課題の大部分には、複数の解決策があります。目標は、最適なソリューションを見つけ出すことです。したがって、独自のコーディング スタイルの開発に焦点を当て、これらのプログラミングの課題にアプローチすることで、時間とコードの実行に必要なスパイスの点で最適なソリューションをコーディングできるようになります。
  • さまざまな競技プログラミング Web サイトやコンテストに挑戦してください。
すべての競争力のあるコーディング コンテストや課題では、アルゴリズムの問​​題を解決する必要がありますが、これらの問題のスタイルや出場者への要件は、難易度や時間の制約へのアプローチなど、さまざまな点で異なる場合があります。したがって、競技プログラミング全般についてより良い感覚を得るために、少なくともいくつかの異なる問題に挑戦することをお勧めします。
  • プログラミングの問題を定期的に解決し続けてください。
ほとんどのことを成功させるには定期的な練習が重要ですが、競技プログラミングでは特に重要です。コーディングの問題に対する適切な考え方とアプローチを身につけるには、定期的なトレーニングが必要です。特に競技プログラミングの問題が難しすぎると感じるかもしれない最初の段階では、上記の特殊なプラットフォームに限定する必要はありません。CodeGym を使用すると、1,200 を超える Java コーディング タスクを練習できるほか、コーディング ゲーム技術面接の準備プラットフォームとしても使用できます。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION