生成AIとの共生1
生成AIをプログラミングに活用することについて
賢い人とは
賢い人とは、抽象度(視点)が高く、共通項を見つける能力に長けた人のことを言う。即ち、部分から全体、全体から部分を考えることのできる能力に秀でた人のことだ。
確かに、生成AIを用いることで、誰でも母国語である自然言語でコードを生成できる。それ即ち、部分から全体を知れる。
生成AIがもたらすもの
しかし、そこに__過程__はない。部分から全体、全体から部分を考えられる人が賢い人だと表現したが、共通項を見つける作業をすっ飛ばしてその能力が上がることはないと思うのだ。ゆえに、生成AIを用いることで自らの抽象度が上がることはないのだ。
過程とは
一方、その__過程__とは何か?
「逆元的である」という表現を思いついた。部分から全体、全体から部分を可能にするのは数学においては、間違いなく定義だ。defがあれば即ち、必要十分条件があれば、どんな例題だって思いつけるし解けるだろう。また、多くの例題をひとまとめにいわば統一的に書いたものこそ定義である。コード生成はこの定義を自らに落とすことなく全体を述べてしまう。
生成AIがもたらす恩恵
しかし、自然言語からコードへの等価交換はなんといっても魅力的だ。
実際、コードを理解することを確認するには、それを自らの自然言語で説明できるかという点に集約されるだろう。
生成AIを扱う上での注意点
私が生成AIを用いてコード生成するときに注意していることは、自然言語からコードを生成された後のコードを一通り読み、何らかの自らの解釈を加えるということだ。
そのコードが即座に実行可能であれば、実行して確認することもできるだろう。
生成AIを扱う上での理想
しかし、我々は生成AIを使いたい、もって言い換えれば、生成AIに使役されることなく生成AIを道具、自らの糧にしたい人が多いはずだ。それには、単純に生成AIが生成する全体としてのコードを眺めるだけではいけない。なぜなら、部分から全体を考えるにあたっての自らの定義(武器)を持たずして、生成AIと同じ視点、即ち、生成AIと同じ抽象度を維持することはできないのだ。
臨界点
人のメモリには限界があるので、defを多岐の分野で、一人の人間が生成AIと同レベルに抽象的に表現することはできないだろうが、なにか一部分、特定の分野においては生成AIと同レベルに考えることができると私は信じている。
プログラミング力を高めるには
さしあたっては、真にプログラミングを身に着けたいのであれば、生成AIを超える覚悟を持って、批判的に扱うべきだ。また、コード生成になにかのAPIを使ったものなのであれば、そのAPIを作った開発者のドキュメントぐらいは見るべきだろう。それを知らずして、生成AIを超える抽象度を維持することはできないからだ。
最後に
今回は、生成AIを使うことについて深く考えた。きっかけは、このままプログラミングに生成AIを使っていて、ほんとうに自らのプログラミングスキルが身につくものかと疑問視したからだ。
下記の参考にあるrの住人のピエロがいった「賢い人」について知ったことで、ここ数日の疑問に私なりの回答を出せた気がする。
参考
rの住人ピエロより
https://youtu.be/fFQ9kax20I0?si=f59Kuw5A8jezI7En
続き
生成AIとの共生2を見てね。