スキルUP

プログラミングは現在の“基礎教養”である/堀正岳

あなたの知的生活は「設計」できる! 『知的生活の設計―――「10年後の自分」を支える83の戦略』(堀正岳著)で、ちょっとした習慣を続けるだけで知的生活を実現できる方法を学びましょう。今回は最終回です。

「デジタル化した書籍1000 冊についてその平均サイズが107MBで、標準偏差が22MB」というデータがあります。正確にいうならば、その数字は107.62MBと21.50MBという数字になります。

これを計算するのに、ファイルの一覧表をウィンドウ上に表示して、そのサイズ情報をExcelなどにコピーしてから計算するという方法もありますが、それではあまりに手間がかかります。実は私がこれを計算するのにかかった時間は数秒に過ぎません。自分のiMac内に用意してある20行程度のプログラムを使うだけで済んだのです。

こうしたプログラミングのスキルはもはやエンジニアだけのものではありません。プログラミングは手で行うには現実的ではない規模の作業をあっという間に片付け、大きな時間節約を実現できる「学べる魔法」といってもいいでしょう。

これを知的生活の武器として利用できると、得する場面は多くあります。

プログラミングの知識が、差を生み出す

ここで「自分にはプログラミングの知識を使うあてなんてない! 」と思った人もいるかもしれません。しかしそれは見たことのない道具の有用性がわからないので必要がない気がしているのと同じです。

みなさんはふだんの作業でExcelやWordで繰り返し数字を入力したり、文字を置換したりといった作業を何度も繰り返すことはないでしょうか。

単純な作業ならアプリケーションに機能があるかもしれませんが、場合分けをしなければいけないといったように、考えながら手で行う必要がある場合もしばしばです。それを一度か二度行うだけなら苦になりませんが、もし1000回も繰り返すようならば作業量に呆然としてしまうはずです。

その作業は、プログラミングによって一瞬で実現可能になります。あるいは、ウェブで毎日同じ情報をチェックして、空欄に書き込むといった作業もあるかもしれません。それも、プログラミングで自動化することができます。

集めた情報を統計的に調べる、データに間違いがないかチェックする、ファイル名のフォーマットを統一するといった作業も時間をかければ手作業でも可能ですが、10000個のファイルやデータについて繰り返し、間違いなく実行するのは困難です。これも、プログラミングができれば数行で解決できる作業です。

作業を自動化して時間を節約するとともに、手作業では不可能なスケールで単純作業を何度でも実行できるところに、プログラミングのメリットがあります。まさにプログラミングは情報社会の基礎教養といってもいいのです。

問題解決を学ぶ

プログラミングを学ぶべきもう一つの理由は、それが具体的な問題解決方法を考えるための道具でもあるからです。アップル・コンピュータの創業者のスティーブ・ジョブズはかつて「プログラミングはだれもが学ぶべきだ。それは思考力を学ぶことでもあるからだ」と語っています。

たとえば私は「今日は異常な暑さだ」「異常な寒さだ」といった言葉が深い検討なしに語られるたびに、自前のプログラムを一つ実行します。それは気象庁の全国の気象官署からデータをとりよせ、平年の数値と比べてからどれだけ異常なのかを計算し、説明するためのグラフを描くところまで自動的に行ってくれる、私の秘密兵器です。

それを使えば、私は「異常」とはなにか、その日の気象が「異常といえるのか」を実際のデータと、再現可能な手続きに基づいて説明できるようになります。このプログラムを実行して、結果が出てくるまでにかかる時間は、たった10秒です。

問題を具体的なアルゴリズムとして捉えることは、ロジカルに考え、例外を見逃さない厳密な思考をするのに役立つのです。

どんな言語を学ぶべきか

それではどのプログラミング言語を学ぶべきかという問題は、多くの人がお互いの持論をぶつけて争う、答えのない質問です。

しかし初心者の学習に向いており、WindowsでもmacOSでも利用可能で、科学計算からウェブプログラミングもカバーする汎用性をもった人気言語ならば、いまならばスクリプト言語のPythonを筆頭に挙げられるでしょう。

macOSで「ターミナル」アプリを開いてシステムをコマンドで操作し、様々な自動化を実現したいのであれば最低限のUnixシェルの知識、シェルスクリプトの知識も覚えておいて損はありません。

このほかにも、データに対して統計をとりたいのならばR、ブログやウェブサイト上で動くプログラミングをしたいならばJava ScriptやPHPといった選択肢もあります。

