February 2014

February 27, 2014

情熱プログラマー

キーワード:
 Chad Fowler、プログラマー、情熱、キャリア、生き方
プログラマー向けのキャリア論。目次はちゃんと出版社のページに全部載っていたので、リンク先を参照と(オーム社は目次の重要性をちゃんとわかっていて、いいね!)。本書の概要が「イントロダクション」に示されていたので、そこを引用しておく。
 この本は自分のキャリアにおいて充足感と幸福感を得るためのものである。充足感と幸福感は偶然に得られるわけではない。間違いを犯したときに進路を変えるためには、思索、意思、行動、そしてやる気が必要だ。この本はソフトウェア開発におけるキャリアで(したがって人生で)根本的に成功を収めるための戦略を提示する。
(pp.xiii)
著者の経歴はちょっと変わっていて、当初は音楽大学でサックスを学んでおり、ジャズプレイヤーであるミュージシャンであった。あるとき、ゲームをやりたくてプログラミングを独学し、本格的にソフトウェア工学、プログラミングを学んでいる友人からいろいろと教えてもらいながらソフトウェア開発会社に就職する。そしてアメリカ以外にもインドのバンガロールなどでも働き、プログラマーだけではなくプロマネ的な立場にもなっている。そんな著者によって、情熱的に働くことの重要性がわかりやすく、かつ具体的な内容で示されている。

率直な感想を言えば、もっと早く読みたかったぞ!!というような内容だった。ある程度仕事をしていると行き当たる壁というか、陥りがちな考え方とそのアンチパターンのようなものが示されている。読んでいるとなんというか、耳が痛いことが多く書いてあって、線をひきまくった。

その線を引いた部分をちょっと多めに引用しておきたい。
  • ビジネスの分野における経験は、自分のレパートリーのなかでも重要な部分だと考えるべきだ。(「3 コーディングはもう武器にはならない」pp.9 )
  • 機会を与えられるだって!そんなの僕だってなかったよ!僕は学ぶ機会を自分でつかまえたんだ。(「5 自分の知性に投資しよう」pp.17 )
  • 君の目標が解雇やオフショアの嵐の中で最後まで生き残ることなら、自分自身の汎用性を高めておいたほうがいい。(プラットフォームの垣根を越えたスキルを身に付けろ)(「7 万能選手になろう」pp.24-25 )
  • 自分の仕事で秀でた存在になりたければ、自分の仕事に情熱を注がないとだめだ。(「10 愛せよ、さもなくば捨てよ」pp.32 )
  • まずは仕事で使うツールについて勉強しよう。(教えてくれるのを待つな。自分から訊け!)(「11 魚の釣り方を学ぶ」pp.40 )
  • ビジネスの仕組みを知りもしないで、ビジネスが利益を上げるために想像力を働かせて協力できるだろうか?(「12 ビジネスの仕組みを学ぶ」pp.43 )
  • これからも品質という基準で戦うつもりなら、実務で練習するという考え方は捨てなければいけない。自分の技術に対して時間を投資しなければ。(「15 一に練習、二に練習」pp.50)
  • 顧客の要求以上の対応をしたり要求する前に対応を済ませたりすれば、顧客は満足どころか大喜びだろう。(「20 読唇術」pp.70 )
  • 自分の功績を認めてもらいたいなら、まずマネージャから評価されないといけない。(「22 誰のために働いているのか思い出す」pp.75 )
  • 彼は並の働きしかしないし、態度もよくない。たとえ高い可能性を秘めていても、それが何だっていうんだ?現時点でそれを発揮していないじゃないか。(「23 今の職務を全力で」pp.76 )
  • ヒーローはあわてない(「31 あわてるな」pp. 99)
  • 君は他人の評価を気にすべきだ。認識されたものこそ現実なんだ。このことを受け入れよう。(業績の客観的な評価なんてありえない)(「33 弱点が違えば認識も異なる」pp.112 )
  • 顧客はビジネスのニーズを主張し、君は報酬をもらってニーズを満たすんだ。このことを忘れちゃいけない(「34 アドベンチャーツアーガイド」pp.115 )
  • 君の短期的なキャリア目標がレベル23のプログラマからレベル24のプログラマアナリストになることだとしても、プログラマとして次の昇進や現在の職場といった枠を超えて考えることも必要だ。(「39 業界で名前を売ろう」pp.126 )
  • 自分はプログラマ(あるいは設計者、テスター)だっていうアイデンティティにこだわるな。(「45 君は既に職を失っている」pp.145)
  • 君のキャリアにとって本当に重要なのは昇進でも昇給でもない。重要なのは、そういう成果を得るために努力した時間だ。もっと重要なのは、そういう成果と関係ないところで努力した時間だ。(「46 終わりのない道」pp.147 )
  • 大きな目標を立てたら、それを常に見直すようにしよう。経験から学び、進みながら目標を変更していこう。(「51 ウォーターフォール式のキャリア計画はやめよう」pp.161 )
