2023年)新卒研修で競プロを4年ほど行って分かってきたこと|札幌開発のイベントレポート
ダイアモンドヘッド株式会社の小菅です。この記事は以下2020年に書かれた記事の2023年度版です。
札幌開発では新卒研修の一環としてTOPSICを利用したプログラミングコンテスト(競技プログラミング)を自社内で運営しています。
直近4年間で新卒社員が延べ80名程、インターンシップを含めると延べ150名程が参加し、TOPSIC内で解かれた総問題数が15,000問を越えた中で、得られたメリットが多々ありましたので、簡単に紹介して行きたいと思います。
プログラミングスキルの基礎が身に付く
ITエンジニアが扱う技術には移り変わりがありますが、普遍的に使われ続けている技術の1つが数値計算・データ構造・文字列処理と言った素のプログラミングです。
競技プログラミングでは素のプログラミングを扱うため、プログラミングスキルを見に付けるのにピッタリです。
苦手意識やコンプレックスの解消
エンジニアがコンプレックスを持ちやすい要素の1つがプログラミングへの苦手意識です。
得意な人も不得手な人もいる環境で、プログラミングコンテストを毎月行うため、また実施後に教え合う解き直し会も行われており、少しづつ出来るようになってプログラミングに自信を持つ方が増えて行っています。
同期と一緒に成長を実感できる
最初はプログラミングコンテストに慣れず点数が低かったとしても、練習問題を繰り返し解く事で徐々に点数が上がって行く傾向にあり、成長が見えやすいです。
運営側で毎月振り返りを行える解き直し会を行う中で、相互でコミュニケーションが取れるようになったり、分からない部分をお互いに説明し合う等、自然なフォローアップが出来ています。
言語仕様の理解力向上
プログラミング言語の特徴や標準ライブラリによって出力値にズレが生じて不正解になったり、実行速度への考慮が及ばずTLE (Time Limit Exceeded / 時間切れ)になったりします。
不正解となった理由を振り返る中で、言語の挙動や振る舞いの違いに気が付き、より深く学習する機会を得られているようです。
問題の理解力向上
プログラミングコンテストの難しさの1つに、出題される問題を「素早く」「正しく」「理解する」点があります。
問題の理解を間違えると結果も間違える、仕様の解釈を間違えると実装も間違える。仕事でも起こる一面がプログラミングコンテストを通じて伝わります。
また「問題が間違っている」と感じても、正解者がいると自分の間違いに気付くため、プログラマに求められる素養の1つである「自分で考えてから他の要因を疑う」を経験できるようです。
エンジニアとのコミュニケーション
今は管理職もプログラミングができて当然になって来ており、開発者とコミュニケーションを行う上での共有知識としてのプログラミングが必要です。
実装の段階でも積極的にコミュニケーションを取ると要件不備による手戻りや不具合を減らせますので、開発中にエンジニアとコミュニケーションを取る上でプログラミングの理解があるとスムーズです。
プログラミングできる開発者のみになる
ITエンジニアには専門性が求められます。プロジェクト管理を出来ない人が、プロジェクトを管理するとプロジェクトは失敗しがちです。
同じように、ソフトウェア開発ではプログラムを書けない人がプログラムを書くとソフトウェアは完成しません。
こう書くと当たり前ですが、IT業界で守られていない習慣の1つであり、例えばループの終了条件を正しく書けないスキルのエンジニアが何十年と開発の仕事を続けられる業界です。
プログラミングコンテストを開始して年数が経ち、エンジニア職で新卒入社した全員が一定以上で正しいプログラムを書ける状況になっているため、プロジェクト管理上の問題や要件違い等による納期遅れなどはありますが、そもそもソフトウェアが出来ていない状況は起こらなくなりました。
まとめ
世界中で行われている競技プログラミングを使ってエンジニアの基礎であるプログラミングを学ぶことによって、新卒にとって長い時間を過ごすエンジニアライフが少しづつ豊かになっているのを感じています。
今後も継続してプログラミングコンテストを社内で運営して行きたいと考えています。
エンジニア職に興味をお持ちの学生へ
私たちは新卒エンジニアとインターンシップ参加者を通年で募集中です。興味のある方は以下のエンジニア採用サイトをご参照下さい。
以上となります。ご拝読ありがとうございました。