「コーディングを支える技術」は本質を見出す手法を教えてくれる

西尾泰和さん(@nishio)の著書である「コーディングを支える技術」が発売されました。
本当におめでとうございます。

IMG_6064

- コーディングを支える技術 : 著者公式ページ
-- http://nhiro.org/langbook/

さらに「コーディングを支える技術」をお送りいただきました。どうもありがとうございます。

まだ精読はできていませんが、ひと通り読んだうえでネタバレしない様に、感じたことをメモします。


この本の内容を一行で書くと


「コーディングを支える技術」で西尾さんは、様々な言語が共通して持つ文法を軸に、様々なプログラミング言語を比較したり、プログラミング言語の歴史から言語間の関係を見出したり、実例を用いた解説をしたりしている。

最初から最後までずっと。

読後にどのように感じたのか


西尾さんに「コーディングを支える技術」の下書き原稿を見せていただき、恐縮しつついろいろと意見を交換させていただいてから半年経ち、完成版を眺めて感じたことは、

「この本は単なる調査、比較の結果をまとめた本ではなく、調査、比較の結果から本質を見出すための手法や考え方を丁寧に教えてくれる本になっている」

ということだった。

こういうことを明示的に教えてくれる技術書は稀有だ。

なぜ「本質を見出す手法を教えてくれる本」と感じたのか


以下で繰り返し「本質」という単語を『ある概念や物体が持っている価値の根源となっている部分』くらいの意味で繰り返し使っている。

なぜコーディングを支える技術が「調査、比較の結果から本質を見出す手法を教えてくれる」と感じたのか。

IMG_6136.JPG

それはこの本の各章内の工夫された節の構造のおかげで「技術の要素を抽象化して知識を抽出する作業」を体験できるからだろう。

その結果獲得した知識は読者のエンジニア人生を確実に豊かにする。また、今後新たな知識を高い効率で身に付ける際に「コーディングを支える技術」を真似して調べ物をする、という選択もできるようになる。(研究してると頻繁にやりますが)

全体の雰囲気はどんな感じか


コーディングを支える技術では序盤から、徹底的に言語間での比較をすることによって、また、様々な歴史的経緯を簡潔に述べることで、読者が自らの主観を脱してすべての可能性をより公平に捉える視点を得るための道を、プログラミング言語という具体例で示している。

コーディングを支える技術で紹介される各文法の解説は

- それは何を実現するためのものか
- それを実現して何を解決したいのか
- その解決法は結局どうだったのか

など「各文法がなぜあるのか?」という学習するうえでの疑問の根源を、出現の理由や存在意義を明確にすることに力を入れることで明らかにしている。

調査記事に意外とありがちなのは、歴史や各要素の差分以外の情報が足りなすぎることだ。
でも、この本は少な過ぎない絶妙な量の説明の連続になっている。このさじ加減が勉強になる。

一つのゴールにたどり着くための答えが複数あり、それぞれ歴史の流れの中で意義があったのだと読者は分かる。
後世で「xxxさんはyyyを作りました。」という1行を誰かに書いてもらうには各開発者の努力が必要なわけで。

そういう比較することと詳細を見ることの繰り返しを順に読むことで読者の心に大切なことが残る。

読破するために高い実装力は不要


コーディングを支える技術の各章は西尾さんが苦労して作り上げた、知識の階段が上から下まで続いているような印象を受けた。初学者が分からなくてつまづきそうなところに西尾さん謹製の手すりがある感じだ。

全体は柔らかい丁寧な文体で統一されており、プログラミング言語の書籍だけど堅苦しい印象がない。とにかくスラスラ読める。

そんな風に思いながら読んでいるうちに、この本は『最初のプログラミング言語を学びながら読んだ方が良い本』だと思った。

本編以外のコラムも素晴らしい


プログラミング言語にない方はコラムだけ立ち読みしていただきたい。
本質を調査する手法について、その方法の実例が端的に記されている。

とくに最後の手段として「端から写経するのはなぜか」を書いている技術書は珍しい。
他人のコードを精読したり、分厚い参考書の全文を輪読したりすることの効果について書いてあるとも言えるだろう。

書籍執筆中に考えたことをまとめられたという資料も大変におもしろい。



誰に「コーディングを支える技術」をオススメしたいか


読みたい時が読み頃、だし、探求心が強い人にオススメな本だと思う。

もっともオススメしたい層は大学3年生の方や、高専でこれから卒研をやる人だ。
まだ知らないことをこの本のように調べて纏めることができたら、興味をもった分野に相当詳しくなれる。

もちろんプログラミングでものづくりをしている社会人の方、全員におすすめしたい。
すでに熟練者になっている方はこの本に触発されて浮かんだ意見があったなら、ネットで公開して他人に影響を与えるべきだと思う。

初学者の学生さんにもオススメなので、大学、高専、専門学校の教員の方はプログラミング言語の最初の授業の副読本として、この本を取り入れるべきではないだろうか。

おわりに


「コーディングを支える技術」のように硬派な本がどのくらい売れるのかわかりませんが、個人的な予想としては世の中の割と広い層に長い間受け入れられと思うし、今後西尾さんが老人になるまでアップデートされると思います。

この本は、学生時代から努力を積み重ねとても賢くなった西尾さんがついにその賢さの一部を他の人に分け与えるために書いてくれたのではないだろうか、と個人的に思っています。

本質を見極められる確率を高めないと、流行や時勢に流されて不幸な結果に到達する可能性が高まるので、何かを目の前にした時に「これにはどういう価値があるのか」と考えてよりよい結果を導ける力があると安心ですね。

とりあえず積読しとくだけでも十分に価値がありますので、ぜひ書店などで中身を確認したうえでお買い求めください。

この本はググりながら読めば普段プログラミングをしていないエンジニアの家族でも読めると思います。

そして、この本を眺めて心から関心する人にきっと悪い人はいません。たぶん。



Posted from Drift Writer on my iPad mini


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus