ジンジャー研究室

長めのつぶやき。難しいことは書きません。

自分のやりたいことを正確に把握するのは難しい

キャリアの話になると、学生に向けて「自分の本当にやりたいことに向き合いましょう」というメッセージが発せられることが多い。それに対する学生側のよくある悩みは「やりたいことが見つかりません」「やりたいことがよく分かりません」というものだ。その様子を見ていて「やりたいことなんて考えなくても常にあるし簡単じゃん」と思ってたんだけど、最近は「本当にやりたいことを把握するのはめちゃくちゃ難しい」と思っている。

以下は個人的な話で、キャリアというよりは趣味レベルの話だけど、それでも難しいと感じている。

他人のやりたいことの影響を受ける

例えば SNS に、個人で Web サービスを作っている人とか、 OSS に貢献している人とかがいると、なんとなく自分もそれがやりたいような気持ちになってしまう。実際に Web サービスを作り始めてみると、ある程度動くようになったところでふと「よく考えたら別に Web サービスを運営したいわけでもないしお金を稼ぐモチベーションもないな」と気づいてしまう。

OSS も自作ライブラリは作るけど、他人のライブラリを一緒に良くしていこうとはあまり思わないので「貢献する」というモチベーションがない。パッケージとして公開するけど、ユーザーから issue や PR が来ると面倒臭いので最近は公開したくないほどだ。

フォローしている人の中には自作のプログラミング言語を作る人も多い。自分も面白そうだなと思ってちょっと作ってみて、ある程度動いたところで「こんなもんか」と思って満足した。でも好きな人は理論を体系的に学んでいるし、何より継続している。やはり冷静になると彼等ほどは好きでないことに気づいてしまう。

仕事の影響を受ける

仕事でなんらかのテーマを扱っていたとして、それが趣味に波及するパターン。例えば、 Swagger が面倒臭いからシュッとしたツールが欲しいみたいな場合に、プライベートでもそういうライブラリを作ったり色々調べ物をしていたりする。でも良く考えたら Swagger はほとんど仕事でしか使わないので、それに時間をかけるのは勿体無い。

あとは繁盛しているサービスでもないのに無駄にスケーラブルなアーキテクチャを考えてしまったりする。もっと手軽な方法もあるが、仕事と全然違うことをすると仕事に活かせなくてコスパが悪いと考えてしまう。

スキルの影響を受ける

仕事で使っているのが Web 関連の技術なので、なんとなく新しいアプリを作り始めると Web アプリになる。本当は VST プラグインが作りたいが C++ が分からないので WebAudio API で作ろうとしたり、その延長で OAuth とか SNS でシェアする機能とかを付けたりしてしまう。しかし WebAudio API をいくらこねくり回しても VST プラグインは作れない。

流行りに乗ってしまう

「これからはこの技術が来る!」とか言われると、「今これに乗っておけば将来それが流行った時に楽できるのではないか」と思って飛びついてしまう。かつては Kubernates であり、今は Rust であったりする。アーリーアダプターはエコシステムが貧弱だろうがものすごい労力をかけて進んでいけるので「将来」を「現在」にすることができるが、ただ「楽したい」程度のモチベーションでは将来は永遠に将来のままだ。ぶっちゃけ既存の道具を使う方が楽。

それから、こういうフロンティアを目の前にすると「画期的なシステムを発明したら一発当てられるのでは?」などと妄想してしまう。それは数年かけて会社を作ってやるくらいの覚悟が必要な話なのだが、 PoC とか言ってそれっぽいものを作って時間を無駄にしたりする。そりゃ PoC は簡単だよ。

ただ手を動かすのが楽しいだけ

プログラミングは楽しいから、ただ手を動かして何かを作って満足したいだけという場合がある。そう自覚しているのならそれでいいのだが、実際には「なんらかの目的のため」にやっていると思い込んで手を動かしていることが多く、ある程度手を動かして満足すると「実はそんな目的はなかったな、俺は一体なんのために...」となったりする。もちろんその過程で得られるものは多いので全く無駄な時間ではないのだが、何かもっと別の目的があるのであれば遠回りだ。

興味の対象が移り変わる

何かに夢中になっていたら、その過程で別の何かを発見してそちらに興味が移るパターン。例えば WebAudio API を触っていたら限界が見えてきたので wasm をやり始めて、 wasm をやっているうちに自作言語を作りたくなったりする。

連想式にやりたいことが増えていくので、優先順位をつけるべきだ。オーディオをやりたいのなら自作言語は我慢して適当な言語を wasm にコンパイルするのが一番早いはずだ。ただ問題は「やりたい順」に優先順位をつけると、その時点では自作言語が一番やりたいことなのでトップに来てしまう。ここで「いや、言語は今は別にいい」と言えなければならない。

短期的な報酬を求めてしまう

これが一番本質的で、ぶっちゃけここまでの話をなくしてこれだけでも話が成り立つのだが、具体的な話があった方が面白いかと思ってここまでダラダラ書いた。

ここでの報酬はほぼ承認欲求のことで、要するに「 Twitter で活動報告するといいねを押してもらえること」だったり「仕事で同僚に褒めてもらえること」だ。まあそれが長期的な目標に向けた取り組みの一環だったりすれば良いのだが、そこで報酬を得るために何かして後に何も残らないのは虚しい。このエントリも正直いいねが欲しくて書いているのでまあ虚しいが、こういう積み重ねが将来的に転職やら何かしら良いことに繋がると信じて書いている。

これが行き過ぎると本当に一発芸しかできなくなる危惧がある。あれをするのもこれをするのも、結局は SNS にアップするためなのだ...そして小さな満足を繰り返して消費される人生。

成果が出ないと面白くなくなる

上と言っていることは同じなのだが、長期的な報酬を得る前のフェーズでコストに対するメリットが伸び悩むと「これは自分のやりたいことじゃなかったな」と思ってしまう。途中で投げ出したことを認めないための防衛本能でもある。 ここまで書いてきたのは「大してやりたくないことに時間をかけてしまう」ことだが、下手をすると「実は本当にやりたかったことだが努力したくないのでやりたくなかったことにした」だけという可能性もある。

今まで「大してやりたかったことじゃなかった」と言って切り捨ててきたものの中に、実は本当にやりたかったことがあっただろうか?と自問するのが良いかもしれない。まあキャリアレベルの話をすると人生やり直さないと無理というのはあるだろうけど。

どうすればいいのか

今まで「気の向くままに色々やってきたが実はあんまりやりたくもないことに時間を割いていた」という話が多かったが、では自分の本当にやりたいことに時間を割くにはどうすればいいのか。ここまで書いてきてなんだが、実はまだ答えが出ていない。おそらく「他人は他人だから振り回されない」のも一つの答えだし、「自分のルーツを探る」も一つの答えだと思う。あるいは「そんなに難しく考えなくても総合的に自分の最もパフォーマンスの出るやり方を本能が選んでいるのだ」と楽観的に考えていいのかもしれない。あと、旅に出るとか。

ただ、一つ確かなのは冒頭の「自分の本当にやりたいことに向き合いましょう」はそんなに簡単ではないということ。 この言葉を聞いて勘違いしていたのは「やりたいことがあっても周りがそうさせてくれないから必死に抵抗しろ」というメッセージだと思ってたんだけど、実際には周りに何をされなくても自分自身をうまくコントロールできないということだった。

ああ、朝がきた。