loading...

競技プログラミングで、日本を高度IT人材大国に!No.2

本当に不足しているIT人材が集う場所

2019/10/04

自身が世界トップクラスのプログラマーでもあり、競技プログラミングコンテストを開催するAtCoderの代表でもある高橋直大氏に登場いただき、高度IT人材の採用と育成について考える本連載。今回はAI人材の正体と日本人プログラマーのレベルについて語ってもらいました。

AI人材とアルゴリズムはどう関係している?

前回、散々アルゴリズムの話をしてきましたが、ここで、前回冒頭に挙げた「AI人材」の話に戻りましょう。AI人材とは、果たして何でしょうか?いや、そもそも「AI」とは一体何でしょう?

AIがArtificial Intelligence=人工知能の略であることは、皆様はご存知の通りでしょう。狭い意味で言えば「コンピューターを用いて人間を模したもの」ですが、残念ながら現代のビジネス領域においては、AIという単語は、この意味で使われておりません。

では、どのように使われているかというと、とてもストレートに言ってしまえば、「凄いプログラム」です。プログラムの中で、何か凄そうな要素があれば、それらはAIと呼ばれているのが現状です。強いて言うのであれば、ただの単純作業ではなく、何か考えているように見える要素がある、というところでしょうか?

画像1

例えば前回記事で紹介した「数当てゲーム」のプログラムなんかは、情報科学の領域においては、AIと呼ばれることはほとんどないでしょう。しかし、ビジネス領域においては、ああいったものもAIに含まれています。AIという単語が必要以上に使われてしまっており、発言者によって意味が変わってきてしまう、というのが残念な現状です。

画像2

さて、ここまでを踏まえた上で、AI人材とは何でしょうか?個人的な解釈を述べるとすれば

「何か凄い手段によって、これまでコンピューターで処理できなかったものを、コンピューターで処理可能にできる人材」

と言っておけば、そんなに間違っていないのではないでしょうか?

この「凄い手段」というのが実はポイントで、この手段こそが、前回解説した「アルゴリズム」なわけです。最近流行のワードを挙げれば、「ディープラーニング」や「機械学習」なんて、まさにアルゴリズムの塊です。優れたアルゴリズムが扱える人材こそが、AI人材と呼べるのではないでしょうか?

画像3

もちろん、プログラムを組む上で、必要なものはアルゴリズムだけではありません。「多人数でソースコードを書くための手法についての理解」「便利なツールについての知識」「セキュリティーに関する知識」など、必要なものは無数にあり、それらの知識やスキルのある人がいなければ、決してプログラムは完成しないでしょう。

また、AI人材というのは、そもそもプログラマー側だけの話なのか?という議論も存在します。政府が発信している「数十万人不足する」という数字は、日本のプログラマーの数を考えるととてつもなく多い人数であり、これは、プログラマーだけではなく、「プログラマーとの仲介役」のような人も含んでいるのではないか、というのは、当然考えるべきことです。

しかし、いずれにせよ、「アルゴリズムができる人材」が将来的に必要とされている、ということに変わりはありません。

優れたアルゴリズムの開発能力があることや、既知のアルゴリズムを理解しているということは、これまで技術的に作成することができなかったプログラムを作成する力に直結するものであり、まさに、エンジニアに今後求められていく能力のひとつでしょう。

AI人材が集う、競技プログラミングとは? 

前回、今回とプログラミング、アルゴリズムの話をしてきましたが、実は、それ自体を競技として競っているスポーツがあります。それが「競技プログラミング」です。

競技プログラミングはさまざまな形式のものがありますが、最もシンプルなのは、以下のような形式です。

① インターネット上で問題が複数出題される
② 解く問題を選び、問題の要求を満たすプログラムを作成する
③ 指定されたウェブサイトにソースコードを提出すると、問題文の要求を満たすかが自動的に採点される。正解であれば問題に応じた点数が獲得できる。
④ 解けた問題数や点数、解くまでにかかった時間などで順位付けが行われる。
⑤ コンテストの結果により、実力評価であるレーティングが変動する。

画像4

コンテストでは、前回紹介した「Hello World」と出力するだけのような簡単な問題から、アルゴリズムを工夫して高速に計算をすることを要求されるような難しい問題まで、さまざまなものが出題されます。

こうした場でさまざまな問題に挑戦し、研鑽を積むことで、アルゴリズムに強い人材へと成長することができます。

…というのが表向きの説明ですが、競技プログラミングに取り組んでいる人々の多くは、そういうモチベーションで参加しているわけではありません。主に「娯楽性」を重視して参加している人が多いのですが、このあたりの日本の競技プログラマーの詳細の話については、次回に回そうと思っています。

実は日本はIT人材大国!?日本の競技プログラミングのレベルは?

競技プログラミング、という単語をもし今日初めて聞いたとしたら、もしかしたら、少しITの話題に対する感度が足りないかもしれません。競技プログラミングは確かに数年前までは非常にマイナーなスポーツでしたが、昨今では、決して無視できない人数が参加するスポーツに進化しています。

あちこちで漠然と「ITに弱い」といわれている日本ですが、競技プログラミングも弱いかといわれると、決してそんなことはありません。日本は競技プログラミングでは世界第3位の競技プログラミング大国であり、非常に多くの日本人エンジニアや学生が、競技プログラミングに挑戦しています。

現在では、日経新聞社が、決勝大会に500人を招待する大規模大会を開いていたり、毎週末のコンテストに5000人以上の日本人が同時参加しています。そういった大会で成長し、世界のコンテストでも活躍したような学生が、どんどんIT企業に就職し始めている、というのが、最近の流れとなります。

さて、そんな、AI人材宝庫である競技プログラミング。そして、日本で最も参加人数が多いコンテストがAtCoderです。

AtCoderがどんなサイトであり、どんな人材がいるのか、といった話は、次回の記事をお楽しみに!