仕事でうまくいってなかったりして、評価が微妙だったりすることもある。そういうときは、なんで評価されないんだ?とかプロマネがダメなやつなんだよとか、技術領域がそもそも自分の得意分野ではなかったとか、対象業務分野が自分の経験のあるものではないしなとか、自分の技術レベルではこのままではジリ貧になるなとか、そもそもこの仕事はまったく面白くないし、しんどいだけだから転職しようかなとか考えたことのある人は(もちろん全部考えたことあるぞ!!w)、ぜひ読んでみたほうがよい。

それらの考えは誰もが陥りがちな罠みたいなもので、それらに対するヒントが示されている。こういうのは、誰かに指摘されるまで気づかなかったりする。たとえ指摘されても、そんなわけあるかと直視(客観視)できなかったりするしね。そういうときに、自分で気づけるかが重要で、本書は嫌でも気づかされる。そして、自分のこれまでを反省せざるを得ない。

もちろん、反省しっぱなしで終わらずに、熱い気持ちにさせてくれるのが本書のよいところ。若干自己啓発的な感じではあるけど、ソフトウェ開発者のために具体的に示されているので、書店の自己啓発本コーナーに並んでいる微妙な自己啓発本よりも断然によい。ある程度プログラマーなどの技術職を経験したことがある人は、あるあると、経験則的に納得したりできる部分は多いと思う。

結局、今までの自分に圧倒的に足りなかったものは、技術力ではなく、『情熱』なんだということがよくわかった。そして、まだこの仕事で勝負してみたいと思ったから、格ゲーで負けた時に出てくる10カウント中にコンティニューボタンを押すように、再チャレンジしていきたいと思った。そんなこんなで、最近はずっと放置していたJavaの強化トレーニング中だ。

炭火のように静かに熱く火をつけてくれるような本だった。何度も定期的に繰り返して読みたい1冊。




読むべき人:
  • 自分のキャリアについて考えたい人
  • プログラマー、SEを辞めようかと思った人
  • 情熱的に生きたい人
Amazon.co.jpで『Chad Fowler』の他の本を見る

bana1 情熱プログラマークリック☆  にほんブログ村 本ブログへ


February 23, 2014

タタール人の砂漠

キーワード:
 ディーノ・ブッツァーティ、砂漠、待つ、時間、人生
20世紀イタリアを代表する作家による小説。以下のようなあらすじとなっている。
辺境の砦でいつ来襲するともわからない敵を待ちながら、緊張と不安の中で青春を浪費する将校ジョヴァンニ・ドローゴ――。神秘的、幻想的な作風で、カフカの再来と称され、二十世紀の現代イタリア文学に独自の位置を占める作家ディーノ・ブッツァーティ(1906―72)の代表作にして、二十世紀幻想文学の世界的古典。
(カバーのそでから抜粋)
Dainさんのスゴ本経由でこの本の存在を知り、売り切れてしまう前に急いで書店で買った。若い人こそ読んで欲しいが、分からないかも。』と評されており、最近30歳になった自分にはどう感じるのだろうか?という部分を確認してみたいというのもあって読んだ。もう、30歳なのか?それともまだ30歳なのか?のどちらか。

