1. 背景
AIが台頭してきたことにより、AIによるプログラミングが活発になってきています。 プログラミングが楽になっている一方、その楽さ故にプログラマがプログラミングを学ぶ意義を見失いつつあるかもしれません。
ただ、AIが生成したコードを理解しなければ、その成果物に対して責任を持つことが出来ないため、プログラマは引き続きプログラミングを学び続ける必要はあるとも思ってます。
2. どこに学ぶ価値を見出せるか
プログラミングを仕事にしているのであれば、要件に対する成果物をプロダクトオーナーに提供する際、「なぜこの実装にしたのか」「どのようなリスクがあるのか」「他にどのような案があるのか」等を「人に説明できる力」が必要です。
AIに説明させることも可能ですが、様々なコンテキストや相手の理解度に合わせた説明が求められるため、そこはまだ人が担うところだと考えています。
モチベーションの源泉として、「自分はコードを書ける」よりも、「自分は判断できる、説明ができる」が以前より強くなるように思えます。
3. 理解しているからこそ出来る仕事を意識
個人的には既にAIのコーディング力は圧倒的であると感じています。
一方で「人が理解しているからこそ出来る」以下のような領域があると考えています。
- 要件定義(プロダクトオーナーの要件の曖昧さを埋めるなど)
- 様々なコンテキスト・将来の変更・運用を見越した設計
- 障害発生時に迅速に状況を把握し復旧対応する
これらはプログラミング・コードの内容を理解しないと成立が難しい領域かと思います。
ここにモチベーションの源泉として、「AIを使って楽になる」から「AIを使いこなすために、より深い理解が必要」になるように思えます。
AIが生成したコードを理解し、もし違和感があるのであれば、それを解消するために学ぶ。
AIによるコーディングの生産性向上に伴い、むしろ以前よりも多くの理解が求められるようにも感じています。
4. どこに学習の目的を置くか
個人的に何かを学ぶときは、「この知識は将来役に立つかどうか?」は大切な要素のように考えていました。
しかしながら、AIの登場により知識量だけでは差別化することが難しくなってきているように感じます。
代わりに、
- 仕組みが理解できているか
- ブラックボックス(不明瞭なところ)を減らせているか
- 必要があれば自分で判断することができるか
などを学習の目的に置くことで、自分自身の可動領域を増やすことが出来るかもしれないと考えています。
「人が成果物に対して責任をもつ」必要がある限り、まだまだ学び続けなければならないと考えている一方で、AIにコーディングをさせるたびに、その生産性の高さに楽を覚え、最近は自分で学ぶことをサボりがちになっています。
自分への戒めとして、久しぶりにQiita投稿。
迷ったときは、初心に立ち返ってみる。そして自分に出来ることを小さなことでもやってみる。