Home > Tags >

プログラマーのジレンマ 夢と現実の狭間

プログラマーのジレンマ 夢と現実の狭間 プログラマーのジレンマ 夢と現実の狭間
伊豆原 弓

日経BP社 2009-05-21
売り上げランキング : 29765
おすすめ平均

Amazonで詳しく見る by G-Tools

読み終わってから結構日が立ってしまったが、なかなかよい本だと思ったので紹介しておく。

本書は、「Chandler」というOSSプロジェクトを1人のジャーナリストが3年間に渡って追い続けたドキュメンタリーだ。Chandlerプロジェクトは、優秀なメンバー(名前や、名前がわからなくとも参加したプロジェクト、製品なら大抵の人が知ってるであろう人々)、潤沢な資金、OSSの為リリース日を自分達で調整できるなど開発者からしたら理想とも言える環境で開発が進められた。しかし、結果としてプロジェクトは迷走に迷走を重ね、本書の中でバージョン1.0がリリースされることはなかった。

正直、あまりにプロジェクトが進まないので中盤あたりから少しうんざりしていた。本書中盤でまともな製品が出来ておらず、リリースも遅れに遅れて、「おい、おまえらいい加減にしろよ」と少なからず思った。その停滞感が文章でもきっちり表現されていてなかなかツラかった。

それでも、私はこの本をおすすめする。プロジェクトの失敗した話というのはあまりプロジェクト外に出ることは少ない。出たとしても局所的な失敗談や、技術的な話題が多いように思う。そうした点でこの本はプロジェクトのほとんどを曝けだしている。さらにその時、彼ら(彼女ら)がなにを考えなにをしようとしたのかが読める本書は、 色々と考えさせられる部分が多い。明確な答えを得られるような本ではないが、ソフトウェア開発について考えるきっかけとしてはかなり良い本だ。

ソフトウェアは難しい
        - ドナルド・クヌース 「The Art of Computer Programming」

本書の冒頭でも引用されているが、Chandlerプロジェクトの失敗の数々はこの一言に集約される気がする。少々身も蓋もないかもしれないが。個人的には開発者だけでなく、開発者達の上に立つ上司や経営者にも本書を読んでほしい。「ソフトウェアは難しい」ということが少しはわかるだろう。

ところで、このChandler プロジェクトが現在も開発が続いてるようで無事バージョン1.0が公開されたようだ。残念ながら私のSnow Leopardでは動作させることが出来なかったので試せなかったのだが、もし興味がある人は以下のURLが参考になるだろう。

Chandler Project
MOONGIFT: » ようやく出てきたカレンダーアプリケーション「Chandler」:オープンソースを毎日紹介
GTD を意識したカレンダー・タスク管理アプリ:Chandler | Lifehacking.jp

最近読んだ数学に関連する本

ぼくには数字が風景に見える

ぼくには数字が風景に見える
ぼくには数字が風景に見える 古屋 美登里

講談社 2007-06-13
売り上げランキング : 20117

おすすめ平均 star
star新鮮な感動を感じました
star天才の頭の中を覗ける本
star異常な天才の半生記

Amazonで詳しく見る by G-Tools

割と最近(と言ってもここ数ヶ月の話だが)に「レインマン」のDVDを見たのでその繋りで積読状態になっていたのを読み切ってみた。レインマン繋りというのは、レインマンの主人公と同じくこの本の著者ダニエルもサヴァン症候群(アスペルガー症候群)であるという点。

注意: サヴァン症候群とアスペルガー症候群は厳密には違う。(サヴァン症候群 アスペルガー症候群 Wikipediaより)

文章は淡々としており、人によっては退屈するかもしれないが、個人的には丁寧で好感が持てる文章だった。ユーモアらしいユーモアもなく、生真面目な文章でどことなく本人の人柄が伺える。作中では、ダニエルの全体より細かい部分への拘りや言語に対する興味などが伺えるが、そのような性格がこのような文章を作りあげるのだろう。

