見出し画像

これからは誰でもプログラマ。だが、コーディングは不要。

はじめに

ここ一ヶ月で、ChatGPTのニュースを見ることが非常に増えてきました。
私も、ChatGPTにプログラミングをさせ、その応対が人間っぽいと感じた次第です。

ところで、上の記事でも書きましたが、現状は品質を無視すれば、とりあえず動くコードは書いてもらえるという状態です。今後、この品質はさらに向上するでしょう。その際、人間は「プログラミング」に関して何をすることになるのでしょうか? 今回はそのあたりについて考えていきます。

プログラマは将来コードを書かなくなる

まずは、以下の記事をご覧ください。

プログラミング言語を用いて開発が行われる従来のソフトウェアを「Software 1.0」とすると、その次にやってくる「Software 2.0」はニューラルネットワークで構成され、プログラマの仕事はニューラルネットワークの学習に使うデータの収集などになっていくだろう。
テスラのAI部門長(Director of AI at Tesla)を務めるAndrej Karpathy氏が自身のブログのエントリ「Software 2.0」でそうした意見を記し、海外で話題になっています。

テスラのAI部門長が語る「Software 2.0」。ディープラーニングは従来のプログラミング領域を侵食し、プログラマの仕事は機械の教師やデータのキュレーションになる - Publickey
https://www.publickey1.jp/blog/17/ai_software_20.html

こちらは、自動運転などでおなじみのテスラ社のAI部門長のブログについて紹介している記事なのですが、その中で

A large portion of programmers of tomorrow do not maintain complex software repositories, write intricate programs, or analyze their running times. They collect, clean, manipulate, label, analyze and visualize data that feeds neural networks.
将来、プログラマの仕事の大部分は、複雑なソフトウェアリポジトリの維持やプログラミングや実行時間を分析することではない。ニューラルネットワークに与えるためのデータを集め、整理し、操作し、ラベル付けや分析、ビジュアル化などを行うのだ。

テスラのAI部門長が語る「Software 2.0」。ディープラーニングは従来のプログラミング領域を侵食し、プログラマの仕事は機械の教師やデータのキュレーションになる - Publickey
https://www.publickey1.jp/blog/17/ai_software_20.html

と主張しているとのことです。これは本当なのでしょうか?

そもそも「プログラミング」と「コードを書く」ことは別

ところで、普段プログラムを書かない人が「プログラミング」というフレーズを聞いたら、どんなことを想像するでしょうか? きっと英語のような指示句と記号を、独自のルールで記述していく、以下のような作業を想像するのではないかと思っています。

「プログラミング」というフレーズから人々が想像する姿

確かに、これはプログラミングと呼ばれる作業の一部ではありますが、狭義には「コーディング」と呼ばれるものです。

なお、「コードを書くこと」は、コーディング(coding)と呼ばれ、「プログラムを作る」ことをプログラミング(programming)と呼ぶ。コーディングとプログラミングはほぼ同じような意味だが、「コーディング」と言った場合、プログラムを構成するコードを実際に「書く」という作業に着目したイメージになる。「プログラミング」と言うと、プログラムの設計からコーディング、その後のテスト実行や不具合(=バグ)の修正までを含む、「プログラム作成」の一連の作業全般を含めたイメージになる。

Lesson 1 ディープラーニングを始めるための、プログラムの基礎:機械学習&ディープラーニング入門(コンピューター概論編) - @IT
https://atmarkit.itmedia.co.jp/ait/articles/1812/14/news152.html
https://atmarkit.itmedia.co.jp/ait/articles/1812/14/news152.html より引用

「コード」を書かない環境に触れてみる

このように、プログラミングとは、コーディング以外にも、プログラム(アプリ)の設計やテストなども含むわけですが、いまやコーディング不要でプログラミングを行うための環境がたくさん出てきています。たとえば、DX人材育成の展示会に行けば、ノーコード/ローコード開発環境を提案しているところはたくさんあります。

また、いまや小学生に対しても「プログラミング教育」が行われておりますが、Scratch(スクラッチ)というノーコード環境が利用されています。

これらの環境では、もはや先に示したような

英語と記号が混じったような「コード」を書く必要はない

のです。

大事なことは、まずこれらの環境に触れてみて、

コーディングなしにプログラミング体験をして、実感を得る

ことではないでしょうか? 一度体験するだけで、イメージで語ることなく、自分自身の言葉でそれらが語れるようになり、さらに業務への活用のイメージがグンと増すようになること請け合いです。

おわりに ~ 仕事で使うなら、ヘタにコーディングは経験しない方がいい?

ちなみに、最近では自社内でDX人材育成の研修を行う企業も増えてきております。その中で、たとえばPythonというプログラミング言語を使って、コーディング研修を行うところがあるようです。しかし、コーディングを行ったことがない人にとって「プログラミング言語=難しい」という思い込みは思いのほか強いようで、下手にコーディング研修を行っても、

コードが書けるようになるどころか、逆に「トラウマ」になる可能性

すらあるようです。

ここまで書いてきたように、本来のプログラミングに必要な能力はコーディングだけではありません。下手にトラウマを植え付けるくらいなら、昨年から大流行しているChatGPTやお絵描きAI、あるいはノーコード環境を使って「こちらが望む形を得られるように指示できる日本語能力」や「適切なインプットデータを用意する能力」を鍛えた方がよっぽど有意義ではないでしょうか?

上記の仕組みを利用するために「コーディング」の能力は必要ありません。必要なのは、「コミュニケーション能力」や、データを集めて整理できる「キュレーションの能力」です。そして、もっと重要なのは

想定していたアウトプットと違う時に素早く修正して再実行できる能力

です。よって、コーディングの研修をするくらいなら、これらの能力こそが「Software 2.0時代のプログラミング能力」として求められる力なのだと感じます。是非、このような能力を伸ばしていきましょう!

(おわり)

この記事が参加している募集

#この経験に学べ

53,901件

課金してくれるととても嬉しいです。シェアしてもらっても嬉しいです。「いいね」も嬉しいですし、フォローも嬉しいです。要するに、どんなことでも嬉しいです。