なぜすべての人がプログラミングを学ぶべきなのか?

読了 8分

今日はなぜすべての人がプログラミングを学ぶべきなのかについてお話ししたいと思います。 お子様の能力開発について悩んでいる方や、ご自身の能力開発について悩んでいる方は、ぜひ最後までお読みください。

Apple社の創業者であるスティーブ・ジョブズは、生前のあるインタビューでこう語りました。

この国のすべての人はプログラムを学ぶべきです。プログラミングは考え方を教えてくれるからです。これはちょうど、ロースクールで法律を学ぶことで、すべての人が弁護士にはなれなくとも考え方を学べるのと同じです。プログラミングも法律を学ぶこととは少し異なるが、考え方を教えてくれる。私はコンピュータプログラミングが美術や歴史のような教養科目として採用され、すべての人が少なくとも1年程度は学ぶべきだと考えています。

ウィキペディアで述べられているプログラミングの定義は次の通りです。

コンピュータプログラミング、または単にプログラミングあるいはコーディングは、1つ以上の関連する抽象アルゴリズムを特定のプログラミング言語を用いて具体的なコンピュータプログラムとして実装する技術を指す。プログラミングは技法、科学、数学、工学、心理学的な属性を持っています。

私たちはこのプログラミングを通じて、毎日繰り返す作業や工程を自動化したり、自動運転する車を作ったり、宇宙を往復できる宇宙船を作ったりします。今ご覧になっているYouTubeも1つのプログラムであり、今や数えきれないほど多くのプログラムが私たちの生活の一部となり、プログラムなしでは1日たりとも生きていけない世の中になりました。身近な例として、街中の数多くの信号機、毎日見るテレビ、いつも私たちの手に握られているスマートフォン、さらにはおいしいご飯を炊いてくれる炊飯器までもがプログラムで動いており、私たちはこれらなしでは1日たりとも生活できなくなっています。

このようなプログラムを作る過程や行為をプログラミングと呼びます。ところが、このプログラミングをなぜすべての人が学ばなければならないのでしょうか。

プログラミングは論理的な思考方法と問題解決力を養ってくれます。 #

私たちが算数や数学を学ぶのも論理的な思考と問題解決力を養うためですが、プログラミングを学べば算数や数学を学ぶのと同じ効果を得られると言われています。

多くの人がプログラミングをすると言うと、1つのプログラミング言語を学んでコーディングをすることだけを想像しますが、プログラミング言語を学んでコーディングをすることは、プログラミングの目的を達成するための手段に過ぎません。プログラミングの究極の目的はある問題を解決することであり、プログラミングをするということは問題の解決策を見つける行為だと言えます。これは私たちが日常生活でさまざまな問題に直面し、直面した問題を解決しようと努力するのと非常に似ているとお考えください。ある問題を解決できる答えは決まっておらず、最も効果的な答えを見つけるためには論理的な思考をしなければなりません。

例えば、肥満という問題を解決するために解決策を見つけなければならないと仮定してみましょう。この問題を解決するためには、まず自分が現在抱えている問題を把握しなければなりません。つまり「なぜ私は太ったのか?」のような肥満の原因をまず把握する必要があるのです。食生活が不規則なのか、食事量が運動量に比べて多すぎるのか、甘いものを食べすぎていないかなどをまず把握しなければなりません。そして、どのように食事制限をするのか、どのような運動をどのようにするのかなど、問題を解決するための方法を見つけ出さなければなりません。世の中には数えきれないほど多くのダイエット方法があり、数えきれないほど多くの運動方法があるはずです。自分の健康を害さず、生活リズムを崩さずに短期間で痩せられる効果的な方法を見つけなければならず、そうするためには論理的な思考が必ず必要となります。

プログラムを作ることも、今の例と非常に似ています。プログラムを作るには、まず自分が作ろうとするプログラムの目的、つまり自分が作るプログラムを通じてどのような問題を解決すべきかを正確に判断しなければなりません。そして、その問題を解決するための効果的な方法を論理的な順序で並べ、文書化したうえで、論理的に文書化された考えをコードで実装しなければなりません。このような過程を何度も繰り返せば、当然、問題を把握する能力と問題を効果的に解決できる論理的な思考方法が養われると思います。

