Table of Contents
AI時代における学習について
AIは開発を速くするけど、学習を遅くしているのでは?
最近よくこのことについて考えています。AIによって開発速度は上がりました。ですが、エンジニアとしての力はそれと相対して上がっているのでしょうか。
おそらくは上がっていないでしょう。自分で業務を行っていてよく分かります。
AI以前は実装においてわからない箇所があれば、自分で調べ、試し、実装していました。少し遠回りですが、それによって技術や言語に対しての理解も深くなっていったに違いありません。
しかし、今では実装はすべてAI任せ、自分が理解していない表現やライブラリでもAIが書いたコードを動かしてみて動けばそれでよし。動かなければエラーメッセージをAIに渡して修正してもらいます。
これでは理解もへったくれもありません。
AIは開発を加速させるが、学習は?
AIを使えばアプリケーションはどんどん作れます。以前ならミドルクラスのエンジニアが担っていたようなスピードで、質はどうであれジュニアでも仕事をこなせてしまいます。
でも、それは本当に「成長している」と言えるのでしょうか。
ある論文※1 によるとAIを使わずに実装するのとAIを使って実装するのでは、学習という観点ではAIを使わない方が優れているらしいです。自分でつまずいて、調べて、理解する——そのプロセスが抜け落ちてしまうんだと思います。
AIのお陰で開発の速度は上がりましたが、人間が考えなくなってしまいました。
業務スピードはAIありきになってしまっている
とはいえ、現実は難しいです。
今の時代、業務に求めるスピード自体がAIありきのものになってしまっています。「AIを使わない」という選択肢は、個人の学習としては正しくても、チームや会社での業務という文脈ではなかなか取れません。
この矛盾をどうするべきでしょうか。
答えは「AIを使わない時間をどう確保するか」
自分が出した答えとしては、AIを使わない学習の時間をいかに意図的に取るかということです。
業務ではAIをフル活用します。でも、プライベートの学習では意図的にAIを封印します。その切り替えが、今の学習には必要なんじゃないかと思っています。
そして、AIが全盛の今だからこそ、基礎が重要だと感じています。
AIはコードを書いてくれますが、なぜそのコードが動くのかを理解するのは人間です。言語の仕様を知っていれば、AIが生成したコードの問題に気づけます。OSの概念を理解していれば、パフォーマンス問題の原因を見抜けます。
AIの出力を正しく評価できるエンジニアになるために、基礎知識はむしろ今まで以上に価値が高くなっていると思います。
おそらくはそこが、今現在ジュニアと呼ばれるレベルのエンジニアたちの中で差別化されていく要因の一つになっていくと思います。
まとめ
自分なりの結論はこんな感じです。
- 業務ではAIを積極的に使う
- 個人学習ではAIを意図的に使わない時間を作る
- 基礎(ネットワーク・OS・言語)を地道に固める
AIに使われるのではなく、AIを使いこなす側になるために。そのために必要なのは、逆説的ですが「AIなしで考える時間」なんじゃないかと思っています。