一週間の休暇があったので、
rubyのプログラムを組む練習をしようとしましたが、
結局技術書を読む以外の勉強はあまり進みませんでしたね。

まあ実家に帰ったらパソコン環境はよくないというのもありますけどね。

十日で六冊というとまあ、
努力家の人ならもっと読めたというのは間違いないですが、
自分をほめておいたほうがいいですかねえ。

とりあえず気を取り直してもうちょっと進めないといけないですな。
Windows8は、単なるOSのバージョンアップではありません。
APIやUIの根本的な設計も変わっています。
7互換アプリを作るなら今まで通りですが、
Windows8らしいアプリを作るなら、新しい設計について知らないといけません。

タブレットPCはMicrosoftが昔から出していたのですが、
全然普及しませんでした。
普及したのはiPadが出てからです。

タブレットPCとデスクトップPCは中身は似ているので、
そのままOSを移植したくなります。
が、それでは普及しなかったのです。
スティーブ・ジョブズがマルチタッチを取り入れてタブレットらしいUIを作って、
それで初めて普及しました。

さて、MicrosoftはWindows8を出し、iPadを追いかけねばなりません。
しかし、Micorosoftはスティーブ・ジョブズに頼るわけにはいきませんし、
かといってちょっと見本を出すくらいでは、開発者がこれまでのやり方を変えてくれるとは思えません。

そこで多大な費用を使ってよいデザインとは何かを研究し、
それをマニュアルにまとめ、
さらにはアプリ配布の審査で、それをある程度強要することまではじめました。

Windows8はデスクトップPCにも対応しなくてはいけませんから、
タブレットPCにもデスクトップPCにも向いているアプリが作れます。

そのマニュアルについていて解説したのがこの本です。

また、その決まりを使ってよいアプリを設計するノウハウや、
実際に開発ツールを使ってそれを実現する方法も書いてあります。

Windows8に注目しなくても、
これからのアプリを作るには必要不可欠の知識と言っていいことがうまくまとまっています。

Windows8 UI/UXデザイン入門/秀和システム
¥2,310
Amazon.co.jp
「人月の神話」「Joel on Software」などのような、
含蓄深いプログラム関連エッセイ集。

著者の経歴はあまり書かれていないのですが。
起業もしているプログラマー、という立ち位置なのですかね。

しがらみとかにあまり邪魔されずに、
きちんと社会に役立てるために、
思う存分プログラム能力を生かしている人のようです。

そして若い人のようですね。
プログラムを初めて十数年とのことです。

そういう著者が書いたプログラム関連のエッセイが集めてある本になっているわけですが。
そういう人にしか書けない良さがきっちりと出ています。

旧来の方法があり、
その矛盾を何とかしながら、
やっと新しい方法論を確立していく過程、
ではなく。

そんなしがらみはなく、
新しい方法があることを前提に、
一からくみ上げた方法論を、
語るエッセイ集です。

また、お客様を無視するわけでもなく、
お客様のことしか考えないわけでもなく、
自社や顧客という人間の集団の中で、
プログラマーが何をできるかを、
追求した結果が書いてあります。

現実にはこれだけ純粋かつ現実的に、
新しい方法論を身につける機会に恵まれる人はめったにいないかもしれません。

しかし、書籍で学ぶなら。
あんまり現実的なしがらみとかを交えた説明をしていても、
なかなか本質をつかむことは難しくなります。

新しめの方法論を普通に使った上でのエッセイというのは、
現代の開発の理想や本質をつかむために、
かなり役に立つといってよいでしょう。

ぜひ読むべき本です。


Developer’s Code 本物のプログラマがしていること/Ka Wai Cheung
¥1,470
Amazon.co.jp
とりあえず、
題名が紛らわしいですね。

内容は完全にPythonの本です。

ではなぜ、「初めてのコンピュータサイエンス」なんて名前になっているかというと、
これは情報学科以外の学者や学生のための本みたいですね。

そういう人たちがプログラムで何かをしようと思ったときに、
新たに身に着けるスキルというと最近Pythonが大変有力らしいですし、
また、そういう人たちにとってその学習は「コンピュータサイエンス」の学習ということになるのでしょう。

けどまあ、「コンピュータサイエンス」を勉強したいと思う人は科学者だけじゃないんですけどね。
プログラマーもそうなんですが。
というか、オライリーから本を出すのだから、手に取るのはプログラマーが多いと思うのですが。
そういう人は、なんでこれがコンピューターサイエンス?と思うことになります。

まあタイトルはそういうことなのですが。
Pythonの本としてみると、手堅くまとまっていますね。
まあこの本を見てPythonの本だと思って買う人がどれだけいるかが問題ですが。

