「2ちゃんねる」の創立者で、最近は「論破王」としても知られる、ひろゆき(西村博之)さんが、ユニークなプログラミング入門書を書いた。本書「プログラマーは世界をどう見ているのか」(SB新書)である。実際にプログラミングの初歩を学びながら、プログラミングをすることで得られる論理的思考力、創造性、問題解決能力について解説している。
「プログラマーは世界をどう見ているのか」(ひろゆき著)SB新書
ひろゆきさんは1976年生まれ。1999年に、インターネットの匿名掲示板「2ちゃんねる」を開設し、管理人となる。2005年に「ニコニコ動画」の管理人に就任。2015年に英語圏最大の匿名掲示板「4chan」の管理人となる。2019年、インターネット上のコミュニティサービス「ペンギン村」を開設し、村長に就任。
本書では最初、アメリカの経済誌「フォーブス」が発表した2022年版の世界長者番付を掲げ、テスラのイーロン・マスク(1位)、アマゾンのジェフ・ベゾス(2位)、マイクロソフトのビル・ゲイツ(4位)ら、トップ10の過半数がプログラマー出身者である、と指摘している。
IT業界の市場拡大が直接的な理由だが、プログラミングをすることで得られる能力も大きいと、ひろゆきさんは考えている。具体的には情報整理術、俯瞰で物事を見る目、相手に合わせて指示するやり方、物事を効率化する力、仮説を立てる癖、模倣するショートカット術などだ。
プログラミングは、高校を卒業できる程度の知力があれば、ある程度は誰でもできてしまうものだという。実際、ひろゆきさんは中央大学の文学部出身の文系プログラマーだ。
自分は凡人プログラマーだが、Perl(パール)というプログラミング言語を覚え、わからないことはネットの掲示板で教えてもらいながら、「2ちゃんねる」を作るまでに至ったそうだ。
実際に手を動かしてプログラミングを学ぶ
本書の特徴は、座学的に理論ばかり説明するのではなく、「実際、手を動かしてプログラムを書く」ことを重視していることだ。
取り上げる言語はHTML(エイチティーエムエル)とJavaScript(ジャバスクリプト)。Webブラウザに命令を出すプログラミング言語で、パソコンとWebブラウザさえあれば、すぐに始められるので、ハードルが低いという。
「第1章 『ツリー思考』で整理する」「第2章 物事を『最小単位』に分解して並べる」「第3章 最強の能力は『if』思考で身につける」「第4章 『仕事が速い人』はループを見つけている」「第5章 プログラミングを学べば、アイデアを形にする力を得られる」という構成になっている。
第1章では、実際にWindowsの「メモ帳」アプリで文章を入力し、さまざまなHTMLのタグを付けることで、Webサイトに命令した通りの結果が出る快感を味わうことができる。Webサイトの全体構成を、ツリー構造を使って考えることで、物事を俯瞰的にとらえ、問題解決や原因追求の役に立つ、と説明している。
第2章からはJavaScriptを使って説明している。その基本形は、操作対象と命令を「.(ドット)」でつなぎ、命令のあとのカッコ内に表示したい内容や数を書くというものだ。
次に、一時的にデータを記憶する「変数」を使うことで、複数の文を連携させることを学ぶ。変数名のあとの「=(イコール)」は「=の右にあるものを=の左に入れろ」という意味で、数学で「=」を使うときの「等しい」という意味ではないことを知る。
続く章では、「分岐処理」と「反復処理」を取り上げる。分岐処理では、if文とif-else文、else-if文を学ぶ。「条件式を考えるのがプログラマーの仕事」だと説明している。
プログラミングの入門書では、このあたりで挫折する人が多い箇所だ。
ひろゆきさんはフローチャートを書いて頭を整理することを勧めている。ちなみに、初心者にはelse-ifの代わりにifを使う間違いが多いそうだ。
分岐処理で仮説を立てる癖がつく
ひろゆきさんはABEMAで、「マッドマックスTV論破王」という番組に出演し、ディベート対決をしている。
その場でテーマを知らされ、相手が先に立場を選ぶので、事前対策ができない。しかし、8割ほどの確率で勝っているという。
それは、状況に合わせた思考法に慣れているからだという。条件処理のプログラムを書いていると、仮説を立てる癖がつき、人生を今より少しだけ「お得」に生きていくことにもつながる、と書いている。
そして最後に、「反復処理」を学ぶ。
プログラムの流れが輪を描くようになるので、「ループ処理」ともいう。そのための文の1つ、for文(=for())が登場し、カッコ内には「初期化」「条件式」「増減式」という3つの処理が入っている、と説明している。日常に潜む「ループ」の例を挙げ、「仕事に熟練する」とは、ループを見出すことだとも。
一通り学習すれば、Webページを動かし、簡易伝言板や自動返信ボットをつくることができるようになる。
プログラミングができれば、自分の頭の中でWebサービスの構築がイメージできるようになるという。その際、「独自のものを作ろう」と意気込まずに、成功しているアイデアを「パクって」、オリジナル要素を少し加えるくらいの気楽な姿勢のほうが成功の近道、と鼓舞している。
プログラミングを本格的に学ぼうという人のために、Python(パイソン)やJava(ジャバ)などのプログラミング言語の特徴に触れている。どのプログラミング言語にも変数やif文、for文があって大まかな書き方は似ているので、1つ覚えれば、他に乗り換えるのもそれほど難しくないという。
無味乾燥なプログラミング言語の入門書に、「それを知るとどんな能力が身につくのか」という功利主義的な観点を導入したのがユニークだ。例文もわかりやすく、これまで類書で挫折した人もゴールまで到達できるだろう。
(渡辺淳悦)
「プログラマーは世界をどう見ているのか」
ひろゆき著
SB新書
990円(税込)