日々常々

ふつうのプログラマがあたりまえにしたいこと。

Javaっぽいプログラマになる方に薦める5冊

いきなりぶっちゃけますが、5冊で足りる訳がありません。でもいきなり難攻不落の城を見せ付けられても困ります。数が多いとそれだけで「うわ、こんな読まないといけないの!?」と思ってしまうものです。なので、私がこれまで読んできた本の中から5冊だけピックアップしてみました。ここに挙げたものが全てではありません。これらを読むことで次の本に手が伸びるようになると幸いです。学習は継続しなければ意味がありません。だからこそスタート地点はしっかりした方がいいと思います。
※プログラミングを全く知らない人は対象にしていませんので、悪しからずご了承下さい。最低限の文法等は修得していて、何かしらのシステム開発に携わっている、携わろうとしている、そういう方向けです。

達人プログラマー

ソフトウェア開発は技芸です。技芸と言うことは達人が居ます。その域を知って目指すことで、プロフェッショナルな開発者になれると思います。意識の土台をしっかりしておくことで、その上に積み上げるものもしっかりします。読みやすい本ですのでまず一読。そして暫く経ってからまた振り返り読むのが良いと思います。

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (348件) を見る

CleanCode

目の前の業務をこなすのに必死だった私の頭をぶん殴った一冊。これでプログラマ人生が変わりました。コードは動けばいい?馬鹿を言うんじゃない。動いた時点でコードが終わるならばそれでもいい。でも違うんです。当然、動かなくて綺麗なコードに価値はありません。でも汚いコードはたまたま動いているだけです。動く綺麗なコードを書くために何をすればいいか。一言で言うならば"意識"です。それが書かれています。

Clean Code アジャイルソフトウェア達人の技

Clean Code アジャイルソフトウェア達人の技

プログラミング言語Java

手元にあると安心感が違います。分厚いですが、前の方は読んでおきましょう。なかなか面白いのですけど、全てを読み通すのはちょっと疲れますし、覚えてられません。I/Oやコレクションはいざ使うと言う時に開く感じでも良いと思います。よく判らないまま使ったり、"何処の誰が書いたかもわからないWebサイトをコピペ"なんてことはプロとして許されないと思うのです。

プログラミング言語Java (The Java Series)

プログラミング言語Java (The Java Series)

  • 作者: ケン・アーノルド,ジェームズゴスリン,デビッドホームズ,柴田芳樹
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/04
  • メディア: 単行本
  • 購入: 38人 クリック: 1,044回
  • この商品を含むブログ (73件) を見る

EffectiveJava

大抵のことはEffectiveJavaに書いてます。いやマジで。でも絶対の正解が載っている訳ではありません。状況次第なものもありますし、ツッコミ所は無くはありません。でも書いているのを認識して守った場合のメリットとデメリットを天秤にかけてから破る判断をすべきです。その判断が出来ないならば守っておくべきことが書かれています。

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

オブジェクト指向のこころ

とあるシステムを例に幾らかのデザインパターンの適用からオブジェクト指向を説明する本です。ゼロからはじめるには高度な内容と言って良いかも知れません。何度か挫折しかけました。言葉は難しくないはずなのに、何故か理解が追いつかない感じだった記憶があります。この本はデザインパターンの解説書でもあります。オブジェクト指向デザインパターンに向き合う姿勢を作る、もしくは矯正できる本だと思ってます。

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)


5冊に入らなかったけど薦めたい本

プログラマが知るべき97のこと / エッセイ集です。先の世界を覗き見る感じの本になります。

Code Craft ~エクセレントなコードを書くための実践的技法~ / 達人プログラマーやCleanCodeと併せて姿勢を正すのに良いです。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)リファクタリングする時は"何と言うリファクタリングをするのか"を意識しないと正しくリファクタリングなんて出来ません。

レガシーコード改善ガイド (Object Oriented SELECTION) / レガシーコードに溢れる現実と戦う為の武器です。ある程度経験を積んでいると、自然と身に付いているものも数多くあります。

増補改訂版Java言語で学ぶデザインパターン入門Javaデザインパターンに入門するならこれかなと思います。

テスト駆動開発入門 / 写経しようぜ!

Javaルールブック ?読みやすく効率的なコードの原則 / A001Actionクラスとかありえませんから。