プログラミングはこの生成AI時代においてどのような意味を持つのでしょうか?生成AIを使えば、簡単なプログラムから難易度の高いプログラムまで、すぐに作成してくれます。僕自身、改めて考えてみました。
(1) 言語としての重要性
プログラミングで使うプログラミング言語はPythonやJavaなど色々な種類があります。「プログラミング言語」との言葉の通り、コンピュータと会話をする言語になります。人間が人間同士会話することと同じく、人間がコンピュータと会話をするためにプログラミング言語を使います。人間同士会話をするときは、単語、文法、言い回しなどを駆使して文脈を作り、話をしています。プログラミング言語でも、基本データ型、構造的プログラミングでの順次・選択・繰り返しの基本文法、関数、クラスを使って、コンピュータに実行してもらう処理を理解してもらい、実行してもらいます。人間同士話をするときも、常に同じ内容で話すのではなく、気持ちや感情にも左右され、自由度の高い会話をしています。コンピュータと会話をするとき、自分の処理したいこと、やりたいことを実行するためには、コンピュータのリソースを考え、自由度の高いプログラミングを書く必要があります。生成AIで形式的に書かれたものでは、壁にぶつかったとき、調整が効かず、乗り越えることができないかもしれません。自分自身の意思を持ったプログラミングは、その壁を乗り越えられる可能性があります。
(2) 社会人スキルとしての重要性(論理的思考)
プログラミングスキルは社会人スキルとしても重要なものとなっています。上記のようなコンピュータと柔軟な会話ができるだけでなく、プログラミングを学ぶと、どのように処理すると効果的かといった論理的思考能力が備わります。この論理的思考を抽象化・体系化したものがアルゴリズムですが、この論理的思考はビジネスなどの意思決定において、大事なものになります。
(3) 技術進歩の歴史と知の集約
プログラミングは、現代の技術進歩と共に発展してきました。アセンブラやC言語では、ハードウェアの制約の中で、いかに効率的に速く処理をするか、ソースコードから見ることができます。コンパイラでは、オートマトンを使い、字句解析、構文解析を行うことで、プログラミングをコンピュータがわかる言葉に翻訳しました。データサイエンスでよく使われるRやPythonでは、統計・機械学習のライブラリが充実しており、今まで散見していたコード上での知識の集約がされています。プログラミングを学ぶときに、このような側面を見ることで、より深くプログラミングを学ぶことができます。そして忘れてはいけないのが、このような充実したプログラミング環境が提供されているのは、現在までの技術者の方々の貢献です。ライセンスを見ても、ほとんどのものが無償で使えるものであり、オープンソースとして公開することで、さらなる技術の発展をサポートしてきました。これらの貢献に大きな謝意を忘れず、今後に引き継いでいく必要があると考えます。
生成AIが普及する中で、プログラミングを1から学ぶことの意義を忘れてしまうこともあるかと思います。上記に述べた、(1) 言語としての重要性、(2) 社会人スキルとしての重要性(論理的思考)、(3) 技術進歩の歴史と知の集約、を改めて考えてみると、プログラミングを基礎から体系的に学ぶことで、プログラミングで過去と将来、また人間とコンピュータを繋げることができ、創造的な考えから新しい技術革新を呼び起こす可能性があると思えます。この背景のもとに、プログラミングスキルを身につけることで、今後さらに普及するであろう生成AIと協働する、次の世代の技術者が誕生すると期待しています。
0 件のコメント:
コメントを投稿