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なしで考える時間」なんじゃないかと思っている。