AI時代のモノづくりには競技プログラミングが役立つ!? パナソニックグループのエンジニアが対談
自動車や家電製品など様々な製品にAIやソフトウェアが組み込まれる時代が到来しています。そうした時代の流れからパナソニックグループでは情報系人材の採用を強化しており、競技プログラミング経験者には特に注目しています。
パナソニックグループでは、競技プログラミング「AtCoder」に挑戦する社員たちによるコミュニティ活動も行われているほか、AtCoder上で「パナソニックグループプログラミングコンテスト」を開催するなど、競技プログラミングを盛り上げる活動にも力を入れています。
今回は、パナソニックグループにてAI/機械学習の研究開発を担当する小野 正貴氏と矢谷健一氏にAtCoderのコミュニティ活動についてお話を伺いました。
プロフィール
研究部門を横断した機械学習モデル開発基盤の構築と運用を担当
車載機器のAI技術開発を担当
パナソニックグループの競プロ経験者たちのキャリアとは
機械学習技術を用いた製品を送り出す土台作り
小野 : パナソニック コネクト株式会社でソフトウェアエンジニアを務めている小野です。
今回は、AtCoderコミュニティで一緒に活動されている矢谷さんに直接お会いできることを楽しみにしていました。
矢谷 : パナソニック オートモーティブシステムズ株式会社でソフトウェアエンジニアとして働いている矢谷です。私も非常に楽しみにしておりました。本日はよろしくお願いいたします。現在、小野さんはどのような仕事を担当されているのでしょうか?
小野 : 研究部門を横断した機械学習モデル開発基盤の構築と運用をしています。最近はパナソニックグループ内でも機械学習技術を用いた製品やサービスが増えてきていて、実用化レベルで求められる品質の確保や、迅速かつ定期的な機械学習モデルのリリースが必要とされています。そうした課題をクリアするために、機械学習モデルの開発者やそのモデルを使うシステムエンジニア、その先のお客さまと連携して、データや実験条件・計算リソースの管理を効率よく行うための基盤の開発に取り組んでいます。
矢谷 : それ以前はどういったことをされていたのでしょうか?
小野 : 以前は機械学習技術を用いた製品検査装置の開発、新規事業のための機械学習モデルやPoC(概念実証)ソフトウェアの開発を経験してきました。検査装置の開発では、検査工程で定められた時間内に処理を終えなければならない中、ソフトウェアでどのような処理を行えばよいかを考えることが求められました。
ユーザーにより近く、サステナブルな会社で働きたい
小野 : 矢谷さんは現在どういったお仕事をされているんですか?
矢谷 : 私は車載機器向けにAIを組み込むための技術を開発しています。
例えば、カメラを使って歩行者や車中にいる人を認識するといった利用シーンを想定しています。パソコンに比べて非常に限られたリソースでも、AIで認識処理できるようにするための技術開発を行っています。
小野 : いろいろな選択肢がある中で、パナソニックに入社したのはなぜですか?
矢谷 : 私は子どもの頃から工作やプログラミングが好きだったので、モノづくりができる会社、できればユーザーに近い製品を開発している会社がいいなと思っていました。
また、サステナブルな会社で働きたいとも思っていたのも入社理由の一つです。昔から地球環境に配慮してきたパナソニックは魅力的でした。小野さんはいかがでしょう?
小野 : 私は家業が建築関係だったこともあり、子どもの頃から端材で工作するのが好きだったんです。そこから自然とモノづくりを仕事にしたいと考えるようになり、家電などコンシューマー製品で多くの人から親しまれているパナソニックに興味を持ちました。
学生時代に出会った競技プログラミングとの「再会」
東京に行きたくてAtCoderに参加
矢谷 : 私と小野さんが出会ったのは「競技プログラミング」がきっかけでしたね。
今は社内活動が非常に盛り上がっていますが、そもそも、小野さんが競技プログラミングと出会ったのはいつですか?
小野 : はじめは大学の研究室の仲間から誘われたのがきっかけで、AtCoderをはじめました。愛知県の大学に通っていたんですが、上位に入ったら東京のイベントに招待されると聞いて、コンテストに参加しました。ちょっと不純な動機ですが、東京へ行けるかもしれないと思って参加したのを覚えています。でも、それっきりでした。
競技プログラミングとの再会は2020年です。AtCoderで「パナソニックグループプログラミングコンテスト」が開催されたので、再び参加してみました。ただ、対策をしていなかったこともあり結果はボロボロ。すぐに参加を諦めてしまいました。
最終的に取り組みだしたのは1年ぐらい前のことです。新規事業の開発を担当する中で、PoCに使うデモ用アプリを作りながら力不足を感じていました。他に抱えている仕事と並行してプログラムを書くだけではプログラミングスキルを磨くことが難しく、もやもやしていたんです。そこで仕事外でも「書く習慣」を身につけたいと思い立ち、何かお題を与えられたほうが続きやすいと考えて、AtCoderに向けてやっと勉強を開始しました。
世界規模で自分のプログラミング能力を知る
小野 : 矢谷さんは、いつから競技プログラミングにチャレンジしたんですか?
矢谷 : 競技プログラミングと出会ったのは学生時代でした。一つ上の先輩から誘われてプログラミングコンテストに参加しましたが、私も数カ月だけでそれ以来、競技プログラミングから離れてしまいました。とはいえ、いつか再挑戦したいという気持ちは持っていました。
コロナ禍で家にいることが多くなり勉強する時間を確保できるようになってから、自分のプログラミング能力が世界でどれぐらいの位置なのか知りたくなって、またAtCoderを始めました。ちなみに、学生のときに声をかけてくれた先輩は現在、AtCoderで最上位のレッドコーダーになっています。
AtCoderで競技プログラミングを再開したのには、もう一つ理由があります。それは日頃から仕事でソフトウェアの開発に携わる中で、会社として開発力を上げればより良い製品を世に送り出せるのではないかと考えていたことです。周囲に競技プログラミングの話をしてみたところ、興味を持っている人が多くいることが分かったので、私が運営に関わっている「技術チャレンジ部」の新しい活動の一つに競技プログラミングを加えました。技術チャレンジ部は他にもAI制御でレースをしたり、ゲームでPythonを学んだりする活動もしています。
小野 : お互いに競技プログラミングと再会したのは、パナソニックへの就職後だったんですね。矢谷さんたちの技術チャレンジ部とは別に、パナソニックグループではMicrosoft Yammerを使った社内SNSにもAtCoderのコミュニティがあります。
孤独を感じないパナソニックの「AtCoderコミュニティ」
矢谷 : 社内にそうした技術コミュニティがあるのはありがたいですよね。
小野 : そうですね。だいたいコンテストが開催されるのは土曜日か日曜日なので、週明けに社内SNS上で成績を報告したり、感想やアドバイスを言い合ったりできる場があるのはいいですよね。
矢谷 : 多くの方に興味を持ってもらえるのはうれしいですね。技術チャレンジ部では、競技プログラミングを知らない人や、プログラミングが初めての人にもきめ細かくサポートできるように、5人前後のグループに分けて、毎週Web上で定例会を行っています。それ以外にも勉強会を開催したり、有志で書籍の輪読もしたりしています。情報系の専攻でない方も多いですし、まずは活動の裾野を広げたいと考え、技術チャレンジ部ではAtCoderの「茶色レート」になることを最初の目標として設定しています。40名が茶色レートに入ることを目標としており、現時点では約10名が達成しました。
小野 : 矢谷さんからみて、コミュニティで活動する良さには何がありますか?
矢谷 : 1人で取り組むよりも刺激を受ける機会が増えたことです。解けないと思い込んでいたレベルの問題も、周囲の人が挑戦したという話を聞くと、自分も挑戦してみようと思うようになります。実際にチャレンジしてみて解けるようになり成長を実感できましたし、コミュニティに参加している人たちも、解ける問題が増えているようです。
小野 : 競技プログラミングは個人戦なので孤独だと感じることがありますよね。私自身、コミュニティに所属する最大の良さは孤独ではないことだと思っています。社内で取り組みについて話せて盛り上がれるのはとても楽しいです。AtCoderは丁寧な解説動画を提供していますが、それでも納得しきれず苦しむ時があります。だからこそ周囲に相談できる人がいるのは大きいですよね。1人で悩むばかりで先に進めない状態が続くと、本当に心が折れてしまいますから。
「なぜ、そうなるのか」を突き詰められるAtCoder
計算量への肌感覚とプログラミングの瞬発力を養える
矢谷 : AtCoderにチャレンジしたことが仕事に役立っていると感じたことはありますか?
小野 : そうですね。抽象的な話になりますが、一つは「計算量への肌感覚」を養うことができる点だと思います。仕事では「これぐらいのデータ量ならいったん実装を詰めなくてよさそうだ」とか、「1年後に貯まるログの量を考えると、工夫が必要だ」といった物差しとして、計算量の感覚は大事です。AtCoderの場合、計算量を把握できないとC問題以降を解くのは難しいので、その勉強の中で培うことができるのが良いと思います。
もう一つは、プログラミングの「瞬発力」が身につく点です。仕事はやってみないと分からないことが多いです。これも抽象的な話ですが、プログラミングという行為が重いものという先入観があると、そもそも試すまでが遠いし、なかなか前に進められないんですよね。だからこそ「これならすぐできるしちょっとやってみよう」と瞬発的に動ける領域を広げることは大事だと考えています。
AtCoderを例にとって言うと、AtCoder Beginner Contest(ABC)では、典型的なアルゴリズムとデータ構造で素直に書けば良いケースが比較的多いのですが、AtCoder Regular Contest(ARC)になると考察のウェイトが増え、頭で考えるだけでは煮詰まってしまうケースがあります。このとき、まずはTLE*だけど素直な解法を手早く実装して振る舞いを確認することがあると思います。
仕事中でも、とりあえず動かしてみることで開発しやすくなるケースはあるので、AtCoderへのチャレンジから良い影響を受けていると思います。
*Time Limit Exceeded. 指定された実行時間以内にプログラムが終了しないこと
「あ、あのときの」で働きやすさが段違いに
矢谷 : 私は、シンプルなプログラムを書けるようになった結果、バグが発生しにくくなったと実感しています。コミュニティに参加されている皆さんも実感しているそうです。他のメンバーが書いたプログラムをレビューする際にも、バグが発生しにくくなるようにアドバイスできるようになりました。
小野 : それはありますね。バグに対する嗅覚とでも言うのでしょうか、プログラミングでやらかしがちなミスを防げますし、バグが発生したときの対処も速くなりました。
矢谷 : あとコミュニティでは、普段ならあまり関わることのない方と一緒に活動することもあるので、年齢や立場を超えて議論できるのも得がたい経験です。コミュニティには、以前私の部の隣の部長だった方も参加してくださっており、定例会でフラットに議論させていただいています。
小野 : 貴重なつながりができますよね。パナソニックグループでは多岐にわたる部門が協力して仕事を進める機会がありますが、初めての相手と会うとき「あ、あのときの」があると格段に話しやすくなります。社内には競技プログラミング以外にもたくさんの技術コミュニティがありますが、過去、あるコミュニティを通して名前を知ってくださって、異動先の部署でなじみやすかった経験もありました。同じく競技プログラミングを通じて接点を増やすことの価値は大きいと考えています。
矢谷 : 他にも競技プログラミングが仕事に役立ったと思ったことがあります。パナソニックグループでは「なぜ、そうなるのか」を常に考え、本質を突き詰めることが求められる文化があり、競技プログラミングでもロジカルに考えてシンプルで本質を突くコードを書くことが求められるので、そうした競技プログラミングで鍛えられる考え方の習慣は仕事に役立っています。さらに、仕事で本質を突き詰めることを鍛えられた結果が競技プログラミングにも生かされる好循環を生み出せていると感じますね。
小野 : 同感です。AtCoderのコミュニティでも、やはり「本質は何か」という議論をよくしています。
「いかに速く正しく動かすか」探求し続ける
チーム戦にも意欲的
矢谷 : 小野さんとしては、今後AtCoderのコミュニティでどのような活動をしていきたいですか?
小野 : 個人的な野望としては、チーム戦に出てみたいですね。コンテストはいくつかありますが、1チーム3名で構成される企業・学校対抗のプログラミングコンテストに興味があります。競技プログラミングは技術面の底上げに役立ちますが、純粋にゲームとしても楽しいなと感じています。だからこそチームだとより楽しめるのではないかと思っています。矢谷さんにはなにか野望はありますか?
矢谷 : 私は競技プログラミングを知っているソフトウェアエンジニアをもっと増やしたいと思っています。競技プログラミングを勉強すると、アルゴリズムやデータ構造の理解が深まって、よりバグが発生しにくいプログラムが書けるようになります。そうしたパナソニックグループのエンジニア一人ひとりの技術力向上が、ゆくゆくはパナソニックグループ製品の品質を上げ、経営貢献にもつながっていくはずです。
学び続ける姿勢が財産になるソフトウェアエンジニア
小野 : エンジニアは一生勉強が必要な仕事ですよね。例えば、今まで社内にあるサーバで運用していた環境をクラウド化するためには、共通する部分はあるにせよクラウド関連技術を新たに勉強する必要があります。
矢谷 : そうですね。IT業界は、次々と新しい技術が開発されるので「学び」の積み重ねが重要だと思っています。
小野 : 大学の講義や研究では与えられたことをこなす姿勢になっている方もいるとは思うのですが、競技プログラミングやソフトウェア開発のために能動的に時間を作って勉強している方は素晴らしいですし、その姿勢は今後もずっと生き続ける財産になると思います。
矢谷 : 今後、パナソニックグループを志望される方にも大事にしてほしい要素ですね。
小野 : 職場での仕事を通じて学ぶことももちろんありますが、自分の興味を生かして知識を広げる姿勢は、どのような分野でも役に立ちます。そういう前向きな姿勢の方と、一緒に仕事ができる機会があったら嬉しいですね。
矢谷 : 学生のうちから自分で勉強して、自分のプログラム力は世界でどれくらいのレベルなのかを把握してみてほしいですね。自己研鑽はとても大切です。私も学生時代にもっと勉強しておけば良かったと思いながら、活動しています。
今後、自動車業界ではこれまで以上にソフトウェアが担う役割が大きくなるでしょう。パナソニック オートモーティブシステムズ株式会社でも、ソフトウェア開発やマネジメントが重要になると考えており、競技プログラミングの経験者に期待しています。
パナソニックグループ全体では自動車や家電製品をはじめ、プログラミングとは縁が遠かった分野においてソフトウェアエンジニアが関わる場面が増えています。ハードウェアの制約がある中で、いかに速く正しく動かすかが問われるところは、競技プログラミングに似ているところがあると思います。パナソニックグループには競技プログラミング経験者が活躍できる場があることを広く知ってほしいですね。
編集後記
取材を通じて、お二人とも純粋に競技プログラミングを楽しんでいるという印象を受けました。また競技プログラミングを通じて、部署や役職の垣根を越えて交流しているというお話からパナソニックグループにはオープンでフラットなカルチャーが根付いているのだと実感しました。ぜひ競技プログラミング経験を仕事で活かしたいと考えている方は、一度お話を聞いてみてはいかがでしょうか。
取材/文/撮影:ノーバジェット
パナソニックグループには皆さまの
活躍のフィールドがあります!
Qiita Organizationも
ご興味のある方はフォローお願いします!