たまたま目にしたこのポストにとても刺激を受けたので久々に作文します。
「AIから引き出せる性能は自分の能力に比例する」 はAIを語る言葉の中で一番好きかもしれません。
AIを使うことによってすべての個人の能力がN倍になると考えると結構色々なコトが綺麗に説明できる気がするので、以下に考えたことをまとめます。
能力と格差の話
AIの登場によって、多くの人が今までできなかったコトができるようになりました。
これによってできる人とできない人の格差が小さくなると考える人がいるかもしれませんが「AIから引き出せる性能は自分の能力に比例する」が真であればこれは間違いですよね。
これが真であるならできる人とできない人の格差はさらに広がります。
社会の要求レベルの話
掛け算の力は偉大なので、N倍によって今まで一握りの人しかできなかった仕事の要求レベルに多くの人が到達してしまいます。
一方で、社会(企業)からのエンジニアに対する要求レベルはAI登場以前の水準から大きく変わっていないと思うので今はとても仕事が楽だし多くの人にチャンスがある状況だと思います。
この隙をついて今は仕事を増やしたりもしているわけですが、時間の問題で社会の要求レベルの方がAI前提にあがってくるはずなのでやりすぎると自分の首を閉めることになりかねないとも思います。
ただ社会の要求レベルがN倍になっても報酬がN倍になるわけではないのでやはり今はチャンスです。
N倍のNは固定値か?
違いますね。人によって3倍になったり5倍になったりします。
このパラメータはどれだけAIについて勉強しているかで決まると思っています。
ものごとの学習曲線は序盤に大きく上昇し、徐々に緩やかになりますがAIに関してはまだ多くの人が序盤ステージにいると思われるので、ちょっと勉強すればこの数字はすぐに上がります。
なので、個人の能力(以降これをPとします) x AIによる増幅力(N)の総合力を伸ばすためには今はAIの勉強をするのが一番効率が良いです。
ただ、まだ天井は見えていないもののNの上限値はそこまで高くないとも予想しているので、このやり方はどこかで限界が来るとも思っています。一方でPはほぼ無限に伸ばせると思っているので、いずれは結局Pを伸ばすコトが重要という方向に回帰すると思います。
何が言いたいかというと、今はNを伸ばすコト(=AIの勉強をすること)に力を入れている人がPの高い人を凌駕しているように見えますが、序盤ステージをまだクリアしていない人がそこの数字を伸ばすことは簡単なので最終的には(これまでと同じように)Pを伸ばすコトが重要という点は変わらないということです。
ただし、N=1で戦っている人は今後は絶対に勝てなくなるのでバランスよく両方を伸ばしていくコトが重要です。
掛け算なのでどちらかが1あがれば総合力は大きく向上します。
AI時代のエンジニアは何を学ぶべきか?
僕はエンジニア教育のような分野に関わる仕事をずっとしているので、ここ1、2年AI時代の初学者エンジニアは何を学ぶのがいいんだろう?ということをずっと考えていたんですが、今回の考察でおぼろげながら解が見えてきた気がしています。
まず、間違いなく言えることは「AIがあるからもはや学ばなくて良い」は絶対に違うということです。
0には何をかけても0なのです。
逆にN倍を意識すると要求レベルに対してどれだけPが必要かを逆算できるようになります。
例えば僕はPythonはそれほど得意ではありませんが、最近は案件の話を聞いていてもAIの助けがあればなんとかなるだろうと思うことの方が多いです。今までだったら断っていたであろうPython案件も受けるコトができるようになったわけです。しかしUnityとかは全くやったコトがないのでAIの助けがあったとしても受けることはできません。(実際に受けるかどうかは別の話ですが選択肢が広がるのは良いことです。)
人間の学習容量には限界があります。
今までは学習容量≒能力容量だったのがAIの登場によって学習容量のN倍の能力容量が得られるようになったのは素晴らしいことだと思います。
逆にいうと学習容量をどのように割り振るかの戦略はAI登場以前とは大きく変える必要があります。
ここまでの話を踏まえるとまず 基本戦略は「広く浅く」 になると思います。ただし、すべてを浅く学ぶのではなくどれか一つは深掘りした方が良いです。(浅いところばかり学習していたのでは辿り着けないものがあります)
深掘りするのは自分の好きなもので良いですが、変化の激しいもの(例えばReactなどのfrontendフレームワーク)や個別技術(AWSなどのベンダーによるもの)は避けた方が良いです。これらの知識は時間の経過によって使えなくなるものも多いし、N倍使えればそこまでのPがなくても要求レベルを満たせるコトが多いです。
もちろんPの高い人には絶対に勝てないんですが、浅く学んだところについては要求レベルが満たせればそれでOKと割り切るのもアリだと思います。
要求レベルが高いところ≒報酬の良いところという関係は成り立つので、それを狙うのもアリではありますが正直なところそういう仕事はパイが少ないのでよっぽど頑張らない限りそこに食い込むのは難しい気がします。
現在はそこそこの要求レベル(というかむしろかなり低い要求レベル)に対してもエンジニアの数が圧倒的に足りていない状況なので広くそういう案件を拾える方が有利です。
また、学習容量に余裕ができるならコンピュータサイエンスはある程度やった方が良いです。正直なところWebアプリを作るだけならそこまで必要となる場面はないのでAI以前の時代はここにリソースを裂かない人も多かったんですが、広く浅く戦略を取るのであればコンピュータサイエンスは学んでおいた方が圧倒的に他の学習効率が良くなります。
こうしてみるとAI時代になっても実は学ぶべきこと自体はそれ以前とあんまり変わってないですね。
全員がN倍ブースト使える状況になれば結局はその優位性は失われるので、結局はPが重要ということになります。
AIにできないこと
それは練習です。
勉強はAIでできますが、練習はAIではできません。
つねづねかねがね思っていることですが、エンジニアはスポーツ選手に近いところがあって練習(実践)を行わないと優秀なエンジニアにはなれないと思っています。
近年、野球やサッカーの技術を教えてくれる動画は山ほどありますが、それらをいくら見たところで練習しなければ上手くはならないのです。
AIによるN倍を自分の実力と勘違いする人もこれから多く出てくると思いますが、それはかなり危険だと思います。(本人にとってもそうですが、採用側にとっても大きなリスクになり得ます。)
これらのことを踏まえて、AIがあることを前提とした
- 効率的に練習を行う方法
- N倍前のPを測定する方法
あたりを次に考えていきたいところです。