読中、読了後に率直に感じたことは、やはりまだそこまで自分のこととしてリアルな絶望感のようなものはそんなにないなと思った。つまり、まだ30歳ではないか!?と安堵の気持ちもある。

しかし、自分の人生が失敗と敗北に終わり、何も起こらなかった、という失望とともにただ病んだまま、そして孤独にバッドエンドを迎える未来像を想像して恐ろしくなった。単調な日常の繰り返しに慣れてしまい、何かが起こることを期待しているままに人生の大切な時期をやり過ごしてしまい、主人公、ドローゴのように後悔とともに臨終を迎えてしまうような人生だけは全力で回避しなくては!!、という危機感のようなものが芽生えた。

物語の初めのほうの主人公は若く、タタール人が攻めてくるかもしれないという砂漠を監視する砦に勤務することになる。そこでは単調な何もない砂漠の監視、非番時のカードゲーム、たまに村に行って村娘に会いに行ったりなどの毎日の繰り返しだけの生活を続けるが、砦の兵士全員が期待している敵の襲来は待っていてもいっこうに起こらない。主人公は敵の襲来という幻想にとりつかれて、出られたはずの砦にずっと残り続けてじっと何年も待っているという状況。

物語の中で特に大きな事件があるわけではないのだけど、読みながら、もしかしたら本当に主人公の境遇のような、将来起こり得る自分の未来像を想像していくうちに、澄んだ水に落ちる一滴の墨汁が徐々に広がって灰色に滲んでいくように、自分の内面に少しずつ不安が侵食していく。

この物語の教訓的なものは、一言でいえば、『待つな、自ら動け』としか言いようがない。ただ毎日の単調な繰り返しを過ごし、何か自分から違う行動を働きかけたりしない限り、ある日突然仕事で成功したとか、どこかで運命的な出会いがあったとか、言葉で言い表せない絶景を見たとか、何かに心を強く動かされるような感動を味わったというようなことなどは、過去の自分の経験から鑑みても、まずない、ということだ。

だから受動的ではいけない、自分から能動的に行動していかなくては、本質的には自分の人生をよりよく生きたことにはならない、さもなくば、主人公と同じように失望とともに人生を無為に過ごすだけだ、ということになる。

20歳前後で読んだ場合は何も感じなかったかもしれない。30歳で読めたことを幸運ととらえて、40歳以上になって再読した時に絶望しないようにしたい。そして、また10年後に自分を試すんだ。能動的に生きたかどうかを。



タタール人の砂漠 (岩波文庫)
ブッツァーティ
岩波書店
2013-04-17

読むべき人:
  • 受動的な人
  • RPGが好きな人
  • 意義のある人生を送りたい人
Amazon.co.jpで『ディーノ・ブッツァーティ』の他の作品を見る

bana1 砂漠クリック☆  にほんブログ村 本ブログへ



February 16, 2014

なれる!SE 2週間でわかる?SE入門

キーワード:
 夏海公司、SE、ネットワーク、ツンデレ、仕事
SEの実態が描かれたラノベ。以下のようなあらすじとなっている。
平凡な社会人一年生、桜坂工兵は厳しい就職活動を経て、とあるシステム開発会社に就職した。そんな彼の教育係についた室見立華は、どう見ても十代にしか見えないスーパーワーカホリック娘で!?多忙かつまったく優しくない彼女のもと、時に厳しく指導され、時に放置プレイされながら奮闘する工兵。さらには、現場を無視して受注してくる社長のおかげで、いきなり実際の仕事を担当させられることになり―。システムエンジニアの過酷な実態をコミカルに描くスラップスティック・ストーリー、登場。
(Amazonの商品の説明から抜粋)
2年前くらいにネットで話題になっていて、存在は知っていて気にはなっていた。最近以下の著者インタビュー記事を読んでから、より関心がわいて、ためしに1巻をKindleで買って読んでみた。著者はバリバリのSE経歴があり、物語の半分は実体験が元になっているらしい。へーと思った。大変だねとも思ったw

