プログラミング不要論とは?
プログラミング不要論は、プログラミングができない人でも、コンピューターを使ってアプリケーションを作成できる技術の出現により生まれた考え方の1つです。この技術はノーコード開発とも呼ばれています。
企業においてDXの必要性が叫ばれてから、「ノーコード」や「ローコード」開発が注目され、一方でプログラマー不足、ITエンジニア不足が深刻化していることなどから、プログラミング不要論が巻き起こっていると考えられます。
さらに、昨秋に登場したChatGPTの自動的にコードを書いてくれる機能が注目され、プログラミング不要論の根拠として挙げられるようになりました。
この記事では、プログラミング不要論の背景、ノーコード開発やAIによる自動ブログラミング、プログラマーの仕事に求められるスキルは何か、といったテーマでプログラミング不要論について解説します。プログラマーやITエンジニアを目指している方はぜひ参考にしてみてください。
【参考】:DXレポートサマリー|経済産業省 【参考】:ローコード・ノーコードツールを活用して内製でシステムを構築|総務省 【参考】:IT人材需給に関する調査(概要)|経済産業省
ノーコード開発、ローコード開発とは
アプリケーション開発、Webサービスの開発では様々な手法が使われますが、近年多く利用されているのが、ノーコード開発とローコード開発です。
ここでは、それぞれの概要や特徴について見ておきましょう。
ノーコード開発
ノーコード開発とは、ソースコードを記述せずにアプリケーションの開発が可能なツールやサービスのことです。ノーコードではソースコードの記述が不要であるため、アプリケーションの開発を迅速に行えるメリットがあります。
さらには、プログラミング知識のない人でもアプリケーションやWebサービスの開発が行えることから、企業などから注目されています。
一方、ノーコード開発ではあらかじめ用意されている機能しか利用できないため、機能要件を満たさないケース、他のシステムとの連携などが制約されるため、要件定義をしっかり行ってから利用することが求められます。
要件定義にはシステムエンジニアが必要ですので、ノーコード開発によってエンジニア不要ということにはなりません。
そうした中、ノーコードエンジニアが注目されています。ノーコードエンジニアとは、ノーコード開発ツールを用いて、ノーコード開発を行うエンジニアですが、アルゴリズムの知識や仕様策定能力、ノーコード開発ツールを使いこなす能力などが求められます。
ローコード開発
ローコード開発とは、ソースコードの記述を最小限にして、アプリケーションを効率的に開発する手法やツール、サービスを指します。
以前のアプリケーション開発では、コツコツとソースコードを記述して行うのが主流でしたが、ローコード開発では必要な部品を組み合わせて1つのアプリケーションを作成していくため、より短い期間で、高品質で安定した開発を行うことが可能です。
現在では大半のアプリケーション開発、Webサービスの開発はローコード開発手法を用いて行われています。このように大変メリットの多いローコード開発ですが、既存の部品を使って組み上げていくため、顧客の細かなニーズに対応するのが難しい点はデメリットとして挙げられます。
ノーコード開発よりは自由度は高くなりますが、ローコードツールに関する知識が求められること、細かな要件には対応しづらい点をあらかじめ理解しておく必要があります。
AIによる自動プログラミング
AIによる自動プログラミングはノーコード開発の1種ですが、簡単な仕様を示すだけでコードを自動生成するツールがあります。1つ目は「AI Programer」というサービスです。
日本語で仕様を示すだけでコーディングしてくれますが、プログラマーが補助ツールとして利用すると便利ですが、コードが全く読めない人にとっては利用価値を感じられないかもしれません。
最近注目のChatGPTも簡単な指示に従って、様々な言語でコードを書くことができますが、やはりプログラマーの補助ツールとしての域を出ないでしょう。
【参考】:AI Programmer 【参考】:Introducing ChatGPT
プログラミングは不要にはならない
ノーコード技術の進展によって、プログラミングは不要になるのかといった議論がありますが、本当にプログラマーは必要なくなるのでしょうか?プログラマーを目指している方、プログラミングを勉強されている方は不安になるでしょう。
結論から言うと、プログラマーの需要は減ることはあっても、不要になることはありません。ノーコードツールに任せることができるプログラミングは限定されるからです。従って、次のような場面ではプログラマーが必要とされます。
AI開発やノーコードツールの開発
AIプログラマー不要論までありますが、AIは人間が開発します。AIに1からAIプログラムを行わせることには無理があります。同じく、ノーコードツールも開発するのは人間です。すなわち、どちらも設計者やプログラミングコードを書く人間が必要な分野です。
AI技術の発達によっていつかは需要が減ってくるかもしれませんが、AIの技術革新が続く限りはプログラマーは必要な存在です。
ローコード開発スキル
ローコード開発では、コードを書く作業は減りますが、ツールやコードに関する知識は必要です。また、細かい部分は直接コードを書く作業も発生しますので、プログラマーは必要です。むしろ、ローコード開発が主流になっていくことで、ローコード開発に長けたプログラマーの需要が高まっています。
レガシーシステムの保守
大きな企業には、簡単に捨てられない基幹システムが多く残っています。それらのシステムの維持管理、保守にプログラミング知識が求められます。またコードから仕様を理解し、リプレイスする場合にもプログラマーの手が必要です。
複雑な機能や高いパフォーマンスが求められる開発
クライアントの機能やパフォーマンス要求レベルが高いアプリケーションの開発では、ノーコードやローコード開発には頼れないケースが出てきます。このようなケースでは、無駄なコードをなくし、コードの最適化を行う必要が出てきます。
こうしたケースでは、最適なコードを1から書けるプログラミングスキルが求められます。
プログラマーに求められるスキルとは?
プログラマーが求められるのはプログラミングスキルだけではありません。もし求められるのがプログラミングスキルだけであれば、AI技術の発達によってプログラマーは不要になる可能性を否定できませんが、プログラマーには様々なスキルが求められます。
プログラマーにはIT全般に関する知識、英語力、数学などのスキルも必要ですが、ここでは必ずプログラマーに求められる3つのスキルについて解説します。
プログラミングスキル
言うまでもありませんが、プログラミングスキルはプログラマーには必須のスキルです。プログラミングスキルとはサービスやアプリケーションを開発するために、様々なプログラミング言語を扱い、コードを書くスキルです。
プログラミング言語は何十種類もあり、アプリケーションの種類によって最適な言語は異なります。ノーコード開発、ローコード開発においても、このプログラミングスキルが役立つ局面が必ずあります。プログラマーを目指す方は、自分でコードを書けるだけのスキルを身に着けていきましょう。
コミュニケーションスキル
プログラマーはコンピューターに向かって黙々と仕事をしているイメージが強い職種ですが、コミュニケーション能力が欠かせません。プログラマーは顧客の要望をしっかりと理解して、それらをコードにして、求められるアプリケーションやサービスを実現するのが仕事です。
顧客と直接コミュニケーションを行う以外にも、デザイナーやシステムエンジニア、他のプログラマーと共同でアプリケーションの開発を行います。開発作業を円滑に進めていく上で、メンバーとのコミュニケーションが重要になります。
このように、プログラマーにとってコミュニケーション能力は大変重要なスキルと言えます。
ロジカルシンキングスキル
プログラミングはアルゴリズムを組み立てることです。アルゴリズムとは、コンピューターを用いて問題を解決するための手順や計算方法のことです。アルゴリズムはロジカル・シンキング(論理的思考)によって編み出されます。そのため、プログラマーにはロジカルシンキングのスキルが欠かせません。
また、ロジカルシンキングは、一見して難しく思えるものを論理的に解釈し、誰もが理解できるようにシンプルな姿にするスキルでもあり、チームでアプリケーションを開発する上では欠かすことができないスキルなのです。
小学校でプログラミング教育を導入した狙い
文科省は2020年度から小学校におけるプログラミング教育の全面実施に踏み切りました。プログラミング不要論がある中、なぜ小学生にプログラミング教育を行うのでしょう。
それは、Society5.0と呼ばれる新しい社会の到来に向けて、日本そのものが痛みを伴う大転換を迫られているという認識が背景にあるからです。
第4次産業革命と言われる「情報化社会」を迎え、子どもたちにコンピューターを使いこなすスキルを身に付けさせ、子どもたちの可能性を広げ、これからの時代に活躍できる人材にしていくことが狙いなのです。
不足していると言われるプログラマーやITエンジニアを育成するのではなく、ITを自在に活用できる人材育成が目的なのです。これからの IT教育への期待と懸念がありますが、反対に私たちはここから学ぶ必要があります。
AIに支配され、仕事を奪われることに怯えるのではなく、自ら主体的にAIを活用できる人材が求められている理解すべきではないでしょうか。
これからのプログラマー
ここまで、プログラミング不要論をテーマに、その概要や背景、ノーコード開発とローコード開発の特徴、プログラミングは不要にならない理由、プログラマーに求められるスキル、小学校におけるプログラミング教育の狙いなどについて解説しました。
私たちを取り巻くプログラミング環境は大きく変わり、プログラマーに求められる役割は変わっていますが、プログラマーという職業はなくならないでしょう。プログラマーを目指す皆さんは自信を持って目標に向かってください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから