JavaScriptの使い方についていろいろ書いた本。

JavaScriptはなかなか面白い性質のある言語で、
JQueryのような非常に高度なAPIを記述する力が半面、
基本機能を利用するだけでいろいろと落とし穴があったりします。

この本は、その全体について記述した本。
細かい部分についてのテクニックが重視されているので、
JavaScriptのすごい面とめんどくさい面の両方が浮き彫りになっています。

いろいろな側面が記述されているので、
ある読者にとって面白い部分も面白くない部分も両方あることでしょう。

まあ緩急をつけながら読んでいけばいいですね。

しかし、この本は買ってから読むまでに結構時間がたってしまっていたのですが、
そういっている間にES6が出てきたりしています。
細かいテクニックだと、言語が変化した影響がおおいので、今なら新しい本を買った穂具合いかもしれませんね。

Effective JavaScript/翔泳社
¥3,456
Amazon.co.jp
ビッグデータという大きな流れについて抽象的に書かれた本。

ビッグデータの流行は個々の具体的な、はっきりと実装できるものではないので、
大きな流れを抽象的に見ることは大切。

この本が出た時と比べても、ビッグデータはかなり普及してきてはいますが、
いまだに具体的に全く新しいものが出てきているわけではないのですから。

大きなながれを抽象的に見るしかない。

という意味では非常に参考になるのですが、
やはり抽象的すぎるので、内容の検証が難しい。

新しいものの話をしているはずなのに、
昔の事例がかなり出てきているので、なんとなく怪しい気もするのですが。
抽象的な本質を抽出して語っているのだったら間違いとも言い切れないかも。

ということで、
最先端の考察なのか、単なるほら話なのかがはっきりしない本ではありますが。
未来を語るなら仕方がない面もあるので、読んでおくべきではあるでしょうね。


ビッグデータの正体 情報の産業革命が世界のすべてを変える/講談社
¥1,944
Amazon.co.jp
今年こそは関数型言語を覚えねば、
と思ってScalaやF#について調べていましたが、
やはりどうもそれだとぬるいようですね。関数型言語的に。

ScalaやF#は実用的ではあるんでしょうが、
オブジェクト指向言語にも軸足を置きつつ関数型言語の要素を取り入れた言語に過ぎないようです。

勉強していると本質部分がうすまっていて、理解できない感触が強い。

関数型言語の要素を取り入れるだけなら、
最近は多くの言語が取り入れているわけで、
その意味で言えばScalaやF#を勉強しても五十歩百歩。

早いうちにHaskelも一緒に勉強しておく必要がありそうですねえ。
なかなかたいへん。
日本のIT業界をけん引するトップエンジニアのインタビュー集。

なのだが、あまり感銘を受けず。どうもありきたりな気が。
これを読んでオンリーワンになるのは難しい気がする。

いや、単に私がトップエンジニアになる才能がないんで、
有益な情報を読み取れないんですかねえ。

一冊通して一貫してそうなので、
エンジニアのせいじゃなくて、インタビュアーがそういうのを狙ってそうインタビューしたんだと思うんですが。

技術的な話はほぼなし。
たまにあったと思えば、オブジェクト指向は他人に理解をしてもらうための技術とかそういう程度。まあ普通の話ですね。

大体、新人のころにどういう部署に配属されたとか、
どう苦労したとか、お客さんを大事にしたとか、徹夜して頑張ったとか、そんな話。

やっぱり一般より努力家な傾向は強くあるようですね。
一般と比べてどういう思考傾向があるかはわからない。たぶん書いてないんだと思います。

これ見てオンリーワンにはなれん気がするんだがなあ。

初出は雑誌みたいですし、
パラパラとめくっていくにはいい記事なんでしょう。

一冊集めると冗長な気がする。

まあ偉くなっている人が具体的にどう仕事してきたかというトピックも、
しっておいて損になる知識ではないので、
買ったのが無駄だったとは言いませんが。

時間はかけずに読めました。

オンリーワンになるためのエンジニアプロ論 (開発の現場セレクションSpecial)/翔泳社
¥1,814
Amazon.co.jp
プログラミング言語を覚えるための本はたくさん出ています。