実用と理念をバランスよく説明しつつ、
Pythonの機能を一通り追いかけています。
自動テストについて最初のほうに書いてあったりするあたり、
きちんと体系立てて教育を考えていますね。 

内容は良い本だと思います。

初めてのコンピュータサイエンス/オライリージャパン
¥2,520
Amazon.co.jp
Googleで未来を作っているマネージャーの、
ブログ本。

実際の仕事で未来を作っている人の思想や言動は、
やはり小気味いいものです。
分析も私が評価できるようなものではありませんが、鋭いように思えます。
見習わねば。

多少、Google寄りのところがあるようにも思えますが、
Googleの方針は比較的公正に近い方向を向いているので、
そんなには気になりません。

また、震災のボランティアでも、ITを活用して活躍してたらしく、
それについての話も載っています。
そういうのも、未来を作るには大事なものですね。

いや、震災の復興に実際役に立ったところがではなく、
それを始めるエネルギーが、ということですが。

役に立ったかどうかは本からは読み取れませんが、
エネルギーを感じることはできました。

挑まなければ、得られない Nothing ventured, nothing gained. .../インプレスジャパン
¥1,680
Amazon.co.jp
○○駆動開発というと、
テスト駆動開発やらビヘイビア駆動開発やらが有名なので、
アジャイルっぽい方法論の本かと思って買いましたが、
がちがちのウォーターフォール系の本。

最近アジャイル系の本を好んで買っている私としては、少し残念でした。

中身を見ても、著者はアジャイルにはかなり思うところがあるらしく、
いろいろとアジャイル系の悪口が書いてあります。

しかし今一つ批判が的外れな気も。

YAGNIだから例外系は考えなくていいって、
だれか言ってましたっけ?
まあアジャイルがすっかり大衆に膾炙しているらしいアメリカでは、
そういう安易な言説も広まっているのかもしれませんが。

とはいえ、アジャイルの考え方も結構取り入れています。
TDDなんかは完全に取り入れてしまっていますね。

とはいえ、スパイラルを前提としてしまったら、
設計時にどれだけ面倒な作業をしても、
実装時になってから修正するよりはまし、
という設計重視のための大前提と矛盾しないんですかね。

とかまあ、ウォーターフォールとアジャイルの宗教戦争についての言及はこのくらいにしておくと。
大変良い本といえます。

UMLを駆使して、
要求されるユースケースから、実際のコードまで、
体系化された流れるような手順を一つ一つこなしていくだけで、
着実に変換する方法が示されています。

アジャイルだとこの辺は、
シンプルな方法論で臨機応変に行うようなのですが。
臨機応変というのは勘と経験がないと非常に難しかったり、
勘と経験があるつもりでも自己流だったりしがちです。

きちんと体系化された基本を、
しっかり学んでおくことは、アジャイルをやるためにも非常に有用でしょう。

臨機応変を実践するためにこそ、
基本をしっかり理解することが必要となってきます。

一度この方法論でアプリケーションを組む体験をしておくべきですね。
本当は一度では足りず、十度くらい必要なのかもしれませんが。

もちろんアジャイルではなくウォーターフォールをやるなら、
この本はさらに読んでおくべきですね。

本当に妥協なく体系化された手順が書いてあります。
これが本当のウォーターフォールというなら、今までやってきたのはなんだったんだ、と言いたくなりました。

あまり詳しくは書いてありませんが、
スパイラルモデルにも対応できる方法だそうなので、
その辺も試してみたいですね。

ユースケース駆動開発実践ガイド (OOP Foundations)/翔泳社
¥4,179
Amazon.co.jp
ソフトウェア開発の方法は、
日進月歩で進化していきます。

そういうことを商売にして生きていくためには、
日々の業務の方法の変革は欠かせません。

とはいえ、変革というのは簡単なことではありません。

そもそも確実な変革なんてものはないわけですし。
やったら何割かは必ず失敗するでしょう。

方向性が正しかったとしても、
人や組織の抵抗は確実にあります。
なかなか難しいものですね。

この本は、そういう変革のためのノウハウを、
じっくりしっかり多方面から分析して解説したものです。

この本読んだからと言ってできるというものでもありませんが。
先人のノウハウは、役に立つものと思われます。

ソフトウェア開発を変革する -もっと俊敏になるために-/共立出版
¥3,465
Amazon.co.jp
ほかのパーフェクトシリーズと比較して、
ちょっとパーフェクトさに欠けるように感じたのは、
私の読み方のせいなのかこの本のせいなのか、それともJavaのせいなのか。

基本的にJavaはあまり知らず、勉強と思ってこの本を読んだので、
私のせいという可能性も高いですが、でも同じように読んだパーフェクトPHPはパーフェクトに見えたのですよねえ。

前半部分、Javaの文法について説明してる部分については、
パーフェクトなのだと思います。

