見出し画像

#26 【未経験エンジニア】競技プログラミングのすゝめ

未経験エンジニアにオススメのプログラミング能力向上術をお伝えします。

競技プログラミングをやってみよう。です。


〇競技プログラミングとは

競技プログラミング(以下、競プロ)とは、プログラムを使って問題を解くコンテストのことです。
プログラミングのスポーツのようなものです。与えられた問題を制限時間内に素早く正確に沢山解いた順に順位がつけられ、順位に応じてレーティングが付与され、プログラミング能力の指標となります。

AtCoderという競プロのレーティング

◯なぜ競技プログラミングなのか

競プロがなぜプログラミング能力向上に効果的なのか、ChatGPTくんにも聞いてみました。

1. 効率的なアルゴリズム設計: 競技プログラミングは最適なアルゴリズムの構築を要求し、これが実世界の課題においても効果的な問題解決を可能にします。

2. 時間制約に対する対応力: 時間内に最適な解法を見つける必要があるため、スピードと正確性のバランスを取る練習がエンジニアにとって非常に有益です。

3. コーディングスキル向上: 競技プログラミングではシンプルで効果的なコードが求められるため、洗練されたコーディングスキルの向上に寄与します。

その他にも、アルゴリズムや回答のアプローチを調べる調査能力や思考の瞬発力が身につくことや、コンテストは毎週のように開催されるため数が打てる環境があることなど。
個人でプログラミング能力を向上させるには良い条件がそろっています。

競プロ界隈はコミュニティが確立されている点も参加のハードルが下がって良い点でしょう。

◯私の周りの競技プログラミング勢の活躍ぶり

私の職場には若手を中心に競プロ勢が多く在籍しており、活躍するまでのリードタイムが短い印象があります。
webアプリの開発経験はなくても競プロの経験がある方はみんな同様です。

競プロで鍛えられているためか、短い時間で素早く考え行動に移すことが出来ます。わからないこともすぐに自分で調べ、それでもわからなければすぐに質問してくれます。短い時間でアウトプットを出すということに慣れているというのは仕事においても大きなアドバンテージになります。

どんどん仕事をこなすので、どんどん新しいチャレンジが巡ってきて、さらにどんどん活躍されています。

競プロで鍛えた能力はITエンジニアでなくても活きてきます。

◯終わりに

実は私自身は実は競プロをほとんどやっていませんw
個人でWebアプリを作ったりもしていましたが、ほぼほぼ仕事現場で学びました。

私の場合は未経験でも多くのチャンスをもらうことが出来たので、仕事としての開発経験の中でプログラミング能力を獲得していけました。
それでも、もっと立ち上がりを早くするためにはと考えると競プロをやっておけば良かったと思っています。

エンジニア界隈では当たり前のことかもしれませんが、プログラミング能力を向上させたいという方の参考になれば幸いです。

今日も最後までお読みいただき、ありがとうございます。

この記事が気に入ったらサポートをしてみませんか?