覚えるといっても初心者が覚えるというレベルの本ばかりではなく、
細かいところまで解説してる本は、大変難しく高度な解説まで書いてあるのですが、
プログラミング言語は覚えただけでは使いこなせません。

手足のように使いこなすためにはそれ以降の部分を知る必要がある。
そういう部分を書いた本はあまり出ていないので、
個人で研さんを積むしかないことが多いですが。

この本はそのあたりを解説した本です。
大変有益な本といえます。

ただ、技術の詳細は難しいとはいえ、唯一の答えのある世界ですが、
それ以降の部分についてはそうではありません。

賛否両論になる話がある。
いやほとんどが賛否両論になるかもしれません。

で、賛否について自分が思っていたことと違うことが書いてあったりすると、
本に対する信用がなくなり、どうも素直に読めなり、読んでいると疲れてしまう。
こういう問題が起こりがちです。

誰もが認める第一人者とかが書いていて、
内容的にも雰囲気的にもそういうものを超越して読者を納得させてしまう本もありますが。
そういう本はなかなか出せませんね。

この本は、その問題を、ある方法で解決してあります。
何人もの個性的な、アメコミ風のキャラクターの会話形式で、自説を力説させている。
これなら唯一の正解です、というわけではなくなるので、議論としての一説だとはっきりわかります。

まあ地の文で正解は書いてはあるのですが。
この形式なら、それも作者の個人的な考えなのだな、
とわかりやすくなっています。

そういう意味では非常によい本です。
ためになる経験則が、それに付随する議論も含めて知ることができる。

ただ少々読みにくいような気がするのが残念です。

娯楽性の高いキャラクターの会話は読みやすいという印象があるかもしれませんが、
それは娯楽文のプロが書いた場合の話。

著者は技術文書についてはプロですが、
娯楽文についてはそうでもない。
そのせいで少し読みにくくなっているのが残念ですね。
娯楽文のプロと組ませるなどしたほうが、よい本になったかもしれません。

C#プログラミングの冒険 [実践編] ――ただ書けるだけじゃ物足りない!!/技術評論社
¥2,894
Amazon.co.jp
スクラムという手法は技術的プラクティスを対象外とするため、
アジャイルなマネジメントの範囲のみに特化したものですが。

その範囲について、みっちり400ページ記述した本。

スクラムの思想や組織作り、具体的なやり方に至るまで、
スクラムの百科事典といえるほんとなっています。

文章もわかりやすく読みやすいものになっており、
現時点でスクラムをやるなら熟読しておくべき本といえると思います。