タイトル通り、ダニエルは数字を風景、つまりイメージとして感じることができる。それを共感覚と言うらしい。本の中では数字がイメージとしてみえるということを丁寧に説明されており、正直イメージとして見えることが羨ましく思えた。僕自身、数字に対して漠然としたイメージはあるが、ダニエルのそれとは比較にもならない。

この本は、数字に関する話だけではなくダニエルの半生記としての側面もある。と言うよりかは、半生記の中に数字の話もでてくると言った方が正しいかもしれない。

その中には、当時アスペルガー症候群がまだあまり認知されていないにもかかわらず、素晴しい愛を持って育ててくれた両親や、アスペルガー症候群でありながらも一歩一歩前に進んでいくダニエルの姿も書かれている。特に「レインマン」のモデルにもなったキム・ピークと会う場面は感動的であった。

全体的に数学的な話や共感覚についてはあまり深く掘り下げておらず、ドキュメンタリーに近い内容になっているので、もし興味がある人はその点には注意した方がいいかもしれない。

数学に感動する頭をつくる

数学に感動する頭をつくる
数学に感動する頭をつくる
ディスカヴァー・トゥエンティワン 2004-06-30
売り上げランキング : 97118

おすすめ平均 star
star数学ができる人とできない人は何が違うのかがわかる
star幼少期の数的能力育成の方向性を知るために
star子供の数学的能力をどうやって伸ばすか。

Amazonで詳しく見る by G-Tools

今年の春先ぐらいからだったと思うが、id:snow-bell(以下、yukky)が中心となって勉強会を不定期に行なっており、nishioさん、Misho、kuboon、cafistar等が参加している。

以前、kuboonがyukkyに微積を説明してるところを見てニヤニヤしてたが、僕自身そこまで微積をちゃんと理解しているわけではない。公式を覚えれば問題を解くことはできるだろうが、「数学の楽しさ」を感じることは出来ていない。「問題を解いた」という達成感はあるが、数学の楽しさはそこではない気がする。簡単に言うと博士の愛した数式に登場する博士の様に数学と接してみたいのだ。そんなときにたまたまこの本を見つけた。

本の中で、「数感」という単語が登場する。「音感」に合わせて著者が作った造語だが、一般に言う絶対音感や相対音感といった音感とは少々異なる。まぁそれは些細なことなので気にしなくてもよい。著者は本の中でこう述べている。

若い頃から、音楽を聞いている。なんとなく耳慣れている。もちろん深い意味でわかってなどいない。だが、なんとなく耳に心地良いぐらいの気はするようになってくる。そのうちにある日突然目覚める。

これはクラシックの良さがわかるまでの過程だが、数学もこれと同じということらしい。

はじめはわからないが、わからないなりに修練を積んでいく。なんとなく少しは問題が解けるようになる。そのうちにある日突然目覚めがやってくる。ある問題に触れる。あるいは、ある定理を深く理解する。その途端に、突然意味がかわる。数学は美しいものだ、と多くの人を嘆息させたあの魅力が、突然目の前に現われるのだ。

つまり、クラシックの良さを理解するには音楽に触れ音感を鍛える必要があるが、数学もそれと同じで数学に触れ数感を鍛える必要があると著者は言いたいらしい。では、具体的にどう鍛えればよいのかと言うのも本の中で解説されている。その中でも、特に僕が覚えているのは「イメージ力」と「構造化して記憶する」ということだった(詳細は本を読んでください)

著者は塾に勤めているというのもあってか、子を持つ親へのメッセージといった側面もこの本にはあるように思える。なので、子をもつ親にもオススメできる本となっている。出来れば子供が小学校入る前に読むといいだろう。

もちろん、僕自身得るものがあったので数学に苦手意識を持つ人や、現在学校で数学を勉強しなければならない、中学・高校・大学受験を控えているという人にもオススメだ。

「プログラミングの基礎」を読みはじめた

結構前のきしださんのエントリ(いまSICPを読むのは時間の無駄)に触発されて購入した「プログラミングの基礎」を読み始めました。実はこのエントリから結構すぐに購入したんだけど、id:snow-bellについこないだまで貸してたので今日からスタート。