シリーズ化されていて、この記事投稿時点で11巻まで刊行されているようだ。第1巻目は、主人公工兵が就職活動を経てシステム開発会社になんとか就職するも、そこは従業員が少なく、しかも社員が会社で寝泊まりしているようなブラック企業!?だった!!文系卒で何もシステム、コンピュータのことがわかっていない状態で、中学生のような容貌のツンデレ女性上司、室見から無茶ぶりでCiscoルーターのコンフィグ設定のタスクを投げられる。設定内容がさっぱりわからない状態で、締め切りは今日中という無茶ぶり!!そして2週間の試用期間の評価が悪ければクビに!!どうする、工兵!?というお話。

表面上はラノベの体裁で、文章は短く、改行も多く、主人、工兵の一人称で物語は進むのでかなり読みやすい。登場人物も平凡な新卒文系社員の工兵(もう名前からしてソルジャー社員じゃないか!?ww)、その上司である年齢不詳の中学生のような容貌の室見(ツナ好き、仕事人間、嫌いな人には無関心、怒るとドライバーが飛ぶ!!wでもツンデレ)と派遣社員のカモメ(Excelのショートカット使いまくりで目にも止まらない速さで事務処理をこなす!!、裏設定で麻雀ゲームが最強レベルで電気系にも地味に強い)などなどラノベっぽい設定とお決まりなドキドキな展開!?が繰り広げられて楽しめる。

しかし、この物語の本質は単純なラノベではなかった。なんとうか、これはSE入門書というか、本質は仕事論の物語であるなと。

SEというとよくネット記事で残業地獄で心身ともに壊れたりしたり、2次受け、3次受けの独特の受注階層構造になっていたりし、低賃金だったりプロジェクトは火を噴きまくりでIT土方、奴隷など揶揄されている。僕も職業はSEなので、まぁ、そういう部分もあるなと実感する。すべてではないけど。あと、ちょうど最近以下のスレがあったので参考に。それでもSEとしての面白さ、醍醐味が工兵の成長を通して描かれている。たとえば、SEのやりがいとして、本作では『「何かを自分の手で作り上げる快感」』というものが示されている。あぁ、そうだよねと思った。他社ベンダーから引き継いだクソな設計、しかもドキュメントなし、コードもイケてないものを保守しなくてはならないときはそういったものをあまり感じられないけど、自分で設計、プログラミング、テストまでこなし、そしてカットーバーを迎えると得も言われぬ達成感があるのは間違いない。僕は過去にそんなにたくさんそれを経験したことがあるわけでもないけど、そういう経験があったなぁと思い出した。

あとは工兵が仕事を始めたばかりで、母親との電話での会話部分から。
「ねぇ、働くって大変だね」
(中略)
『あたりまえじゃない、何言ってるの。みんなその大変なことをやって暮らしているのよ』
(58%部分)
まぁ、そうだよね。実際に自分の母親も働いていて、そんなことを言っていたような気がした。

一応エンタメ作品であるから、工兵のようにすぐに1年目でやりがいとか面白さを感じられるかは人によるとしか言いようがないかな。そもそも向き不向きというのが少なからずあるからね。それでも3年目まで必死でやって、こういうやりがいとか面白さを感じられればいいね。必死でやってもしんどいだけで得るものもやりがいもないと思ったら、さっさと見切るのもよしかな。

工兵と室見のラノベ的なやり取りで(・∀・)ニヤニヤしたり、ドキドキしたりしつつも、上司が鬼軍曹みたいなのだったり、顧客に無茶ぶりされたり、納期がやたらと短かったり、納入機器のバグがあって危機的状況に陥るという部分もあるある!!wと突っ込みつつも、自分の仕事に当てはめて想像して逆の意味でドキドキ(胸の動悸w)がして、よくも悪くも精神的に揺さぶられてくる。そして、読み物としても面白いんだな。

