こんにちは、モントリオール在住エンジニアのHaru(@hathle)です。
プログラミングを勉強していると、「自分の実力を試したい」と思ったことはないでしょうか?
私はあります!そこで何回かプログラミングコンテストに出場しました。自分の実力を試すのに、プログラミングコンテストはおすすめです。
どんなプログラミングコンテストがあるのか紹介します。
Contents
プログラミングコンテストとは?
コンピュータプログラミングの能力や技術を競い合うコンテストです。プログラミングでやるスポーツで、問題を解いたスピードやスコアを競い合います。
プログラミングコンテストに参加するメリット
プログラミングコンテストに参加すると確実にスキルアップにつながります。そして、実務にも役立ちます。
アルゴリズムに詳しくなり、より効率的にコードを書けるようになったり、バグを見つけるスピードがアップしたり、論理的に考えられるようになります。
プログラミングコンテストに出場し続けると、自分の上達がスコアとして現れてきます。右肩上がりにスコアが上昇していくので、日々の学習のモチベーションアップにつながります。
プログラミング初心者にこそおすすめです。
プログラミングコンテストでおすすめの言語
おすすめのプログラミング言語
- C++
- Python
- Java
C++
C++は実行速度が早く、よりスピードを求める場合に使用されます。組み込みなど、システム開発をする多くの企業も採用しています。
Python
Pythonは、他の言語に比べてシンプルで簡単です。どの言語を勉強しようかと迷われている場合は、Pythonがおすすめです。
最近話題になっている機械学習やデータ分析をする時にも使用されています。
Java
速度はC++よりは少し遅いですが、人気の言語です。アプリ開発など幅広い開発に使用されています。
プログラミングコンテストの種類
アルゴリズム系
アルゴリズムなどに関する問題を、より早く解くことを競い合うコンテストで、日本では競技プログラミングと呼ばれています。
他の人の解答も見ることができますので、新たな発見ができます。
コンテスト紹介
セキュリティ系
ハッキング技術を競ったり、バグを探したりセキュリティの問題点を見つけることを競い合うコンテストです。
ショートコーディング系
ソースコードのバイト数の小ささを競い合うコンテストです。
人工知能系
課題に従った人工知能(AI)を作って競技させるコンテストで、ゲームAI同士を対戦させる競技です。
人工知能(AI)は面白いです。想定されるあらゆるパターンを考えて、強いAIを作ろうと夢中になることができます。私も以前挑戦したことがあります。
コンテスト紹介
動画で見るとイメージしやすいと思います。
作品系
作品のテーマに沿って作るものや、自由につくるものがあります。
コンテスト紹介
プログラミングコンテストの実力を上げる方法
実力をあげるには、問題を解くことが一番の近道です。プログラミングコンテストで過去に出題された問題をすべて解きましょう。
似たような問題も多いので、一度解いておくと応用がききます。解けなかった問題は、何回も解いて一つずつ自分のものにしていきます。
蟻本と呼ばれているプログラミングコンテストチャレンジブックは、プログラミングコンテストの入門書で、アルゴリズムに詳しくなれます。
プログラミングスクール
プログラミングスクールに通い実力を底上げしましょう。TechAcademyがおすすめです。
1人ではプログラミング学習が続かない方のための、パーソナルメンターがつく「オンラインブートキャンプ」です。オンラインブートキャンプの特徴は下記の3つがあります。
- スクールに通わなくても、自宅などでオンライン学習できる
- わからないことはいつでもチャットでメンターに質問できる
- パーソナルメンターがついてオリジナルサービスやオリジナルアプリの公開までサポート
自分のオリジナルサービスやアプリを開発しながらプログラミングを実践的に学んでいただき、わからないことはいつでも現役エンジニアのメンターに相談することができます。
現在は、6つのコースがありいずれも最短4週間で完結します。
提供中のコース
- Webアプリコースコース
- iPhoneアプリコース
- Androidアプリコース
- WordPressコース
- Webデザインコース
- アプリUI/UXデザインコース
詳細はこちらをご覧ください。
まとめ
- 自分の興味にあったプログラミングコンテストを選んで、ぜひ挑戦してみて下さい。
- 楽しくプログラミングを学ぶことができて、確実にスキルアップすることができます。