見出し画像

非エンジニアがプログラミングを学ぶ意義について考えてみた

どうも、ほたか(@hotaka_tajima)です。

今回はプログラミングって非エンジニアでも勉強する必要あるよっていうお話をします。僕の体験ベースなので、共感できない方もいらっしゃるかと思いますが、「こんな意見もあるんだ、ふーん」といった感覚で読んでもらえると嬉しいです。

非エンジニアがプログラミングを学ぶ価値

結論からいうと、非エンジニアがプログラミングを学ぶ意義、それは「勉強し続けることの重要さに気づく」ということです。以下の記事でもご紹介したのですが、これからの時代、僕たちはずっと学び続けなくてはいけなくなります。

僕はプログラミング学習はその第一歩として、とても有効だと思います。理由として一番大きいのは、プログラミングを学んでいると無限にある自分の無知に気づけるという点です。ソクラテスもいっていた「無知の知」です。まずは自分が何も知らない、無知な人間であることを自覚する、そこから勉強の道、自己研磨の道が始まるではないでしょうか。プログラミングを学ぶことで、「あれ、普段使ってたブラウザってどう動いてるんだっけ、そもそもインターネットってどういうもの?まさか自分って全然何も知らないんじゃね?このままだとやばくね?」と一種の危機感を感じることができ、その瞬間こそ、学びのスタート地点になりうるのではないかと思っています。

興味のアンテナを張り巡らす

プログラミングを学ぶと、テクノロジーに興味が出てくる人は多いでしょう。僕も実際に勉強してみて、VRやAR、IoTやAI、ブロックチェーンのような、話題になっているけど実際詳しいことは知らない、といったトピックに関して「ちょっと調べてみようかな」「もうちょっと詳しくなりたいな」といった知的好奇心が湧いてきました。つまり、今までよりも興味の幅が広がったことで、情報への感度が高まったのです。

先ほどの例で言えば、もしあなたがブロックチェーンに興味を持って調べていると、活用事例1つとして、仮想通貨にも興味を持つかもしれません。そうすると、その延長線上で「あれFacebookがなんかLibraっていう仮想通貨作ろうとしている」と気づき、今度はLibraについて調べ始めるかもしれません。またそこまでいくと今度は「じゃあなんでFacebookは仮想通貨を作ろうとしてるの?」「これが成立したら誰にメリットがあって、誰にデメリットがあるの?」などと思考を巡らす可能性も出てきます。こんな風に、知的好奇心は知的好奇心を呼び、知への果てなき欲求無限ループが起こります。

これからプログラミングを学び始めるといった方は、ぜひプログラミングを学ぶことの意義は、必ずしもエンジニアとして仕事に活かすことだけではなく、こういった副次的メリットがあるということを知っておいてほしいと思います。いや、というよりむしろ、ほとんどの人にとってこちらのメリットの方が大きいかもしれません。

他もたくさんある、非エンジニアにとってのプログラミング学習のメリット

実はプログラミング学習には、「学び続けることの大切さに気付ける」以外にもメリットはたくさんあります。

具体的にいうと、以下のようなものが該当します。

・人生が楽になる
・論理的思考力を鍛えられる
・問題解決能力を鍛えられる

まず、テクノロジーを知っていると人生が楽になります。例えば、今流行りのZoom。これなんかもテクノロジーですよね。Zoomのおかげで、今まで足を運び、直接会わないといけなかったものを、オンラインで完結できるようになりました。この場合、テクノロジーを知っている人は知らない人に比べて、多くの時間を節約することができるのです。つい最近衝撃だったのは、scrimbaというサービスです。

どんなサービスかというと、ブラウザだけで「プログラミング動画」を制作してネット上に公開できるサービスです。また、ユーザー側はなんと、動画をみながら画面上のコードを直接編集できます。講師が動画で授業を進めているのに対して、講師が書いているコードをユーザーが直接編集できるのです。これ本当にすごいサービスですよね。まるで映像に触れているかのようです。

scrimbaに関しては、こちらの動画がわかりやすいので興味がある方は見てみてください。

このようにテクノロジーを知っていると、実生活レベルで得をするケースが増えます。