表紙はラノベ丸わかりなので、本として電車で読む場合はカバーを付けたほうがいいかもね。僕は主にスマフォのKindleアプリで読んだ。これだと表紙とか分からないし。あと、読了してみて、スマフォのKindleとラノベは相性が良いなと思った。文章がもともと短いし、改行が多いので、スマフォの1ページ当たりがちょうどい文章量になる気がする。また、電車待ちなどの隙間時間に数ページずつ読んで区切っても、難しい描写もないし、シーンも数行で変わったりするので、途中から読んでもすぐに内容に没頭できるし。なので、紙より安いので、Kindle版がオヌヌメ!!

続編もいろんな展開になり、純粋に勉強になる部分が多い感じなので、全部買って読もうと思った。あと、本書は技術者向けなので、この本のブログのカテゴリは『文学作品』ではなく、『技術本(コンピュータ関連)』に設定した。

これから就職活動をする人は、これがすべてではないけど、SEの仕事としては割とリアルな内容なので参考になるし、実際にSEとして働いている人は萌えながらも勉強になったり、きっと自分の仕事を頑張ろうと思えるはずだ!!



なれる!SE 2週間でわかる?SE入門 (電撃文庫)
夏海 公司
KADOKAWA / アスキー・メディアワークス
2012-10-04

読むべき人:
  • 就職活動中でSE志望の学生の人
  • 現役SEとして働いている人
  • 自分の仕事について考えてみたい人
Amazon.co.jpで『夏海公司』の他の本を見る

bana1 なれるSEクリック☆  にほんブログ村 本ブログへ



February 13, 2014

すべての美しい馬

キーワード:
 コーマック・マッカーシー、馬、メキシコ、旅、美
アメリカ人作家による青春小説。以下のようなあらすじとなっている。
1949年。祖父が死に、愛する牧場が人手に渡ることを知った16歳のジョン・グレイディ・コールは、自分の人生を選びとるために親友ロリンズと愛馬とともにメキシコへ越境した。この荒々しい土地でなら、牧場で馬とともに生きていくことができると考えたのだ。途中で年下の少年を一人、道連れに加え、三人は予想だにしない運命の渦中へと踏みこんでいく。至高の恋と苛烈な暴力を鮮烈に描き出す永遠のアメリカ青春小説の傑作。
(カバーの裏から抜粋)
本書は図書館で借りた。たまたま同著者の本を積読していただけで、特にコーマック・マッカーシーの本を以前に読んだことがあるわけでもなく、特に知っていたわけでもなかった。図書館で何か適当に借りようと文庫コーナーを眺めていたら、積読中の著者の本だなというただそれだけの理由で手に取ってみて、カバーの裏のあらすじを読んで、貸出期間中にまったく読了する気もなく借りた。他に3冊借りたのだけど、結局500ページもある本書のみを読了した。読んでよかった。きっとこの本に呼ばれて借りたんじゃないか?と思うほどだった。

あらすじには『青春小説』とあるが、青春小説というほどには甘酸っぱいものはなく、16歳の少年にとってはあまりにも過酷な物語ではないかと思った。

主人公のジョンは、ハイウェイがあって車も普通に走っている時代に、あてもなく友人と馬に乗って地元のテキサスからメキシコに向かう。道中でウサギを獲って食べたり、たき火を囲んで野宿もしたりする。そして途中で立派な馬に乗った14歳くらいの少年と出会い、その少年と少し行動を共にし、メキシコの牧場で馬の調教師、牧童として働き始める。

そこの牧場のオーナーの娘、17歳のアレハンドロに惹かれつつもいろいろと事件が起こり、主人公とその友人はメキシコの刑務所に入れられる。その刑務所特有の閉鎖的で暴力的な社会で生き延びるために戦わなくてはいけなかったりし、単純に少年が旅に出て成長するというような感じではない、よく言えばタフでハードボイルドな話。

主人公のジョンは、自分の家の境遇などもあったりして、どこか達観していて16歳の少年にしては大人びている印象を受ける。自分に起こったことを否定もせずに、当然のことだとどこか諦観にも似た境地で受け入れようとしている。対して相棒のロリンズは17歳で主人公よりも1歳年上なのだけど、割と短気でどちらかといえばやんちゃであまり深く考えずに直観的に行動するタイプで、主人公にいろいろと言ったりするが、それが主人公にとってよい刺激になってもいる。そんな二人の短い会話の連続がよかったりする。

