2008年10月2日木曜日

Books I read during my summer vacation

夏休みだったのですが、2 冊、大変面白い本に出会いました。
その 2 冊が、 "Pro JavaScript Design Patterns (Recipes: a Problem-Solution Ap)"、 それから、"My Job Went to India: And All I Got Was This Lousy Book (Pragmatic Programmers)" です。

Pro JavaScript Design Patterns は、Yahoo や Google のフロントエンジニアが著した本です。

モバイルでも利用できることもあり、 JavaScript の利用拡大は近年ますます加速しています。(Google がその性能をより向上させるため、Google Chrome では JavaScript の VM を新規開発した、というのは一部の人にとっては大きなニュースでした。)

今や JavaScript を利用した、インタラクティブなユーザインターフェースの実現というのは、良いサイトには当たり前のものとなって、ビッグビジネスを展開しているサイトほど、JavaScript の利用をシビアに考え、様々なテクニックを駆使しながら、ユーザの操作性を向上させています。平均的なサイトと技術の差は拡大していく一方です。

この原因のひとつとして、言語としては JavaScript は未成熟な故、様々な書き方ができるため、学習しづらい、というものがあります。(トライアンドエラーで独自にノウハウを貯めるしかないんですよね。。)

本書では、 JavaScript (prototype は使えるけれども) について、効率の良くソフトウェアデザインをするためのデザインパターン (定石のようなもの) を書き出したものです。

もともと僕は本格的に Design Pattern の勉強をしたことがなかったのですが、本書では、Design Pattern を丁寧に解説し、また豊富な例を掲載してくれていて、大変勉強になりました。
僕のオススメ JavaScript 本中で、"Pro Javascript Techniques (Pro)" と並び、Top 2 入りです。

Private 変数の作り方、クロージャを利用したオブジェクト指向の実現、プロトタイプベースの継承、インターフェースの使い方、などなどなど。読みながら、"Wow! How cool!" って何回も思いました。



それから My Job Went to India もタイムリーだった。

経済が下降し、職はインドなどのオフショアへ移行していく。
さらにエンジニアにとっては、技術は現在進行形で変化していくものです。
オフショアに職が移行し、ほぼ仕事を失いつつあるエンジニアは、この全く予測のできないマーケットの中で、如何に生きるべきか、が書いてあります。

この本は、以下の 6 セクションから成り立っています。
  • Choosing Your Market
  • Investing in Your Product
  • Executing
  • Marketing... Not Just for Suits
  • Maintaining Your Edge
  • If You Can't Beat 'Em
これらのテーマについて、エンジニアが持つべきマインドセットを述べてくれています。
さて、著者が、良く生きたいと願うエンジニアに対し、この本の中で、伝えようとしたことは、恐らく以下の 3 つです。
  • 良い選択次第である。
    • フォーカスすべきテクノロジーと、マスターすべきビジネスドメインを決定すること。その上で自分の時間とエネルギーをその正しい(と思われる)エリアに集中させること。
  • スキル次第である。
    • 低コストのオフショアの技術者や、高コストの自国の技術者と競い合っていくために、自分のスキルを高めていくための、体系だった計画を立てていく必要があります。
    • またオフショアでコモデイティ化した技術でなく、高い需要ののある技術を学んでいく方法を学ぶ必要があります。
  • マーケティング次第である。
    • あらゆる製品や、サービス同様、もし誰も自分のことを知らなければ、誰も自分を買わない。どのようにして自分を会社に、その業界に売り込んでいくべきかを学ぶ必要があります。
僕は最近、
  • やりたいことは他にもあるけれど、エンジニアリングは技術の終着がない点でキリがない。(だから面白いのだけれども)
  • 同僚にも外国人が何名かジョインして、英語でコミュニケーションをする機会も増えてきて、オフショア、という言葉を意識するようになった
という理由もあり、時間を能動的に振り回しながら、より沢山のことを学び、アウトプットしてくためには、どうしたもんか、と考えていたこともあり参考になりました。
もはや座右の書ですな。

ちなみに、上記 2 冊は洋書なのですが、洋書だと、本の内容が仮に駄目でも、最悪英語の勉強にはなる点で、時間投資しやすいという利点がありますね。また、日本では書籍化されていない情報も、洋書なら手に入ることが多いのも利点です。
今回ここで挙げた 2 冊は、内容も素晴しく、かつ英語の勉強にもなる点で、特した気分です。

僕の本はもはや赤線だらけで、とても人に貸せる代物ではないですが、興味が沸いた方は、購入して読んでみてください。