得意なものと不得意なもの(AtCoderと将棋ウォーズ)

日紀

日本に帰ってきてから数か月、土日にときどき開催されるAtCoder Beginner Contest (ABC)に参加している。これは競技プログラミングというもので、数学とかアルゴリズムの分野から問題が出て、どのくらい早くその問題が解けるかを競う。ABCはいままで出た数回を見てる限り、休日の夜9時から始まり、100分間苦しみながらコードを書き、終わった後に解けなかったことを悔やんだり、自分の頭の悪さに嫌気がさしたりする、というタイプの楽しいアクティビティである。直近の問題だとこれ

もう一つ日本に帰ってからこどもと一緒によくやっているのが将棋ウォーズ。無料で1日3回だけ将棋ができるオンラインゲームである。これも今日は勝つぞー!と思って対局をはじめて、ボコボコにされて、なぜ自分はあそこで悪手を打ってしまったのか、どうしてこの詰みがわからなかったのかと悔やむタイプの楽しいアクティビティである。

この2つの共通点は自分の頭だけを頼りにオンラインで人と競い合う点である。そのため、それぞれレーティングが決められており、ある調査によるとAtCoderの茶色が将棋ウォーズの1級である(下記)。

いまの自分の実力は、将棋ウォーズは3級(ただし達成率は20%付近をうろうろしているので限りなく4級に近い3級である)。

AtCoderは茶色になったところだ。

この2つに対してはどちらも思うことは同じで、自分はこのタイプの、頭を使ってリアルタイムに結果を出すということがそれほど得意ではないということだ。将棋はもはや8歳の息子に抜かされ、平手では勝てなくなった。ABCをやっていると、自分が全然できなかった数学の問題を簡単に解いている人を日常的に見るという、つらい大学受験勉強を思い出す。

一方で、同じようなジャンルなのにコストパフォーマンスに違いがあるということである。将棋は小さいころからやっていて、いままでかなり時間をかけてやったと思うが全然伸びない。一方で、AtCoderはこの前はじめたばかりで、アルゴリズムの勉強もほとんどしていないが、茶色になれた。将棋ウォーズで1級(AtCoderの茶色)になれる日が来る気はしないが(数冊本を読んだとしても)、AtCoderはアルゴリズムの勉強をすれば茶色の次のレベルにいけそうな気がしている。

なぜだかわからないけれど得意不得意があるのは面白いなと思う。ほかの人と同じように頑張っても、なぜか他の人よりできないことが今までの人生では多かったように思うけれど、一方で同じことをやっても他の人よりできることもあるんだろうなと感じた(ただしもちろんこれにはいままで受けた教育ややってきた仕事が影響している)。

(この話は将棋ウォーズとAtCoderのレーティングが比較できるという過程に依拠している。なので、AtCoderの茶色は将棋ウォーズだと実質3級だよって話になると、どちらも同じくらいだねって感じになってしまう。See what happens.)

参考(いままで受けた教育ややってきた仕事):

前提条件として、筆者は約10年間エンジニアとして働いており、とくに力学や空気力学を専門としている。学部の専攻は機械工学、修士の専攻は航空宇宙工学。日々の仕事としてプログラミングは書く(Python、Matlabなど)が、データ処理やコード修正が主で、ソフトウェア開発経験はない。大学・大学院を通してComputer Scienceを体系的に学んだ経験はゼロ。

コメント