とりあえず4章まで読んだけど、確かに読みやすい。SICPみたいに堅苦しい日本語ではないので、まぁよっぽど活字ダメですっていう人じゃなければ大丈夫そう。

個人的にいいなぁと思ったのはテストファーストだった点。

4.6の「関数定義に対するデザインレシピ」では実際に関数のコードを書くまえに、それをテストするプログラムを書くよう指示している。これはとても大事なことだと思う。この本は確かプログラム初心者も対象なので、はやいうちにテストを書く癖がつくのは大変素晴らしい。

サンプルのコードはOCamlだけど、今のところは型の制限がきついなーっていう印象ぐらいで特になんとも。まぁまだ全然書いてないけど。普段Ruby使ってるからか、整数と実数も区別しなきゃいけないのはちょっとめんどう。3 * 1.3でもエラーでるもんなぁ。まぁこの辺のありがたみも読み進めるうちにわかるかもしれない。

本自体は結構薄いし、結構はやく読み終わりそう。読み終わったらまたエントリを書く。

プログラミングの基礎 (Computer Science Library)
プログラミングの基礎 (Computer Science Library) 浅井 健一

サイエンス社 2007-03
売り上げランキング : 96439

おすすめ平均 star
star関数プログラミングの基礎

Amazonで詳しく見る by G-Tools

アジャイルな見積りと計画づくり

献本して頂いたにも関わらず、書評が大部遅くなってしまいました。角谷さん、ごめんなさい。

アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ 安井 力 角谷 信太郎

毎日コミュニケーションズ 2009-01-29
売り上げランキング : 8925

おすすめ平均 star
star「正直になること」がアジャイル成功の秘訣
starソフトウェアの見積りは本来こうでないか?
star自信を持って見積もりを出すための手引き書

Amazonで詳しく見る by G-Tools

さすがに全てのアジャイル本に目を通しているわけではないけれど、最近までに出版されているアジャイル本の中でも断トツの重要度な本だと思う。これを読まずしてアジャイルとか言っちゃダメだ。

まず、出版から3年が経過した現在、本書の原著は北英圏のアジャイルソフトウェア開発コミュニティで「必読の一冊」という評価を確立していることです。

すでに北英圏から3年遅れっていうところも衝撃だけど、それよりも日本に持ってきてくれてありがとう!という感謝の念が強い。安井さん、角谷さん、本当にありがとうございます。

この本は23章のケーススタディがよくできている。個人的にこう言ったケーススタディが好きなので、まず最初にここから読んだ。それだけで十分にこの本が素晴しいことがわかったし、冒頭から読み始めた時もケーススタディが具体例としてイメージできたので理解しやすかった。

ケーススタディもそうだが、この本は非常に例え話が豊富だ。この本を初めて読んだときは、ストーリーポイントをはじめ見知らぬ概念が多かった。それらの理解を助けるのに、例え話は非常に効果的だった。

このボリュームの内容をここで全部書くことは厳しそうだが、1つ思ったのは「正直」の重要さだった。正確な見積もりができないことを認める。顧客やプロダクトオーナー(もちろん他のメンバーも)に細かく報告する。これらは全て「正直」にならないといけない。この「アジャイルな見積りと計画づくり」も非常に正直な本だった。

先日、うちの会社でストーリーボイントとベロシティの説明とプランニングポーカーを数人で実施してみた。好評で、「じゃあどう導入していこうか」という話にはなりつつある。問題なのはうちは少人数で小さい案件を回すことが多いので、例えば仮に僕がメンター的な役割をしようにも、僕がAという案件をやっていて、ほかの人がCだったりBだったりすると中々面倒を見れない。そのあたりを今どう解消しようか考えている。

個人的に、この本は手元に置いておきたいのがだ、会社のメンバー全員にも読んで欲しいと思っている。できれば全員に買って欲しいのだが(本の売上げ的にも)、なかなかそうはいかなそうなので、献本してもらった本を会社に置いて、もう1冊新しいものを自分で買おうかと思っている。

