「コーディングを支える技術」を読んだ

読書記録。
コーディングを支える技術を読みました。

目的

著者さんのこちらのスライドを読んで、内容に興味を惹かれたので。

(スライドより引用)

  • 世の中には大量の学ぶべきことがある
  • 全部学ぶには時間が足りない
  • 何から学べばいいんだ?
  • 限られた時間を何に投資するのか?

これらはおそらくエンジニアとして常に感じることだと思います。
この観点を持って書かれた本書には、どのようなヒントが提示されているのだろうと関心を持ちました。

読了時間

文字列周りとか興味低い部分は流し読みで、大体3.5時間

得たもの(感想)

言語間のアプローチの違いを知れて面白かった

これまで漠然と「xx言語は何でこんな仕様なんだ」と感じていたけれど、
そういう部分にこそ設計者なりの意図が反映されている。
どの言語も目的はざっくり言えば「楽をする」ということに尽きるのだけど、

  • 何を楽にするか
  • どう楽にするか
  • こっちを楽にするとあっちで苦労するよ(トレードオフ)

などの観点が設計者によって違うわけですね。

現場でよく使われる便利な言葉で言うなら、「決めの問題」かな。

そうなると、表面上の構文の差異など大したことないと感じるようになりました。
ポイントはどうしてそう設計したのかという背景に共感できるかどうか。
言語の好みとは言語設計の好みですね。

「比較から学ぶ」

意識はしているので姿勢としては大丈夫だと思う。
やっぱり大事だよね、と再認識させてくれました。

「歴史から学ぶ」

反対にこっちは大事なのが分かっていても実際にはできていない。
何かひとつの分野だけでも掘り下げて深く知るといいんだろうな。

教育用の参考資料として良さそう

上記スライドにも対象読者として書かれていますが、 本書は初心者の頃に読むとより面白かったんじゃないかと思います。

「なぜxxが必要なのか」という疑問について言語比較または 歴史の観点から説明されているので、解決のきっかけになるのではと思いました。

もしくは新人に「なぜ」と質問されてうまく答えることができない教育担当者も、 読む価値が大いにありそうです。

プログラミングの経験が増えると「当たり前」に感じてしまって、 感覚的には分かるけど分かりやすく言語化できないこともあります。
本書はそんな際の手助けになりそうです。

各項目の詳細は特に覚えていない

私の読書目的としては「学び方のヒント」を得ることにあったので、 各項目の詳細については特に記憶していません。
読んでいて面白いなーとは感じましたが、それを覚えたかどうかは別。
詳細をきちんと理解したければ、その項目に特化した別書籍を買うべきかなと考えていますので。
(本書も導入として使うには良いと思う)

本書のポイント

PHPのハブられ具合。 比較対象としていろいろな言語が登場しますが、PHPの出番の少なさがひどい。
同じLLのPerlPythonRubyに比べて圧倒的に少ない。
末尾の索引によると次のようになっています。

  • Perl: 計8ページに登場
  • Python: 計11ページに登場
  • Ruby: 計8ページに登場
  • PHP: 計3ページに登場

95ページ目のスコープ関連のコラムでPerlLispSchemeJavascriptPythonRubyと言語が並びつつ、 PHPが出てこなかったときには思わず心の中で突っ込みました。

これがPHPですね、分かります。
(C#もメジャー言語の割に計1ページしか出て来ませんけどね)