読者です 読者をやめる 読者になる 読者になる

新しい世界に踏み出そうか迷っている

才能とは、一瞬のひらめきやきらめきではなく、情熱や努力を継続できる力だ

と言ったのは将棋棋士羽生善治先生だけど、僕には研究することしか才能がないんじゃないだろうか、と最近思っている。

 思えば子供の頃から勉強ばかりしていて、勉強が楽しくて仕方なかった。数学は大の苦手だったけど、頑張って行きたい理系の大学に入ることはできた。でも、大学に入ると僕より頭の良い人が本当にたくさんいて、僕なんかの頭じゃ研究職につくことは無理なんだなと悟って、研究とは全く関係のない仕事に就いてしまった。

 前職の研修中に何もすることがなく放置された状態が数ヶ月続いたことがあったんだけど、誰に言われずともずっと社内の技術文書を読んで面白がっていた。そのうち忙しくなって技術と何も関係がない雑多な実務に追われるようになって、研究したいという気持ちと身体が離反して、そのうち体調を崩して退職してしまった訳なんだけど。

 退職した次に目指したのは大学院の博士課程に入ることで、仕事をして給料をもらうことなんかよりも研究していられればそれで良いと思っていた。退職してから入試まで半年の間は全て自分のしたいことに時間を費やせた訳だけど、その間もコンピュータ系の技術本を読んでずっと研究していられた。でも体調は思うように回復せず、入試も受けられず大学院に行くことも諦めてしまった。

 その後体調が少し回復してきたので、Webの開発をしている会社に入ることができた。Webの開発現場は技術がとても重視されていて、勉強できる技術が無限にあって、僕にとっては夢のような世界だった。最初のうちはプログラミングが楽しくて仕方がなかったんだけど、情報系の学科出身ではない僕にとって、プログラミングでの開発作業そのものよりも、その基礎にどういう科学があるんだろう原理の方がよっぽど気になりだしたのだった。

 その頃も相変わらず僕の体調は安定しなくて、思うように会社に行くことが出来ず、家でリモートワークすることが多くなってきた。家で仕事するって言ったってどうやって仕事をすれば良いんだろう、と悩んでいた頃にFacebookで流れてきた

ASCII.jp:“理系”と“エンジニア”は違うと思うのですよ (1/3)|スペシャルトーク@プログラミング+

という記事に、以下のようなコメントが付けられていたのを見つけたのだった。

エンジニアは「問題解決がメイン」、理系(つーか学者)は「一般的な原理の追求がメイン」と思ってます。そして人によって両者の割合が違ってくる。

 開発と研究、似てるようで相反する活動だと思っていたんだけど、割合としてとらえれば良いんだ……というところに頭をガツンとやられたような衝撃を受けたことを鮮明に覚えている。このコメントから、会社にいる時は開発活動をやって、家でリモートワークをする時は研究活動をするというアイデアが生まれ、ここ半年はそのアイデアを実践して開発と研究の二足のわらじを履く仕事生活を送っていた。

 最初は開発7割、研究3割ぐらいの配分で試して見ていたんだけど、体調がジェットコースターばりに日々アップダウンがある自分と、締め切りが必ず存在する開発作業とは相性がとても悪いということが判明してきて、思うように作業が進まない日が続いた。それとは逆に、研究作業というのは基本的に締め切りが無くて自分のペースで進められるので、病気との相性も良くて開発作業よりも研究作業の方が適性が高くて、進捗の方がとてもよく出るのだった。

入門 コンピュータ科学 ITを支える技術と理論の基礎知識

入門 コンピュータ科学 ITを支える技術と理論の基礎知識

 

  今はこの600ページぐらいあるコンピュータサイエンスの教科書で研究をしていて、10日ぐらい前に自分で選んで買ってもらったんだけど、こんな原理と技術でコンピュータは成り立ってるんだ……という感動があって面白くて、難しい本だけどもう半分も読んでしまった。……あれ?体調が良くない中で短期間でこれだけ読めたっていうのは結構すごいことなんじゃないだろうか。そう考えると、「やっぱり僕には研究ぐらいしか才能がないんじゃないか?」と、どんどん思えてきたのだった。他の人には出来ないけど、誰に言われずとも自分の心の赴くままにしてしまう事って、自分にはやっぱり研究しかないのだ。そういったものこそが才能じゃないのか。才能のあることだけに注力した方が、人の為にもなるし自分の為にもなって良いんじゃないだろうか。

 そんな感じのことを思ってTwitterとかで「研究したい」とか「研究楽しい」とか頻繁につぶやいてたら、その事を知ってか知らずかわからないけど「ディープラーニングでもやる?」みたいな事を会社で言われたのだった。ディープラーニングとは機械学習の一種で、去年プロの囲碁棋士と対決して話題になったAlphaGoというコンピュータプログラムにも使われている技術のことだ。コンピュータ囲碁だけじゃなくて、車の自動運転とか画像認識とか、いろんな分野で応用されようとしている最近流行の人工知能分野の技術だ。

 僕が機械学習のことを初めて知ったのは将棋の電王戦のときで、「コンピュータ将棋プログラムが強くなって嬉しい」とか「なかなか強くならなくて大変だ」みたいなことを開発者の人たちがTwitterとかニコ生で言ってるのを見ていて、なんだか楽しそうだなあと思ってずっと見ていた。頓挫してしまったけど、博士課程に入ろうとした時も機械学習を絡めた研究計画を練っていたこともあった。

 そんな経緯もあって機械学習をやってみたいと思うワクワクした気持ちがある反面、簡単に足を踏み出せない事情もある。機械学習をやるには高度な数学的素養が必要で、かなり難易度の高い分野なのだ。

 数学が苦手な僕が手を出してしまって、その難しさで自分が潰れてしまわないだろうか。でも、やりたい目的の為だったらやってみればなんとかなってしまうかもしれないしなあ。仮に原理が理解出来たとしても、会社で実用化できるかどうかなんてまた別次元の難しさだろうし、小さい会社だから僕一人でやれって言われても荷が重すぎるなあ。でも機械学習のライブラリも無償提供され始めたし、Web開発の世界に機械学習の波が押し寄せてくる時代が来るのも目に見えてるし、教育とか福祉の分野で機械学習で何か出来たらって思うとすごくワクワクするなあ。人生で何かにチャレンジできるのも30歳ぐらいまでだから、なんかちょうど大きな転機が来たかのような気もするんだよなあ。"Just temporary"って言うし、試しにちょっとだけやってみて、行けそうだったら深入りすれば良いしダメそうだったら引き返せば良いのかなあ。大企業で新規事業を起こすっていうのならともかくとして、小さい会社でたった一人で始める事だから、失敗したところでダメージなんて無いに等しいしなあ。

 そんな事を今週ずっとぐるぐる考えている。答えはまだ出ていない。ああ、どうしようかなあ。