読み始めて50ページくらいは、著者独特の文体に慣れるまで大変かと思う。一文がかなり長く、一般的に読点が入るようなところにそれがなかったり、会話も鉤括弧なしで示されている。登場人物の心情描写もあまりない。

しかし、風景、情景、そして馬の描写がスゴい。豊穣な言葉使い、比喩表現で、メキシコの牧草地、山脈、広がる青空、乾いた土ぼこりが立ち込めるメキシコの小さな街、そしてたてがみが揺れて汗ばむほどに躍動する馬たちが自然に脳内イメージできてしまう。一言でいえば、『美しい』、そんな文体。アメリカ文学でこんな豊かな表現に出会うとは思ってもいなかったから、良い意味で驚きだった。

なんとなく主人公が当てもなく旅立つことに共感を覚えた。いろいろあって、結局地元には留まってはいられない。しかし、行く当てが決まっていたり、目的が先にあるような冒険の旅に出るというのでもない。ただ、ここにはいられない、いたくはない、ここではない、どこかへ行かなくてはいけない、そして、馬だけが主人公の心のよりどころのような、そういう感覚に自分を投射しつつ共感できた。そしてこの物語は、特にハッピーエンドで終わっていないところが切ないというか、読後により心に残るような気がした。

この作品は本書から始まる『国境三部作』と呼ばれるものらしい。2作目の『越境 (ハヤカワepi文庫)』は別の主人公の話で3作目の『平原の町 (ハヤカワepi文庫)』は、本書と同じ主人公、ジョンが28歳になったときの物語らしい。ぜひこれらも読んでみたいな。

本書は馬が好きな人にはよい本だと思う。主人公の馬への愛情がよく表現されているし、一緒に馬に乗って旅をしている感覚にもなれる。そして、美しい世界に身をゆだねられる。



すべての美しい馬 (ハヤカワepi文庫)
コーマック マッカーシー
早川書房
2001-05

読むべき人:
  • 馬が好きな人
  • 圧倒的な文体を堪能したい人
  • ここではない、どこかを目指している人
Amazon.co.jpで『コーマック・マッカーシー』の他の本を見る

bana1 うつくしい馬クリック☆  にほんブログ村 本ブログへ


February 11, 2014

CODE COMPLETE 第2版

キーワード:
 スティーブ・マコネル、コード、コンストラクション、可読性、奥義書
米ソフトウェア界の第一人者による、プログラミングの指南書。目次はかなり多いので、以下のリンク先を参照。最初に結論を示しておこう。

プロプログラマーならこれを読まずにプログラミングをすることなかれ!!なぜなら、これはプログラマーにとっての圧倒的な奥義書だからだ!!

初版は1994年に出版されており、2005年に改訂版として本書が出版されている。上下巻構成で合計1,272ページ、重量約2kg(体重計で測った!!w)の圧倒的なボリュームであるが、プログラミングのお作法的な本として、テーマの網羅性、内容量、分かりやすさ、使える度に関して、これ以上の本は読んだことがない!!もしこの本以上のプログラミングお作法本があるなら、教えてくれ!!っていうような内容。

本書のテーマとして、「ソフトウェアコンストラクション」という言葉が示されている。これはソフトウェア開発におけるプロセスのことで、本書では特にコーディングとデバッグがメインで、その他に詳細設計、コンストラクション計画、単体スト、統合、統合テストといった部分が示されている。

そして、このソフトウェアコンストラクションはなぜ重要かというと、以下の理由が示されている。
  1. コンストラクションはソフトウェア開発の大部分を占める
  2. コンストラクションはソフトウェア開発の中心的なアクティビティである
  3. コンストラクションに専念することで、個々のプログラマの生産性は驚くほど向上する
  4. コンストラクションの成果物であるソースコードは、多くの場合、ソフトウェアを正確に書き表した唯一のドキュメントである
  5. コンストラクションは必ず実行される唯一のアクティビティである