プログラミングは想像力と創造力を養ってくれます。 #

小学校では生徒たちの想像力と創造力を育てるために、国語の時間に作文をさせたり、美術の時間に絵や彫塑などをさせたりします。

プログラムを作るためには、単にコーディングだけをすればよいのではなく、作文や絵を描くことのように、他の人が思いつかなかった自分だけのアイデアを生み出すために絶えず考え、想像しなければなりません。良いプログラムを作るためには、豊かな想像力と創造力が必要となるのです。だからこそ、コーディング技術に優れて経験豊富な開発者よりも、若い学生たちが世界をあっと驚かせるようなプログラムを作り出すこともあるのです。

よく知られた例として、ビル・ゲイツがハーバード大学在学中にMS-DOSを開発してマイクロソフトを設立し、マーク・ザッカーバーグもハーバード在学中にFacebookを開発しました。在日コリアンとして有名なソフトバンクの孫正義会長も、大学生の頃に電子辞書を開発し、その特許をシャープに売却して得た利益で現在のソフトバンクを設立したと言われています。

プログラミングは文書を作る能力と文書を管理する能力を養ってくれます。 #

簡単なプログラムを1つ作るにしても、提案書、計画書、設計書、仕様書、マニュアルなど、数えきれないほど多くの文書を作成し管理しなければなりません。もちろん複数人で自分の分野を決めて分業することが多いですが、小さなプロジェクトを進めると、すべての文書を1人で作って管理しなければならない場合もあります。

先ほど述べた文書だけでなく、コードソースもまた最も重要な文書の1つです。1人で開発するとしても、後で他の開発者が理解しやすく修正できるよう、わかりやすいコメントを付けたり、コードが変更されるたびにバージョン管理をしっかり行うことも、良い文書管理能力だと思います。良い文書管理能力は、会社で最も重視される従業員の能力の1つであり、社会生活をする中でどんなフィールドでもうまく活用できると思います。

プログラミングは協調性とコミュニケーション能力を養ってくれます。 #

プログラムを作るプロジェクトを始めると、通常、複数人で自分のパートを決めて協業することになります。他の開発者に自分の考えを表現し、相手の意見を聞き入れるコミュニケーションスキルは、プログラムを作る開発過程において非常に重要な部分を占めます。したがって、開発プロジェクトを何度も繰り返せば、コミュニケーションスキルは自然と向上するものです。会社生活をしたり自分のビジネスをしたりする際にも、ほとんどの業務が他の人との協業で成り立っており、このときどれほど良いコミュニケーションスキルを持って、どれほど調和のとれた協業ができるかは、自分の会社生活やビジネスに大きな影響を与えると思います。

私個人としては、プログラミングを行う上で最も重要だと思うスキルは、先ほど述べた3つ目と4つ目の理由である文書管理能力とコミュニケーション能力だと思います。

プログラミングスキルはもはや開発者だけの技術ではありません。 #

今や医学、生物学、物理学、数学の分野でプログラミングが広く使われています。 特にPythonはデータ分析とデータ可視化を目的として、さまざまな分野で非開発者から多くの支持を得ています。

開発者でなくともプログラミングスキルを持っていれば、自分の分野でプログラミングスキルを使って自分の競争力を高め、業務のパフォーマンスを向上させることができるでしょう。例えば、会社の同僚が毎週手作業で作るExcelレポートやPowerPointレポートをボタン1つで自動的に作成してくれるプログラムを作ったり、1日中かかるデータ分析をたった5分で終わらせてくれるプログラムを作ったりすれば、会社で認められるのはもちろん、同僚からも多くの人気を得られると思います。

このほかにも、専門の開発者でなくともすべての人がプログラミングを学ぶべき他の理由はたくさんあると思います。今からプログラミングを始めたり、お子様にプログラミングを教えたりして、自らプログラミングを学ぶべき他の理由を探してみてはいかがでしょうか。

X