あと、この本はアジャイル入門本ではないので、この本と一緒に「Head Firstソフトウェア開発」と「アート・オブ・アジャイルデベロップメント」も読んでおけばいいんじゃなかろうか。まぁ僕はまだどっちも読み途中ですけどね・・・

最後にもう一度言います。この本を読まずしてアジャイルとか言っちゃダメ!絶対!

Head Firstソフトウェア開発 ―頭とからだで覚えるソフトウェア開発の基本
Head Firstソフトウェア開発 ―頭とからだで覚えるソフトウェア開発の基本 木下 哲也 (監訳) 有限会社 福龍興業

オライリージャパン 2009-01-22
売り上げランキング : 165325

Amazonで詳しく見る by G-Tools

アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング
アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング 木下 史彦(監訳) 平鍋 健児(監訳) 笹井 崇司

オライリージャパン 2009-02-18
売り上げランキング : 28100

おすすめ平均 star
star現時点で最良のアジャイル解説本
starアジャイルなやり方の具体的なガイド
starアジャイルのための練習曲集

Amazonで詳しく見る by G-Tools

Re:Ruby初心者の2冊目はなに?

Ruby初心者の2冊目はなに?
Rubyの「最初の二冊目」は何? に答えてみる。 – どんなジレンマ

id:hrkt0115311さんに名前を出してもらったことだし、簡単に紹介しておこうと思う。crossreviewに書いてない本も多いしね。と言うかしょっぱなからそうなんだけど。

Rubyレシピブック第二版

Rubyレシピブック第二版

id:hrkt0115311さんもすすめてたけど、たのしいRubyを読んだのならこれもオススメ。大体初心者が思うあれがしたい、これがしたいはここを参照すれば載ってると思う。ただ、なにができるかは書いてあるけど、それらで何かを作る方法は書いてないので作りたいものが曖昧だとこれ1冊だとどうしたらいいかわからなくなるかも。

Rubyで作る奇妙なプログラミング言語

Rubyで作る奇妙なプログラミング言語

そこでオススメするのがこの「Rubyで作る奇妙なプログラミング言語」。この本1冊あればRubyで言語を実装できるようになる。もちろんタイトルにある通り「奇妙なプログラミング言語」をだけど。もしBrainfuckと言った奇妙な言語を触ったこともない、聞いたこともないと言うのならそれらを知る意味でもこの本をオススメしておく。Brainfuck楽しいよ、Brainfuck。

初めてのRuby

初めてのRuby

これまたid:hrkt0115311-22さんと被ってるけど、オススメなのだから仕方がない。まぁ初心者の二冊目としては難しい部類かもしれないが、ある程度Rubyに慣れてきたら読んでみるといいと思う。

ちなみにRubyにも当然マニュアルが存在するが、初心者が読むには正直内容が難しい。この本を読めばマニュアルが読めるようになると著者のyuguiさんも言っていた記憶があるので、マニュアルの前にこちらを読むことをオススメする。

追記: るりま(Rubyリファレンスマニュアル)の知名度が低いそうなのでリンクを載せておく。まぁメンテされてるのはこっちのはずだから本来はこっちを載せるべきだったのかもしれない。thx Sixeight。
るりまWiki

恋するプログラム

恋するプログラム

yharaさんの「Rubyで作る奇妙なプログラミング言語」と同様にこちらも何かを作ることを題材としている。内容も人工無脳を作るというものなのでプログラマなら少なからず心魅かれると思う。まぁちょっと内容が古いかもしれないけど。

だがしかし。これ多分もう売ってないと思う。残念至極。ちょっと前にこの本の出版に関わった人から「復活させたいんだけどねー」と聞いた記憶があるが今のところ特に予定はなさそうだ。

Enjoy Programming!!