エッセンシャル スクラム: アジャイル開発に関わるすべての人のための完全攻略ガイド (Obje.../翔泳社
¥4,104
Amazon.co.jp
C#ではLINQが使えます。

LINQを使うことにより、
コレクションに関する処理をループを使わずに、宣言的に記述することができるようになり、
慣れると処理の記述がシンプルに書けます。

SQLを発行するのに使えるLINQ to SQLなどが注目されていますが、
つまるところコレクションに対する処理を統一的に書く方法なので、
普通のオブジェクトのコレクションに対して使うLINQ to Objectが基本となります。

また、表記法もSQLに似たクエリ構文が有名ですが、それはシンタックスシュガーです。
メソッドチェインで表記するメソッド式が本来の形で、
そちらでしか表記できない機能もたくさんあります。

と考えていくと、LINQ to Objectとはつまり、他言語でもよくある、
クロージャを利用したコレクションライブラリに過ぎないわけですが、
もちろん他言語にない機能もあり、使い始めるのは簡単だけれども、使いこなすには奥の深いものに仕上がっています。


で、この本は。
そのLINQ to Objectをマニアックに使いこなすための様々なテクニックを紹介しまくった本です。

LINQという割と多機能なライブラリの機能を紹介しまくったというだけも、
結構マニアックなものとなっていますが、
そのうえ、単純に機能を使うだけではできないことをパズルのように考えて実現する方法なども書かれています。

とはいえ。
ループを手続的に書いても、
それに慣れない人にはパズルのように思える処理を普通に書かないといけないわけで、
実際に実用的に使いこなすためには、
ある程度マニアックに突っ込んだ理解をしておくことは必要です。

ということで、マニアック的なところを強調した書き方になってはいますが、
実際にはかなり実用の役に立つ本でしょう。
C#をやるなら一度は読んでおいたほうがいいでしょう。



【省エネ対応】 C#プログラムの効率的な書き方/技術評論社
¥2,894
Amazon.co.jp
歴史上、プログラム言語に取り入れられてきたさまざまな基本概念について、解説した本。

この本で解説される基本概念というのはかなり抽象的なもので、
分岐、関数、型などを含みます。

しかし、そのようなかなり抽象的なものについての説明なのに、
解説は低レベルな実装よりのものになっています。
その言語機能のない言語であえて実装をしてみることによって、
言語機能の便利さを解説するという解説が多いです。

なぜこういう書き方をしているのかというと、
どうもこう書くのがわかりやすいから、というのが理由のようです。

いや、それわかりやすいかなあ。

今どきクラスがわからなくて、
クラスという言語機能をクラスを使わずに実装してみたらわかった、という人が、
どれだけいるのでしょうか。

クラスならまだしも、分岐までそうやって低レベルのほうから説明しようとして、、
アセンブリ言語まで持ち出すはめになっていますし。

確かに技術者には、そういう実装よりの説明がないとわからないという人はいるわけですが、
さすがに少数派ではあるのではないでしょうか。

そもそもそういう実装よりの話から理解できたと思った人が、、
それが抽象的なことを理解したことになるのか?という疑問もありますし。
もちろん理解できている人もいるでしょうが、できているつもりになっているだけの人も多い気がする。

ということで。
この本のコンセプトそのものには、どうも首をひねりたくなるのですが。
とはいえ、この本に価値がないといっているわけではありません。

抽象的なことを使いこなし、本当に上級者になる前には、
結局は実装よりな部分も深めて理解しておく必要はあります。

そういう部分は実際にいろいろな点について、深く考察しないとわかりませんし。

歴史的なことをよく調べる必要もあります。
歴史的な部分っていうのはググっても調べにくいんですよね。

そういう部分について簡潔にまとめた本は貴重です。
上級者は手元に置いておいて、たまに流し読みをして復習に、という使い方をするなら、
非常に役に立つ本だといえると思います。

逆に、ベテランが若い人に、こういう本を読んで本質を理解するべきとか言って渡すのは、
典型的に間違った教育方法なので辞めたほうがいいと思います。
ベテランは若い人にそういう学び方をしてほしくなるものですが。たぶんそれは間違い。

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS p.../技術評論社
¥2,668
Amazon.co.jp
アジャイルに使える「ふりかえり」のテクニックを数十個ほど解説した本。

ふりかえりなんてものは、感覚的にやってもできないものではありませんが、
やはりノウハウを知っているのと知らないのでは効果に大きな差があるものでしょう。

そのノウハウを数十個、実用的な形でまとめてあります。
振り返りミーティングで使える技法、
たとえば有名どころではブレインストーミングなんかがありますが、
そのやり方を、どういう手順で何に気をつけてどのくらいの時間やるか、
がまとめてあります。

いやもちろん、この本に書いてあることを金科玉条として覚えれば済むというわけではなく、
自分たちの環境に合わせた試行錯誤は必要になるのでしょうけれど。

とはいえ、ある程度固まった方法をまず覚えてやってみてからという手順のほうがかなり手間は省け、挫折する可能性も下がるでしょう。

162ページの簡潔な本ですし、
何度も読み返すマニュアルとして持っておくとよい本だと思います。


アジャイルレトロスペクティブズ 強いチームを育てる「ふりかえり」の手引き/オーム社
¥2,592
Amazon.co.jp
プログラム言語の基本的な使い方を覚えることと、
プログラム言語を本当につかいこなすことは違います。

この本は、Rubyを本当に使いこなせるようになるために、
必要なことを書いた本です。

必要なことのすべてを書いた本ではないでしょう。
すべてを書くためには、Rubyのライブラリの設計思想をすべて書く必要がありますから。
それには明らかに量が足りません。

しかし、重要な点だけでも覚えることができれば、
あとは類推して覚えていくことができます。

また重要な点はよくつかわれるので、それだけ覚えるだけでもかなり違うでしょう。

ということで。
Rubyを使いこなすための最初の一歩として、
この本は読んでおくべきでしょう。


Effective Ruby/翔泳社
¥3,456
Amazon.co.jp