体系立った考え方・伝え方の最適な練習法
今や学校教育にもプログラミングが導入される時代だが、「プログラミング的」に順序立てて正確にものごとを捉える考え方は、仕事にも役立つ思考法である。実はプログラミングを知ることそのものが、考える力を高めることに大いに役立つと話す清水亮氏に、プログラミングと思考の関係についてうかがった。(取材・構成=杉山直隆)
プログラミングは論理的思考力に直結する
近い将来、必要不可欠なスキルになると言われている「プログラミング」。30代、40代の場合、今から始めてもキャリアアップにはあまり役立たないでしょう。ただし、「思考術」という今回のテーマで言えば、すべてのビジネスパーソンにプログラミングの体験をお勧めします。なぜなら、プログラミングを自分の手でやってみると、様々な角度から「考える力」が鍛えられるからです。
プログラミングに使われる言語は何千種類、よく使われるものでも数十種類がありますが、どの言語に取り組んでも、次のような力が身につきます。
一つは、「論理的思考力」です。
プログラミングとは、物言わぬ機械であるコンピュータとコミュニケーションを取る唯一の方法です。いわば「どのように動いてほしいか」を文章によって指示するわけですが、コンピュータは人間と違って、曖昧な言葉を理解してくれません。自分の思い通りに動いてほしければ、「具体的に、簡潔に、順序立てて」プログラムを書くことが必要です。
つまり、プログラミングを行なうことが、自然と論理的思考力のトレーニングになるのです。
仮説と検証のトライ&エラーが簡単
また、「具体的に、簡潔に、順序立てて伝える」ことは、現実の人間同士のコミュニケーションにとっても必要なことです。プログラミングで日々その方法を考えていると、日常の会話でも、具体的かつ論理的に話すことを意識するようになります。取引先や上司、部下などとの会話がスムーズになり、仕事がうまく進むようになるでしょう。指示や依頼をするときはプログラミング的な話し方をしてみてはいかがでしょうか。
プログラミングで身につく二つ目の力は、「仮説を立てる力」です。
プログラミングをするときは、常に「このように書いたら、こう動くのではないか」と仮説を立てます。プログラミングの長所は、その仮説が正しいかどうかがその場でわかること。普通の商品開発や営業などの場合は意外と、当初の仮説が正しいのかどうかわからないものですが、プログラミングは「プログラムが動く・動かない」という明確な結果になって現れます。だから、仮説の間違いに必ず気づけるのです。
こうして、仮設を立てて検証するプロセスを繰り返すことで、精度の高い仮説が立てられるようになります。その思考は、普段の仕事で仮説を立てるときにも応用が効きます。
三つ目は、「限られたリソースを効率よく配分する力」です。
プログラミングでは、限られたコンピュータのリソースを効率よく使って、いかに多くのことをするかが求められます。コンピュータの能力のキャパシティを超えないように、無駄のないプログラムを考えなければなりません。プログラミングの半分は、リソースを管理することといっても言い過ぎではないでしょう。
こうした思考を養うと、普段の仕事でも「いかにリソースを最大限に活用するか」「ムダを減らすか」という観点で物事を考えられるようになります。特に管理職にとっては必要な能力でしょう。
天才のアイデアを自分の道具にできる
もちろん、プログラミングをするメリットは、思考力を高めることだけではありません。最大のメリットは、「世界の天才の技術とアイデアが詰まったモジュールを、簡単に、自分の道具として使える」ことです。
「画像のデータを解読し再現する」「データを圧縮する」「ゲームのプログラムを書ける」。コンピュータの世界には、世界の天才が考え出した、さまざまな機能のモジュールが無数にあります。普段、何気なく使っていますが、実際は非常に高度な技術とアイデアの結晶です。
そんなモジュールを、プログラミングができれば、たった数行のプログラムを書くだけで使うことができ、自分の力だけではできないことをたくさん実現できるのです。
私は、プログラミングとは「人類が初めて手にした、力を合わせる方法」とまで考えています。それを習得しないのは、人生を損しているといっても過言ではありません。
ハードウェアについて知ることから始めよう
いくら自動車の魅力を話しても、自動車に乗ってみなければ、その良さはわかりませんが、それは、プログラミングも同じ。本などで考え方だけを読んでも、本当の魅力はわかりません。ぜひ、かじる程度でも良いので、自分で手を動かして、プログラミングに触れてみてください。
もっとも、「プログラミングは、自分にとってハードルが高いのでは……」と考える人もいるかもしれません。そんな人に私が勧めているのは、まず「ハードウェアについて学ぶこと」から始める方法です。
コンピュータとは、どのような部品からできていて、どのような仕組みで動くのか。CPUやメモリなどは、どのような経緯をたどって、どんな工夫によって進化してきたのか。こうしたことを学ぶのです。
なぜこれがお勧めかというと、ハードウェアの仕組みがわかると、プログラミング言語の原理もわかるからです。
たとえば、「なぜ、コンピュータは0と1の2進法で動いているのか」「CPUという司令塔は、何に司令を下しているのか」といったことです。こうした仕組みがわかると、コンピュータにとって重要なのは、「いかに低電力で効率よく動かすか」だと分かります。すると、プログラミング言語の意味がおぼろげながら理解でき、言語に対する違和感が少なくなるでしょう。
ハードウェアの進化の歴史は、それほど複雑ではないので、図鑑を見るような感覚で楽しく学べるはずです。
PythonやPHPに触れてみよう
ハードウェアについて学んだら、いよいよプログラミングに挑戦です。プログラミング言語はよく使われるものでも数十種類あり、初心者でも使いやすいものもあります。
私がお勧めするのは、「Python(パイソン)」です。ウェブアプリや人工知能などを創るのによく使われている言語ですが、シンプルで覚えやすい。『退屈なことはPythonにやらせよう――ノンプログラマーにもできる自動化処理プログラミング』(AI Sweigart著、相川 愛三訳)という本があるほどです。
PHP研究所の媒体だから言うわけではありませんが、「PHP」という言語もお勧めです。試しにホームページを作ってみると良いでしょう。
また、「BASIC」は、50年以上前からある古典的な言語ですが、今から触れてみるのも悪くありません。BASICを知ってから他の言語を知ると、進化の過程と、最近の言語の素晴らしさがよくわかるはずです。
これらの言語を使って、ゲームなど、興味のあるものを作ってみるとよいと思います。
清水 亮(しみず・りょう)
ギリア〔株〕代表取締役社長
新潟県長岡市生まれ。6歳の頃からプログラミングを始め、21歳より米Microsoftで上級エンジニアとして活動後、99年、ドワンゴに参画。2003年より独立し株式会社UEIを設立、代表取締役社長兼CEOに就任。05年、独立行政法人IPAより天才プログラマーとして認定される。近年は深層学習を活用した人工知能の開発を専門に行ない、17年にギリア株式会社を設立し、現職。著書に、『よくわかる人工知能』(KADOKAWA)などがある。17年より東京大学先端科学技術研究センター客員研究員。(『THE21オンライン』2019年3月号より)
提供元・THE21オンライン
【関連記事】
・ミレニアル世代の6割が「仕事のストレスで眠れない」試してみたい7つの解消法
・みんながやっている仕事のストレス解消方法1位は?2位は美食、3位は旅行……
・職場で他人を一番イラつかせる行動トップ3
・「ゴールドマン、Facebookなどから転身、成功した女性起業家6人
・【初心者向け】ネット証券おすすめランキング(PR)