また、論理的思考力、課題解決力を鍛えることも可能です。僕を含め、文系の方は比較的論理的思考が苦手な方が多いように感じます。現に僕も苦手です。プログラミングはその論理的思考力を鍛えるに最適なものの1つと言えるでしょう。コンピュータはコード通りに動きます。逆に言えばコード通りにしか動きません。自分がしてもらいたいアクションを論理立てて、指示してあげることにより、初めてコンピュータは思った通りに動くのです。実はこれ、コンピュータだけに限ったことではなく、対人間でも同じことが言えます。

例えば、誰かに指示を出す時は、論理立てて、聞き手が一発で理解できるような話し方をする必要がありますし、上司に提案する時も論理的にプレゼンテーションを組み立てることによって提案採用率は上がるでしょう。ビジネスでとても大事になる、「論理的思考」「課題解決力」もプログラミングを学習することで身に付けることができるのです。

プログラミング教育はいらない?

僕がプログラミングを学ぶ前に「プログラミング教育はいらない GAFAで求められる力とは?」という本に出会いました。当時の僕は「え?せっかく勉強し始めようとしていたのに、勉強する意味ないの?」と思い本を読んでみることに。すると、以下のようなことが書かれていました。

・アイデアというと、突飛なものが求められるように感じがち。しかし、誰も考えもしなかったような突飛なアイデアは、やはり誰にも求められていない。ビジネスとして成功するのは、みんな欲しいと思っていたけど、実現は不可能だと考えられていた程度のアイデアであることが多い

・儲けるアイデアを持っている人はたくさんいるし、金になる技術を持っている人もたくさんいる。しかし、この二者はどちらかといえば乖離傾向にある。両者が合わさればかなり面白いものができる

・アイデアと実行に距離があってはダメ。経営者がプログラミングを知っているとその距離が近くなる。SEなどを挟まなくてもい。そうすると、いいものができる。しかし、その距離は0でなくても良い

・サービスの立案者、企画者が必ずしもプログラミングをする必要はない。しかし、プログラマと直接対話できる水準の情報技術を有しておくことは、高い品質のインフラやサービスを生み出すための重要な要素である

・プログラミング能力とは、自分が実現したいと願うアイデアを強化したり、形にしたりするための技術であり、専門職であるプログラマとゼロ距離で討論できる知識や技能があるならば、自分が有している必要はない

・上流工程で必要な能力は、プログラミングというよりむしろ、
  ①論理的思考能力
  ②問題解決能力
  ③プロジェクトマネジメント能力
  ④コミュニケーション能力

・プログラミングを学ぶ理由の1つは情報システムのブラックボックス化を少しでも阻むこと

・どんなに技術を磨いても、ルールの決定権、支配権を握っている人には一歩遅れをとる

・プログラミングによって培われた論理的思考力、問題解決能力、創造力、そして哲学を基盤とするぶれないコミュニケーションや交渉力で、国際規約などにもコミットし、よりよい社会をデザインしていける人が今後重要

まとめると、コードを書ける必要はないけど、理解はしておこうねという話です。エンジニアとのコミュニケーションを円滑にとれたり、詐欺まがりの見積書に難癖つけられたりする能力は必要不可欠。さらに、プログラムによって実現できるということを認識しておくだけで、創造性が高まる、つまり「こんなこと実現できんじゃね?」と発想を膨らませることができるようになる、とも本書は言っています。起業家を目指している方にも目から鱗の話ですよね。

まとめ

ここまでざっくり非エンジニアがプログラミングを学ぶ意義についてまとめてきました。もう一度まとめて見ると、以下のようになります。

・学び続けることの重要性に気づく
・人生が楽になる
・論理的思考力を鍛えられる
・問題解決能力を鍛えられる  
・エンジニアとのコミュニケーションが取れるように
・アイディアを実現しやすくなる
・想像力が豊かになる

プログラミングの学習を始めようとしてるけど、いまいち踏み出せないといった方はぜひ、一度思いきって学習をスタートしてみることをおすすめします。別にプログラミングを学んだからといって、エンジニアになる必要はありません。プログラミングの学習はエンジニアにならなくても、絶対に活きます。エンジニアだけがプログラミングを勉強するといった価値観は、通訳者だけが英語を勉強するといった価値観と同じです。英語ってみんな勉強してますよね?そもそも義務教育ですよね?プログラミングも同じように教養として学んでおくべき分野の1つなのです。

と、いうことで、まだ勉強したことがない方は今から始めてみましょう。おすすめ学習サービスはProgateです。無料です。

では。

この記事が気に入ったらサポートをしてみませんか?