型システムを持つオブジェクト指向の思想を基本理念として、
それの実践を硬派に実現したJavaという言語を、
しっかりと説明しています。

ただ勢い余って、ちょっと動的言語の悪口を言っているのが引っ掛かりました。
別にRubyを採用している人は後で苦労すること予想できずにやっているわけではなかろう。
苦労せずにできる方法を確立してやっているので。
まあそれはさておき。

Javaは最近の動的言語のような便利な機能は少ないですが、
すべてが型システムとオブジェクト指向という思想に基づいていて、
一貫した分かりやすさを持っているようですね。

ただそのあとの実践部分がいまひとつな感じがありました。
JSPの説明は実践になるという点ではよいのですが、
Javaのせっかくの型システムがあまり生きていないところのようです。

完全なJavaを説明した後で、これを持ってくるのは今一つな感がありました。
よく使われているので、選択そのものは仕方ないんでしょうけどね。

その後のSwingの説明も、いいんですが、
あまりJavaが生きるようなところでもないですよねえ。
C#なんかやってきた私としては、ちょっと古臭いという感想を得てしまいます。

本の出版日を見てみると、JavaFXなんかは出た後なのですよね。
そっちにできなかったのか。
まあ実用という点を考えると無理だったのかもしれませんが。

実践例としては、もうちょっとJavaのオブジェクト指向が生きるようなところのほうが全体がきれいにまとまったような気がします。

まあこれは、得意分野が固まらないうちから大ヒットし、
いきなり最メジャー言語になってしまったJavaの生み出す矛盾なのかもしれませんが。

ということでパーフェクトとまでは言えませんが。
かなり良い本なのは確かだと思います。

読んでみるべき本ですね。


パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)/技術評論社
¥3,780
Amazon.co.jp
タイトルにちょっと語弊がありますかね。
単なるPowerPointの使い方の本ではなく、
PowerPointで「硬派な資料」を作る方法が書いてあります。

「硬派な資料」というのは、内部の会議向けなどの資料。

大人数相手のプレゼン資料と同じように作っている人が多いですが、
それでは伝わりやすいものにはなりません。
そこでこの本では「硬派な資料」という、
派手な効果をあまり使わず情報をわかりやすく詰め込んだ資料を提唱し、
それをPowerPointで書くための方法を説明してあります。

そういう、技術者などの会議に最適な資料は、
ExcelでもWordでもPowerPointでも書けますが、
どのツールも本来別の用途のためのものであるため、
機能的には全く生かせません。

ツールを全く生かせてなくても書けるからいいや、
というのではエンジニア失格ですから、
最適なツールを探したいものですが、
会議に使う資料に向いたツールはどうも見当たらないのですよね。

しかし考えてみると、
Excelは計算の入った表を書くのに向いている、
Wordは論文のような文章を書くのに向いている、
のに対し、PowerPointは人に見せる資料を使うのに向いているわけで。

ExcelやWordがその多彩な機能のほとんどが邪魔にしかならないのに比べ、
PowerPointの機能は結構使えるのですね。
一部デフォルトで設定されている機能や、派手で使いたくなる機能を、
使わなければいいだけです。

ということで。
一部デフォルトの機能を切る設定や、
その他の機能をどうやって使えば「硬派な資料」が作れるか、
さらには会議を経由しながら硬派な資料をどうもんでいくか、
まで具体的で実践的な方法が、丁寧に記述されています。

また、個々の方法の説明の中は、
PowerPointのハッキングとも呼べるようなものが混ざっています。
エンジニアだったら、ツールは隅から隅まで把握し、
簡単に思いつかないような細部同士を組み合わせ、
使いこなすものですよね。

しかしPowerPointはなめられているのか、あまりそこまで使いこなしている人は見かけません。
Excelならまだしもたまに見かけるのですが。

そういうのはハッキングといいますね。クラッキングと同義語じゃないほうのハッキングです。

PowerPointのそういう使い方も、一部紹介してあります。
コネクタを規定位置以外につなぐ方法なんか、まさにハッキングですね。
あんな方法があったとは。

そういう方法は、初心者でも簡単に使える方法ではありませんから、
バージョンが変わると使えなくなったりもします。
使えなくはならないにしても、使いにくくなったり、ほかの方法のほうが適切になることは日常茶飯事です。
この本では2007までは対応しているようですから、
2010だとすでに、この本に書いてある方法がそのまま最適とは限りません。

でもそういうのはバージョンが変わるたびに調査して当然ですよね。
エンジニアですから。

ということで。
かなり苦労と向けのPowerPoint入門講座です。

なかなかおすすめですね。

エンジニアのためのPowerPoint再入門講座 伝えたいことが確実に届く“硬派な資料”の作り方/翔泳社
¥2,310
Amazon.co.jp