社会人がプログラミングを学ぶ価値とは?何をすれば…と戸惑う人へ

MONEYPLUS / 2019年6月17日 18時0分

写真

社会人がプログラミングを学ぶ価値とは?何をすれば…と戸惑う人へ

前回は、非エンジニアがエンジニアとうまく協働するために、どのようなことを気をつけておくべきか、について書きました。

今回は、ビジネスパーソンのみならず、学生、さらには子供のいる親も気にしているであろう、「プログラミングを学ぶ価値とはなにか?」についてお話できればと思います。

実際、今年の3月には楽天の三木谷浩史会長兼社長が「ITサービス会社に勤務しているなら、コンピューターについての基礎知識は必要だ」とBloombergのインタビューに答え、「英語に続き、プログラミングも全社員に対して習得を必須化するのではないか」とニュースになったことは記憶に新しい話題です。

上記のニュースだけでなく、教育課程におけるプログラミング学習の必修化などの話題も盛り上がる中、非常に身近な話として「プログラミングスキルが社会人としての必須スキル」とされる未来を一つの可能性として受け入れていく必要があります。

結論から書かせて頂くと、「すべてのビジネスマンがエンジニアレベルでプログラミングをできるようになる」必要は全くありません。ただ、よく言及される表現をお借りしますが、「読み書きそろばんレベル」として「プログラミングスキルを持っておく」ことは必要な時代になっていくと考えています。


読み書きそろばんとしてのプログラミング

「読み書きそろばんレベル」で「プログラミングができる」とはどういうことを指すでしょうか?

まず前提として、文章の読み書きができるからといってすべての人が「言語学者」や「文学者」になるわけではありませんし、算数や数学を学習したからといってすべての人が「数学者」になるわけではないですよね?

それと同様に、プログラミングも「エンジニア」や「プログラマ」として仕事ができるレベルを目指す必要はありません。必要に迫られたら理解でき、使う必要があれば使うこともできる、私のいう「読み書きそろばんレベル」は、このレベル感を指しています。

そのため、

・テクノロジーが社会に与える影響について充分なリテラシーを持つ
・必要に応じて身近な課題解決手段としてプログラミングを利用できる

という意味で「プログラミングスキルを習得する」ことが必要だと考えています。

情報リテラシーとしてのテクノロジー理解

まず、前者のリテラシーをきちんと持つためには、プログラムの書き方自体を学ぶ必要はありません。

私が非常に素晴らしいと思うコンピュータ・サイエンスの入門書籍に『入門 コンピュータ科学 ITを支える技術と理論の基礎知識』という書籍があります。1985年に初版が発行され、現在第11版を数えるまでアップデートされ続けられ、全米の大学でも導入されているコンピュータ科学の教科書です。

本書では、各技術的トピックを解説している各章の末尾に「社会問題」という節を設けており、そこで「テクノロジーが社会に与える影響」について考察させる「深い問い」が提示されています。

参考までにひとつ引用すると、「第四章 ネットワークとインターネット」の章末トピックとして、下記のような設問が設けられています。

「ネットワークによるコンピュータの接続は、在宅勤務の概念を普及させた。この動きの賛否両論を示せ。在宅勤務は、天然資源の消費に影響するか。家族の絆を強化するか。”職場の人間関係”によるストレスを減少させるか。[後略]」

テクノロジーやインターネット、プログラミングの世界に付随して生まれているあらゆるサービスは、あらゆる産業の新たなインフラとして影響を与えるものです。このような問いについて考えるだけでも、非常に幅の広い考察対象が生まれることに気付かされます。

つまり、「具体的なプログラミングスキル」よりは、上記のような「テクノロジーが社会にどのような影響を与えているか」について本質的に考えられるようになることが、ビジネスパーソンにとって価値が高く、義務教育課程を含めて今後の社会を生きるにあたって必須の観点になると思います。

課題解決手段としてのプログラミング

一方「課題解決手段としてプログラミングを利用できる」ためには、やはり具体的な「プログラミングスキル」を身につけることが非常に有用になります。

