タケハタのブログ

プログラマの生き方、働き方、技術について雑多に書いていくブログです。

知識のポートフォリオの管理は金融のポートフォリオの管理とよく似ている(達人プログラマーより)

半年前くらいに達人プログラマーの第2版が出ていたので、復習も兼ねて久しぶりに読んでいます。

www.ohmsha.co.jp

その中で以下のような内容がありました。

プログラマーが持っているコンピューティング関連の知識や、仕事の業務知識、あらゆる経験は「知識ポートフォリオ」として考えるのがよいでしょう。知識ポートフォリオの管理は金融ポートフォリオの管理とよく似ています。

-- デイビット・トーマス,アンドリュー・ハント. 達人プログラマー 熟達に向けたあなたの旅 第2版 (Japanese Edition) より

昔読んだ時はあまりピンと来ていなかったし、正直記憶に残ってなかった言葉でした。
しかし最近投資とかを初めて、このポートフォリオの作り方なんかも勉強したりしたので、すごくしっくり来るようになりました。
そしていい考え方だし、大事なことだなと思ったので簡単にまとめてみます。

ポートフォリオの管理

「金融のポートフォリオの管理」の方法として、以下のことが書かれています。

1.真面目な投資家は習慣的に定期的な投資を行います。

2.分散投資は長期的な成功の鍵です。

3.頭の良い投資家は、堅実な投資と、ハイリスクでハイリターンな投資でポートフォリオのバランスをとっています。

4.投資家は利益を最大にするべく、安く買い、高く売ろうとします。

5.有価証券は定期的に見直して再配分するべきです。

-- デイビット・トーマス,アンドリュー・ハント. 達人プログラマー 熟達に向けたあなたの旅 第2版 (Japanese Edition) より

これをそれぞれ「知識のポートフォリオの管理」に当てはめて考えてみます。

1.真面目な投資家は習慣的に定期的な投資を行います。(定期的に投資する)

たまに株買って放置!とかではなくて日々定期的に投資していくという話ですね。
毎月決まった金額を積立投資なんかもあります(つみたてNISAとかもそれ)。

知識の話で言えば、習慣的に定期的な勉強をしていくことが大事。
毎日少しずつでも勉強して、継続してインプットを続けていく必要があるということですね。
1回1回は少しでも、積み重ねていくことで大きな資産になる。

「割り込みが発生しないようにして、定期的に時間と場所を確保する」といったことも書かれています。

2.分散投資は長期的な成功の鍵です。(多様化する)

1つの資産に集中して投資すると、その運用が失敗した時(その資産の価値が暴落した時など)に影響が大きいです。
なので株式・債権・不動産などに分散したり、株式でも複数種類の株を買ったりと分散するのが基本と言われています。

知識も同じように、色々な分野の内容をインプットする必要があるということですね。
例えば

  • バックエンド、フロントエンド、インフラ、iOS、Android、機械学習、セキュリティ、etc...と色々な分野の知識を勉強する
  • 複数種類の言語を習得する
  • 同じ言語でも複数のフレームワークの使い方を習得する

といったように知識が偏らないように、様々な角度から分散していくというようなことになると思います(もちろん取捨選択は必要ですが)。
また、技術以外にもビジネス的な知識や、いわゆる「ソフトスキル」の部分なんかも分散の対象に入れていきたいですね。

3.頭の良い投資家は、堅実な投資と、ハイリスクでハイリターンな投資でポートフォリオのバランスをとっています。(リスクを管理する)

新興企業などで「成功すれば株価が何倍にも上がるかもしれないけど、失敗したら一気に下がる」ような株(ハイリスクハイリターン)もあれば、大手企業などの「大きくは動かないけど、長期的にはずっと右肩上がりだったり、安定して一定の配当金が出ている」ような株(堅実)もあります。
分散投資もその一端を担っていると思いますが、こういったリスクの度合い考えてバランスよく投資しましょうということ。

技術の知識はかなり近いものがあって、「今後伸びていく技術」なのか「廃れていく技術」なのかの見極めはすごく大事になってきます。
これは個人だけではなくて、企業で開発に使う技術選定なんかでもよくある話ですね。

「この技術は今かなり来てるぞ!」と思って全力投資したら、その後廃れて世の中で全然使われなくなったりしたら悲惨です(流行ったと思ったら1年後くらいには消えてるのは実際よくあります)。
新しいこれから来そうな技術にはアンテナ張って学びつつ、ある程度枯れた技術だったり、既によく使われている技術も学んだりしてバランスを取っていくのが大事ということですね。

4.投資家は利益を最大にするべく、安く買い、高く売ろうとします。(安値で買い、高値で売る)

当然ですが、株は安い時に買って、それが高騰して高くなった時に売るのが一番儲かります。
公開したばかりの新しい企業の株を買って成長するのを狙ったり、なんらかの要因で株価が下がったタイミングで買って、回復するのを狙ったり。

リスク管理の話と通づる部分ですが、今はまだ普及してないけど、今後使われていく技術を見極めるのは必要ですね。
早くからその技術に手を付けていることで、実際に普及し始める頃に市場のエンジニアの中で抜きん出ることができる。

もちろんものすごく難しいし、前項でいう「ハイリスクハイリターンな投資」に当たるものだと思います。
ただ、こういったものに辿り着ける可能性を上げるためにも、常に新しい技術のリリースや動向にはアンテナを張っておきたいですね。

5.有価証券は定期的に見直して再配分するべきです。(見直しと再分配をする)

ここまでの話でも出てきていますが、株などの投資商品は時間が経つと価値が変わっていきます。
なので毎月積み立てている投資先の商品を選び直したり、今保有している商品も売り買いしてバランスを調整したりと、定期的に見直しをする必要があります。

技術の知識も同じで、自分が投資している技術の価値を定期的に見直しをする必要があります。
業界的な流行り廃りもありますが、アップデートが少なくなったり、バグが放置されていたり、その技術を作っている企業や個人がやる気がなくなって開発終了になったりと衰退していく要因は色々あります。

なので

  • 今まで注力して勉強してきた技術でも、改めて現状を見て「これはもう使えないな」と思ったらスパッと切り捨てる
  • 逆にこれまでノーマークだったけど今来ている技術に手を付けてみる

など常に投資のバランスを調整していくのが大事かなと思います。

要は技術研鑽も長期・積立・分散が大事ということ

投資の話でよく「長期・積立・分散」という言葉が出てきます。
ここまでの話で書いてきた通り、長期的なスパンで定期的に投資を積み立てて行って、且つその投資先は分散してリスクを軽減するようにしましょうという話ですね。

技術研鑽でもこれは同じで

  • 長期 - 長いスパンで考えて継続的に
  • 積立 - 日々コツコツと知識を積み上げて
  • 分散 - 色々な分野の技術を身につけていく

ということが大事なのかなと。
まあ継続的にやるのは大変だし、分散はしすぎるとそれはそれで一つ一つがちゃんと身につかなかったりするので(あとなにか一つ突出したものも持っていないと厳しいので)、シンプルだけどかなり難しいことではあるのですが。

みんな漠然と考えていることだとは思いますが、改めて大事なことだなと考え方が整理できたので、書き残してみました。