すごいプログラミング入門書が登場したかもしれない
スポンサーリンク
局所的にTwitterでかなり話題になっている本。
現時点では予約受付中で目次とサンプルページをベースで書いています。目次を見る限り、確かに基本的な内容中心。
コンセプト、アイディアの時点で素晴らしいのでサンプルページを見ただけで、 間違いなくすごい本だと判断できる。
他の分野の人には理解されないかもしれないけど、職業プログラマには思いつかない画期的アプローチ。
「ふりがなプログラミング」シリーズの概要
スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,株式会社ビープラウド
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
スラスラ読める JavaScript ふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,及川卓也
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
出版元:『ふりがなプログラミング』シリーズのご紹介 – リブロワークス – LibroWorks
制作したリブロワークスさんの解説は以下のとおり。
「ふりがなプログラミングってどういうこと?」と疑問を持たれる方が多いと思いますが、名前のとおり紙面のプログラム(ソースコード)に、日本語でふりがなを振った書籍です。
プログラムのソースコードにそのキーワードの意味をふりがな(ルビ)を書いて、さらにすべての行の日本語訳をのせるという画期的なアプローチのプログラミング入門書。
漢文の訓読+書き下し文、もしくは英文解釈の参考書をプログラミングの入門書に持ち込んできたイメージ。
プログラマには思いつかない発想。
行単位で番号を振ったりして説明する本はこれまでにもあったけど、この本はキーワード(単語)単位でふりがなとして、文字(列)の真上にそれが「何を意味するか」を記載している。
この「ふりがな」の面白いところはプログラマがソースコードを読むときに頭の中で無意識にやっている変換・認識を文字として可視化しているところ。
やっていることは英語の学習書と似たようなことなんだけど、これはすごい。
6月22日まで期間限定でそれぞれChapter 1が読める(インプレスのWebサイト)。
内容的には初心者向けでオブジェクト志向の話は出てこなかったり、文字通り入門書。未経験者向け。
環境としてはJavascriptの方はエディタとしてAtom、実行環境としてGoogle Chrome。Pythonの方はPython 3.xでPython付属のIDLEを使うことを前提にしている模様。WindowsだけでなくMacの場合に手順についても説明がある。
環境のセットアップをどうするかは入門書にとっては非常に悩ましいところ。
どこがすごいのか
「ふりがな」でこれまでの(プログラミングの)入門書のジレンマ(後述)のひとつを解決。項目1と3で、(独学の)プログラミング入門者がつまずく原因をほぼ解決している。
ある程度英単語を知らないと英文をスラスラ読めないのと同じで、最低限の記号とキーワードを覚えないともソースコードスムーズに読めない。フラストレーションを感じずに 読める分、理解することにえねるぎーを集中できる。
また、「読み下し文」も地味にいい。これまでは基本的にプログラムの挙動を説明したり、ソースコードを掲載して解説することがメインだった。説明のための擬似言語を用いることはあっても全文訳はなかった。
大抵の本は上手くいく手順の説明が中心で、エラーメッセージを詳細に解読して説明するというアプローチは初めて見た。
大抵のプログラミングの本は間違えたときのやり直し手順は書いていない。正解ルートだけ。 この点、(英語の)エラーメッセージをきっちり解説している点は珍しい。
入門書のジレンマ
プログラミングに限らず大抵の専門分野の入門書は説明が前後したり、ページ数の関係で一度説明したことは省略されがち。何故かと言うと ページ数の都合で基礎的なことを何度も説明できないが、説明を省くと読む側の負担が増す。
あまりに丁寧に同じことを書くと読む側がうんざりする。なのでふつうは最初だけ丁寧に説明して、その後は必要に応じて前のページを参照させる方式。
どんなに文章で詳細に解説しても、読んだ直後は理解できても記号と概念の対応が脳に定着していない。よほど頭が良くないと数ページ進むと忘れてしまう。
そのせいで読んでいる最中に「これなんだっけ?」と止まってしまう。そこで前のページに戻って読み直さないといけない。
その点、ふりがな方式だと前のページに戻ったりする必要がない。おまけに視線の移動も最小限。 ページ数の増加もふりがなのサイズ次第で抑制できる。 ページ数や説明の順序といった出版側の都合と読者の理解しやすさのバランスというジレンマをきれいに解決している*1。
そのほか
余談:プログラマとソースコード
おそらくプログラミングを始めたばかりの状態だと頭でプログラミング言語の文法(構文)を思い出して、アルファベットと数字・記号の羅列を解読して、意識的に頭で考えて日本語に変換しながら考えて読でいる。
例えば「これはforというキーワードは繰り返しの開始で、ええっと繰り返し条件は……」、という感じ。
プログラマは(得意な言語なら)プログラミング言語のまま、意識的に変換せずに「あ、ループか。繰り返し条件は?」という感じで 頭の中の変換ステップが少ない。たぶん脳のワーキングメモリの消費が少ない。
普通に日本語の文章を読むとき文法を意識したりしないのと同じ感覚でプログラムのソースコードを読んでいる。
英語の得意な人がいちいち頭の中で日本語に変換せずに英語のまま理解しているという話とたぶん一緒*2。
Twitter上の反応など
この本まじすげー。コードにルビを降るのすごいし、エラーコードとかもすごい!!!というか、最高の発明だ #インプレス pic.twitter.com/fKtqLhcTLx
— TS系JS即身仏 (@erukiti) 2018年6月14日
#techbook_meetup の時に見せていただいた、スラスラ読めるPythonふりがなプログラミング https://t.co/lfU1U2czjd 全編コードの部分に日本語の対訳があるという、「その発想は無かったわ……」な本。Pythonわかんない僕にはありがたいかもしれない。 pic.twitter.com/BvP83EzFuw
— Piro/Linuxコマンド操作漫画連載中 (@piro_or) 2018年6月14日
「ふりがなプログラミング」のルビが示しているのは、ふりがなでも読み方でも発音の仕方でもなくて、入門を終えたプログラマーがコードに対して持っている"認識"なんだな。ここまできめ細やかに言語化と可視化をした本は珍しいし、この方向はアリなのかもしれない。
— なかざん (@Nkzn) 2018年6月15日
『プログラマーがコードに対して持っている"認識"』というのがポイント。もうちょっとしっくりくる単語がないものか。認知ともちょっとちがうし。
ちなみに僕はこの本を宣伝して別にお金が入るわけじゃありませんが、この本は自分でも嫉妬を覚える位いい本なので、是非試みとして成功して欲しい。
— TS系JS即身仏 (@erukiti) 2018年6月15日
日本のプログラミングシーンを変えるポテンシャルがあると思う!
プログラミングシーンというか、プログラミング教育かな。 学校教育でプログラミング、という時期にこういう本が出たのは大きいと思う。
まとめ
実は漢文の訓読という方法はすごいアイデアだったのかと。
とりあえず(初心者ではないけど)今後の展開への期待を込めてJavascript版を予約発注した。
面白い発想なのでぜひとも子供向けのプログラミング教材にも展開して欲しい。
学校のプログラミング教育にも広まって欲しいけど、書き下し文(日本語訳)からの連想で「次のプログラムを和訳せよ」とか「作者の気持ちを(略)」など、おかしなことを言い出さないかはちょっと心配。
数年後か数十年後に日本のプログラミング教育の歴史を振り返るときにエポックメイキングな本として参照されるのではないでしょうか。
いま確保してキープしておけば将来文献的な価値があったりするかも。
また、他の分野、特に数学の本とか化学式、楽譜とか応用の可能性は結構あるような気がします。
まだ実物を確認していないのでこの辺にしておきます。