冒頭で紹介した「楽天のプログラミング研修必修化の可能性」の話は、IT企業の経営観点・マネジメント観点において、今後一つ有るべき方向性であり、非常に価値のある施策となるでしょう。

実際、IT企業の現場では、プロジェクトマネージャーやプランナー、マーケターのような多くの非エンジニア職種の方から、ちょっとしたデータの取得や分析をするために、「データベースからデータを集計する」や「分析のためのスクリプトやツールを開発する」といった細々した仕事がエンジニアに依頼されています。

このような状況を、私はよく「メラゾーマを使える魔法使いに、メラを連発させているような状況」という風に例えています。

きちんとしたスキルを持っているエンジニアは、より本格的なプロダクト開発やデータ分析基盤の開発など、本領を発揮できる領域を多く持っています。また、このようなタスクを依頼する側の人たちも、もっとスピーディに自由度高くトライアンドエラーをしたい、と考える人もたくさんいるでしょう。

組織やチームとして生産性の高い状況へ持っていくためにも、「読み書きそろばん」程度にプログラミングを手段として使え、仕事の効率化のために使えるプログラミングスキルを身につけることは非常に価値が高いと言えます。

具体的に学ぶ価値の高いプログラミングスキル

次に、もう少し踏み込んで、具体的に学ぶ価値の高いプログラミングスキルとはどのようなものかについても考えてみます。

既に上述したものもありますが、

・データベースを操作するために必要なSQLを扱えるスキル
・Google SpreadSheetで自由にデータ集計・分析するためのGoogle App Scriptを使えるスキル(JavaScriptの利活用)
・WordPressのカスタマイズを問題なくできるスキル
・ちょっとしたルーティンワークを自動化するスクリプトを書けるスキル

などを上げることができるでしょう。

これらのスキルを当たり前の手段として使える人が増えていくと、社会全体としても、みなさんの日々の業務やプロジェクトレベルにおいても、目に見えた生産性の向上を生み出すことができます。

とはいえ、これらをできるようになるための基礎プログラミングスキルを身につけるためには、一定のまとまった学習をする必要があります。
そのため、何かライフステージのタイミングを見て、まとまった学習期間を持つ、というのも良い選択となるかも知れません。

ただ、改めて強調しておきたいことは、「プログラミングは課題解決のための一つの手段に過ぎない」ということです。

マイクロソフトが2019年5月に発表したように、機械学習・深層学習によるデータ分析もドラッグアンドドロップでできるようなツールも既に世に出始めています。
※参照

ちょっとした日々の業務の効率化や自動化についても、プログラミングをせずに、IFTTTやZapierのようなツールを利用して効率化できるものはたくさんあります。

そのため、プログラミングというのを特殊なスキルとして捉えるのではなく、「文字を読む程度の無意識レベルのスキル」として気軽に捉えつつ、「数ある課題解決・問題解決の手法の一つ」として認識しておくのが良いでしょう。

プログラミングは一つのツールでしかない

今回は、「プログラミングを学ぶ価値とはなにか?」について、書きました。

特に、既にご自身のスペシャリティを持って仕事をしているようなビジネスパーソンにとっては、プログラミングというのは「一つの課題解決の手段に過ぎない」という考え方を持つことは非常に大切です。

本質的には、既にみなさんがお持ちのスペシャリティを重視した上で、その領域に対してテクノロジーがどのような影響を生み出すのか、について考えを深めておくことの方が重要です。

また、その上で、「今現在のスペシャリティをより効果的に発揮する方法として、プログラミングも一つのツールとして使えるようになっておく」、というのが妥当な考え方になるでしょう。


他方で、明確にエンジニアにキャリアチェンジをしたい、というような想いをお持ちの方もいらっしゃるかもしれません。そのため、次回は、非エンジニアの方がエンジニアへのキャリアチェンジを検討する際に考えておくべきポイントについて紹介します。

(西出大介)

この記事に関連するニュース

トピックスRSS

ランキング