まぁ大体こんなものか。一応Railsの本ははずしたけど、Webアプリ作りたいなら苦労を知らないとフレームワークの仕組みがわからないとか変に考えずとりあえずやってみればいいと思う。仕組みは後からでもいくらでも学べるし。

とは言うものの、プログラミング自体が初心者のようだからWebプログラミングみたいに言語以外の知識が必要となるものを最初にやろうとすると混乱しがちなのでとりあえずはRubyを中心に学べばいいと思う。Webアプリを作る以外にもプログラミングを楽しむ方法はいくらでもあるし。

Enjoy Programming!!

アジャイルプラクティス – 達人プログラマに学ぶ現場開発者の習慣

木下さん角谷さんが監訳したアジャイル本。なんとか年内に読み終わった。このエントリーを書くのは2008年になってしまったけど。

アジャイルな開発者もそうでない開発者も

今までアジャイルな開発とは無縁だった人達も、既にアジャイルな開発手法を採用している人達、どちらの人達にも得るものがある本だと思う。前者の人達にはこれからの道標として、後者の人達には振り返りとして。ちなみに私は前者。

そもそも本書での「アジャイル」の定義は以下のようになっている。

開発がアジャイルであるということは、協調性を重んじる環境で、フィードバックに基づいた調整を行ない続けることである

つまり、開発手法がXPとかScrumである必要はないし、極端な話、組織とかすら関係なく開発者が自分1人だけでもアジャイルな開発は行なえる。なぜなら、未来の自分に対してフィードバックをすればいい話だから。アジャイルプラクティスにも1人で実践できるプラクティスがいくつか載っている。

悪魔の囁き、天使の助言

各プラクティスの構成は、悪魔の囁きに打ち勝つべく天使の助言を授かるという形ですすめられている。まさに表紙の通り悪魔 VS 天使の構図なわけだ。悪魔の囁きはちょっと表現がオーバーな気もするけど、そこが悪魔っぽいと言えば確かに悪魔っぽい。仮に悪魔の囁きにピンとこなかったとしても、天使の助言は聞いとくべきだし、なんなら悪魔の囁きを自分なりに変えてみるのもいいと思う。

まずは1つのプラクティスから

いくら天使の助言を聞いたところで、それを習慣にしなければ意味がない。アジャイルプラクティスには全部で45のプラクティスが掲載されているが、流石に一度に全部実践しようと思ってもまず無理だ。とりあえず自分にとって重要なプラクティスを1つ選んで、それが習慣づいたところで次のプラクティスに進むのがいいと思う。(プラクティスによっては複数同時に実践できるかもしれない)

この辺に関しては「第9章 終章:アジャイルへ踏み出す」を読んでもらえればいいと思う。アジャイルへ踏み出すと言うタイトルからもわかるように、この本を読んで終わりじゃいけない。むしろ読み終わってからが本番なのだろう。

アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 Venkat Subramaniam Andy Hunt 木下 史彦

オーム社 2007-12-22
売り上げランキング : 16000

おすすめ平均 star
star迷える開発者への最初の一歩となる本

Amazonで詳しく見る by G-Tools

The Little Schemer

The Little Schemer
The Little Schemer Daniel P. Friedman Matthias Felleisen Duane Bibby

おすすめ平均
starsSchemeが好きになります
stars英語であるのが苦痛にならない楽しさ
stars面白いスタイル

Amazonで詳しく見る by G-Tools

Amazonさんから届いた。結構軽い本だから電車とかで読むのも悪くないかもしれない。洋書だけど、そんな難しい英語はなさそうだからそんなに苦労はなさそう。

The Five Rules

The Law of Car
The primitive car is defined only for non-empty lists.
The Law of Cdr
The primitive cdr is defined only for non-empty lists. The cdr of any non-empty list is always another list.
The Law of Cons
The primitive cons takes two arguments. The second argument to cons must be a list. The result is a list.
The Law of Null?
The primitive null? is defined only for lists.
The Law of Eq?
The primitive eq? takes two arguments. Each must be a non-numeric atom.

Home > Tags >

Feeds
Meta
Others

Return to page top