競技プログラミングで利益をあげるために最も大切なことは何か
はじめに
この記事はCompetitive Programming Advent Calendar 2014の24日目に相当します。
Competitive Programming Advent Calendar 2014 - PARTAKE
メリークリスマス。みなさま、いかがお過ごしでしょうか。僕は東京で一人、元気に生きております。
今年もアドベントカレンダーを書きます。去年の記事を掲載しますが、なかなか過激なことを書いたなあと一人で感慨深い気持ちに浸っております。今年も過激なことを書きたいです。よろしくお願い致します。
お金に関すること
AtCoder株式会社は趣味でやっているわけではありません。株式会社です。そのため、株主が存在します。僕は名目上、「取締役」という大層な役職を背負っているので、売り上げをたてて、利益をあげる義務を負います。つまり、お金を稼ぐのがいちばん重要な仕事と言えます。もう少し厳密にすると、「利益を立てる仕組みを構築すること」が僕の仕事です。
このごろ、「好きなことで生きていく」という非常に芳しい言葉がネット上に蔓延っています。若干の気持ち悪さを感じます。趣味起業も同様です。好きなことだけでお金を稼ぐのは可能かもしれないけど、それであなたはどうなんですか。何がしたいんですか。自分が輝いていれば満足なんですか。
「社会に影響をあたえること」でお金を稼がないといけません。株主は僕にそれを期待しています。とはいえ、経営者が「社会に革命を起こすんや!」とか言ってやった事業が全然利益あがらなかったら、それはもう会社として駄目駄目なわけです。また、お金に執着して、いきなり「まとめブログ(キュレーションとか難しい言葉使わないでよ...)」でアフィリエイトを始めても、きっと金額ほどは評価されないです。社会に対して良い影響だとは僕の関係者が思わないので。そのあたりのバランスが難しいなと感じています。
お金稼ぎの仕組みを構築する方法
全然わからないけれど、現状の社会構造に問題点をみつけて、それに対する解決方法を提案すればある程度はなんとかなるんじゃないでしょうか。
社会構造に対する問題点とは
ぼくの場合、去年書きましたが、
- いまのプログラマ採用手法っておかしくない?という純粋な疑問
- もしかして、これからもっと「生まれた場所で人生決まる」んじゃない?といった個人的な腹立たしさ
- 世の中、もっともっとテクノロジーが発達するので、エンジニアリング能力を持った人が評価されるだろうし、いまですら評価されてもいいのに、全然評価されてないんじゃないの?という妄想
の3点です。これらに対して、競技プログラミングを使った提案をしたいです。というか、すでにしてます。
どうやって社会構造に対する問題点をみつけるのか
実は、これがいちばん重要で面白いです。社会問題をみつけるために、公的な機関が発行しているデータを読むだけでは不十分です。それに対して自分なりに何らかの感想・疑惑・意見を持つことで、「データ」が「情報」に変化します。
人の価値観は千差万別で、僕は「生まれた場所で決まる人生だなんてつまらないし、そんな社会に生きていたくない」とすら思っていますが、それがサイコーだと感じる人もいるでしょう。僕はその価値観を、共感はしませんが理解はします。自分の中で、何が好きで何が嫌いなのか、はっきりと言えるようにならないと、自分の価値観を自分で認識することはできません。その価値観を形成してから、はじめて、「社会はこうあるべきだ!」という思い込みをすることができます。
要は自分自身とどこまで向き合えるか、それに尽きます。そのために、朝早く起きて出社までの数十分間でもいいから、自問自答を繰り返さないといけません。これが面白くて、本当に本当に辛い作業です。決して寝る前に行ってはいけません。絶対に眠れなくなるから。起きてからやるのが正しいです。やりはじめのころは、これを「趣味」だと割り切っていましたが、いまは「業務」だと思い込んでいます。
まとめ
競技プログラミングだけではなく、自分の好きなことで、社会に対して影響をあたえるためには、朝早く起きて自問自答を繰り返し、自らの価値観を醸成するのが最も大切だと思います。以上です。
補足
- この記事は、誰にでも当てはまる一般論ではない。
- この記事の価値は数年後に決まる。