なので、特にコーディングに関しては以下の2点が最重要なテーマとなる。
  • ソフトウェアに不可欠な技術的な要素として、設計、コードの複雑さに適切に対処すること
  • コードの読みやすさ
これらをテーマとして、目次に示されている内容がかなり分かりやすく、網羅的に示されている。

もう少し補足すると、複雑さに対処するということはどういうことかというと、設計やコードをなるべく分かりやすくすべきということになる。複雑な部分は他の人が理解するのに余計な労力を強いることになり、そしてそういった部分にバグが混入しやすい。結果的にソフトウェア品質が落ちてしまう。

よって、変数名は分かりやすく意味のあるものを付ける、クラスを適切に分割する、カプセル化でメンバデータを保護する、クラスの継承をしすぎない、多重ループを避ける、if分のネストも制限する、ポインタを使用しなくても実現できるなら使用しない、ルーチンの引数を増やしすぎない、などなどといったプログラミングの基本的なお作法が必要になる。

また、ソフトウェア開発におけるプログラミングというのは、本書によれば、実際にコードを書いているよりも他の人が書いたコードを読んでいることのほうが時間的に多いので、適切なコメントを設定し、読みやすくするべきとある。たとえ自分しか読まないコードだったとしても、それを1ヵ月後などに手を入れる時などに、読みにくいコードを書いていた場合は、なんだこれは!!と思うことは確実なので(あるあるw)、ちゃんと読みやすくしましょうと示されている。

詳細な内容については、もう読んでくれ!!としか言いようがない。もちろん、著者もまえがきで示している通り、すべてに納得がいくわけではないとある。それはその通りであるが、納得がいかない部分に関しても、自分なりのコードのスタイルを確立するための一つの参考になり、結果的に勉強になる。

上巻は主にコードの書き方そのものに関して示されており、下巻はすでにあるコードの改良やプロプログラマーとしての心構えなどが示されている。上巻だけでよい、ということはなく、下巻も合わせて読むべき。個人的にはむしろ下巻のほうが割と心に残った気がする。

ボリュームは相当多いのだけど、他の翻訳本にありがちな分かりにくさはほとんどない。まず日本語訳がすばらしい。意味の通らない文、原文が想像できるような変な日本語はなかった。また、本書のページ構成もちゃんと構造化されていて、分かりやすい。そもそもコードを読みやすくしましょうと説いている本が読みにくい構成だったら説得力がないし。つまり、翻訳技術本としてはかなり読みやすいと実感した。

これがなぜ奥義書かというと、分かりやすさとテーマの網羅性もあるのだけど、決定的なのは先人の英知の結晶であるから。つまり、本を書いたのは著者一人なのだけど、初版から第2版まで相当の専門家のレビューを受けているし、何よりも圧倒的な参考文献の量が品質を担保していると言える。

参考文献だけで30ページも詳細に示されており、研究論文から定番本の『人月の神話【新装版】』など様々な文献が示されている。なので、これ1冊読むだけでプログラミングのお作法的な内容はほぼ網羅されていると思われる。また、本書からそれらの参考文献に知識を広げていくのもよい。

また、以前取り上げた似たテーマの以下の本も推薦図書として示されている。こちらも合わせて読んでおいたほうがいいね。

上下巻合わせて約1,200ページもあるので、買って読むのはかなり躊躇するだろう。値段も合計12,200円+税とかなり高額になるし、残念ながらKindle版もまだ出ていない。実際僕も買って2年ほど積読して放置していた。しかし、最近また自分の技術力の底上げをしようと思い立って、読み始めてみたら、案外分かりやすく、お作法的な本は別に大丈夫だろうと思っていたけど、それでもかなり勉強になった。今まで読んでいなかったことを反省しているというくらいに。