実際にエンジニアとして仕事をするのでなければ、こうした言語のすべてを学ばずとも、初歩的な部分を習得するだけで日常の自動化や、作業の軽減に役立てることは可能です。

目安として:

①大量のファイルの名前の変更や、フォーマットの変換
たとえば数千のファイルの名前の変更、あるいは画像の横幅をすべて同じサイズに縮小し、形式をJPEGに統一するなどといった大量作業を一瞬で行うための道筋がつけられるか。

②大量な情報を検索できるか
数百のファイルに散らばっている何万行ものテキストファイルのなかから、目的としている文字列が何回出現しているかを把握するといった検索のための手段があるか。

③ウェブから情報をダウンロードして自動的に処理を加えられるか
ウェブサイトや、IFTTTなどといった仕組みで収集したデータに対して定期的に自動で処理を加え、条件に適合したら通知を送るなどといったような、手で行う作業をコンピューターに肩代わりしてもらうための仕組みを作れるか。

このあたりを学ぶことができれば、知的生活や、実生活をラクにするためのプログラミングとしては十分でしょう。

初歩的なプログラミングを学ぶために必要な投資は入門書を数冊、あるいはオンライン講座の受講、そして数週間の訓練です。単に知識を覚えるだけではなく、プログラミングを実践してバグに対応するスキルまで身につけるなら、これまで経験したことがないタイプの忍耐も試されるはずです。

しかしそうした訓練にあてた時間は何百倍、何千倍にもなって返ってくる、確実な投資だといえます。

著:堀 正岳

カテゴリ:スキルUP
【著者紹介】堀 正岳(ほり・まさたけ)
研究者・ブロガー。北極における気候変動を研究するかたわら、ライフハック、IT、文具などをテーマとしたブログ「Lifehacking.jp」を運営。知的生産、仕事術、ソーシャルメディアなどについて著書多数。理学博士。

【書籍紹介】『知的生活の設計―――「10年後の自分」を支える83の戦略』(KADOKAWA)
今日から始めることが「10年後の自分」を支える。
「趣味」「読書」「情報発信+情報整理」「書斎」「アプリ・ツール」「お金」まで……。毎日のちょっとした習慣を積み上げれば、誰でも知的生活を実現できる!

あなたへのオススメ記事

  • ソードアートとのコラボも! 日商プログラミング検定の創設が決定
  • オバマ元大統領は夜型だった! “夜型人間”の知的生活/堀正岳
  • 村上春樹やヴェートーベンは朝型だった! “朝型人間”の知的生活/堀正岳
  • 日常にブースト! 自分の「隠しコマンド」の見つけ方/堀正岳
  • 「電験三種」ってどんな資格? 仕事内容・試験概要・合格率・攻略法を徹底解説!

    「電験三種」ってどんな資格? 仕事内容・試験概要・合格率・攻略法を徹底解説!

  • いざというときもスマートに! 慶事・弔事のビジネスマナー

    いざというときもスマートに! 慶事・弔事のビジネスマナー

  • おいしい英語のトリビア満載! 英語の雑学クイズ

    おいしい英語のトリビア満載! 英語の雑学クイズ

  • 言われてみると…どっちがどっち?? 違いがわかる雑学クイズ

    言われてみると…どっちがどっち?? 違いがわかる雑学クイズ

  • あの英語にそんな意味が! 色・天気の英語雑学クイズ

    あの英語にそんな意味が! 色・天気の英語雑学クイズ

  • オンライン英会話と英会話スクール、比較するとどっちがおすすめ?

    オンライン英会話と英会話スクール、比較するとどっちがおすすめ?

スキルUPの人気記事ランキング

  • なぜ15・30・45じゃないの!? 謎すぎるテニスのスコアの数え方/毎日雑学

  • 遠回しすぎて伝わらない「嫌味」選手権がネットで盛り上がる

  • 【SE女子の日常】意外とアクティブなエンジニアもいる/ぞえ

  • 「駐在所」と「交番」は何が違う?/違いがわかる雑学クイズ(10)

  • 営業1年目の夏。憧れの先輩との出会い/えりたの新人営業マン成長記(1)

{ カテゴリ別ランキングを見る }

資格・スクール情報

  • 行政書士とは? 仕事内容を詳しく解説

    行政書士って何? どんな仕事をするの? 他の法律系資格との違いは? 行政書士に関する素朴な疑問を解決します。

    行政書士とは? 仕事内容を詳しく解説
ページトップに戻る