さすがに量が多いので最後まで読むのはしんどいかもしれない。そのため、記録を付けていくのがいいと思う。僕は大体20日間(間に有給休暇を挟む)で約50時間近く(ネットしたり集中していない時間も含む)かかって読了した。1日大体2時間ペースかな。そんなに時間が取れない人は、1日30分からでもぜひ読んでみてほしい。はやりのソーシャルゲーム株に数万円投資して損失を被るよりも(('A`))、本書の上下巻12,200円+税と約50時間の工数の投資のほうが確実なリターンとなるのは間違いない!!

また、同じようなテーマの本として『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)』があるが、こちらは2012年発売で、本記事の投稿時点で26件のレビューが示されている。しかし、コードコンプリートは2005年発売で、上巻で16件、下巻でわずか5件となっている。評価もほぼ5つ星でにもかかわらず。このことから推測できることは何か?

これだけの圧倒的な奥義書にもかかわらず、下巻の最後まで読了した人は少ないということ。つまり、下巻まで読了するだけで並みのその他大勢のプロプログラマーから頭一つは抜け出せるっていうことだ!!

そもそも本を読んでいる人は少数派であり、さらに本書の存在を知っているプログラマーも実はそんなにいないかもしれない。たとえ知っていても、価格とボリュームの障壁で、最後まで読んでいる人はさらに少ない。ということで、チャンスだし消費税がアップする前に速攻で買って読むんだ!!

まだ読む気になれない!?では、本書に寄せられている著名人たちの賛辞で激しく同意!!と思ったものをいくつか引用しておこう。
  • 「プログラミングスタイルとソフトウェアコンストラクションのための優れた手引書」―Martin Fowler『Refactoring』
  • 「これまでに読んだソフトウェアコンストラクションの書籍の中で最高の1冊である。どの開発者も同書を1冊手に入れ、毎年最初から最後まで読むべきだ。私は9年間これを続けているが、それでもまだこの本から学ぶことがある」―John Robbins 『Debugging Applications for Microsoft .NET and Microsoft Windows』
  • 「プログラミング技術の向上を真剣に考えているならば、Steve McConnellの『Code Complete』を手に入れるべきである」―Jean J. Labrosse 『Embedded Systems Building Blocks: Complete and Ready-To-Use Module in C』
  • 「プロのプログラマを目指しているなら、この35ドルという投資は、これまでで最も賢明な投資かもしれない。この書評を読み終えるまで待つ必要はない。今すぐ書店へ駆け込み、この本を購入しよう。McConnellが述べているように、同書の目的は、業界の第一人者と一般的な商用ソフトウェアの習慣との格差を縮めることである...驚くべきことに、彼はそれに成功している」―Richard Mateosian 『IEEE Micro』
  • 「『Code Complete』は、ソフトウェア開発に携わる...すべての人の必読書である」―Tommy Usher 『C Users Journal』
内容をちら見したい人は、以下の章が(その他の一部の章も)公開されているので、それを読んでみるのがお勧め。最後に特に本書で琴線に触れた部分を引用しておこう。下巻の第33章『個人の資質』の「専門能力を養うことを誓う」という節の最後の部分。
 初級者レベルや中級者レベルであることは罪ではない。指導者レベルではなく、上級者レベルであることも罪ではない。罪であるのは、自分の能力を向上させるために必要なことをすべて知った後も、初級者レベルや中級者レベルに甘んじることである。
(下巻 pp.437)
もう経験年数もそれなりになってきているのだし、同一クラス(職位)に停滞したままではダメだなと思っていた。だから本書を読んで技術力の底上げを図ろうとした。その目的は確実に達成された。あとは本書を何度も繰り返して読みながら、自分のコードを練っていくだけだ。

本当にプロプログラマーにとっての奥義書なので、絶対買って読め



CODE COMPLETE 第2版 上
スティーブ マコネル
日経BP社
2005-03-26

CODE COMPLETE 第2版 下
スティーブ マコネル
日経BP社
2005-03-26

読むべき人:
  • プロプログラマーの人
  • プログラミングはやらない管理職の人
  • 奥義書を読んで修行したい人
Amazon.co.jpで『スティーブ・マコネル』の他の本を見る

bana1 プログラミング奥義書クリック☆  にほんブログ村 本ブログへ