読者です 読者をやめる 読者になる 読者になる

プログラミングとデザイン、スタートアップの話

プログラミングやデザイン、スタートアップ関連についての雑記

【厳選4冊】脱初心者を目指すプログラマーにオススメのバイブル(本)

プログラミング初心者 プログラミング

プログラミングを学習し始めてから1年以上経過し、いくつかプロダクトの開発経験があるプログラマーが次のステップへレベルアップするために読みたい本を紹介する。あまり沢山紹介しても読むのには時間が掛かるし、どれから手をつけたらいいかわからなくなるだろうから4冊だけを厳選した

たった4冊だがどれも濃密な内容となっているので、あなたのプログラマー人生のバイブルになり得るものばかりだ。これらの本を読み終える前と後とでは、明らかにプログラミングに対する視点や視野が変わってくるはずだ。何度も読み返して頭に刷り込んでいきたい内容ばかりだ。

リーダブルコード


一冊目は『リーダブルコード』。この本は初心者〜脱初心者あたりが対象の読者となるため、プログラマー経験が1年未満の人でも手にとったことがあるかもしれない。おそらくほとんどのプログラマーが読んでいるとても有名な本だ。

プログラミング初心者の時は、「動くものを完成させる」ことで精一杯だったはずだ。自分の設計したプロダクトをプログラミングによって実現していく過程は初心者とって難しく、「可読性」「保守性」などと言った言葉とは出会う機会は少なかっただろう。

初心者の頃はもちろんそれで問題はない。自分の作りたいものをしっかりつくり上げる能力を鍛えることが最優先だ。しかしこれからは違う。あなたは複数のプログラマーがいるチームに入って一つのプロダクトを共同作業で作っていく機会が増える

そのときにあなたのコードが「汚いコード」であることは避けなければいけない。「汚いコード」とは、あなた以外のプログラマーが理解しづらい(可読性のない)コードだったり、編集のしづらい(保守性のない)コードのことを指す。これからはチームでの生産性のパフォーマンスを上げるために、あなたは可読性や保守性について学ぶ必要がある。これはどんなプログラミング言語でも共通だ。

この『リーダブルコード』は可読性を向上させるためのテクニックやTipsなどが細かく説明されている。なおかつ、脱初心者にはちょうどよいレベルでの説明なので読みやすい。脱初心者プログラマー必須の1冊だ。

オブジェクト指向でなぜ作るのか


2冊目はオブジェクト指向に関する書籍。すべてのプログラミング言語に該当するわけではないが、Web・API開発に用いるRuby、iOSアプリ開発に用いるSwift、Androidアプリ開発に用いるJavaなどのオブジェクト指向の哲学を持つ言語を使っているプログラマーは読んでおきたい一冊。

脱初心者を目指すあなたからすると「オブジェクト指向」という言葉はちんぷんかんぷんだろう。もしかしたらこれまでに先輩プログラマーから言葉だけは聞いたことがあるかもしれない。もしくは、初心者用の書籍の中で「オブジェクト」という言葉と出会っているかもしれない。

初心者の頃は無視しても問題はあまりなかった「オブジェクト指向」だが、これからのあなたのプログラマー人生では必須の概念となる。オブジェクト指向はプログラミングをする上で可読性や保守性の高いコードを書くためには重要な概念だが、最初は少し難しく感じるかもしれない。

オブジェクト指向についてGoogleで検索しても、きっと一度読んだだけではあまり頭に入ってこないだろう。なぜならこれは抽象的な概念の話が多く、自分のこれまでのプログラミング経験と結びつきにくいからだ。しかし、この『オブジェクト指向でなぜつくるのか』という本はオブジェクト指向について丁寧に解説された本で、オブジェクト指向の全てが詰まっている。

内容は多少難しいが、ゆっくり咀嚼していけばあなたを次のステージへ連れて行ってくれる1冊だ。

ドメイン駆動設計


3冊目はドメイン駆動設計に関する書籍。プログラミング経験が1年〜2年くらいになるとこの書籍に手を付ける人が多い。オブジェクト指向について学習が済んだ後に読みたい本だ。

ドメイン駆動設計はDDDと書かれることもあるが、あなたはまだ馴染みがないかもしれない。リーダブルコードでの説明と同様、きっとあなたはこれまでのプログラミングにおいて「モデリング」について深く考えたことはないだろう。もちろん考える時期ではなかった。そもそも概念も知らなったはずだ。

これからはプログラミングの骨格となる設計技術を学んでいく必要がある保守性が高いコードを書くためには、根幹とある設計(モデリング)が重要な要素となる。モデリングという言葉を初めて聞いた人にはまだ何のことかわからないかもしれないが、簡易な言い方をすれば「適切な役割を分類・定義し、適切なモデルを構築していくこと」である。

本書ではドメインモデルという概念を使用して開発をしていくための方法論が記されている。かなり内容が濃いものとなっているため、読むのには時間が掛かるが得るものが沢山あるだろう。読書前後ではプログラミングをする際の視点が完全に変わってくる。また、本書籍は1度読んだだけでは吸収しきれない人が多いため、定期的に読み返すのが良い。

アジャイルサムライ


「侍」という言葉が入ったこの書籍が最後に紹介する本だ。この本はこれまでの3冊とは異なり、プログラミング自体の技術についてではなく、「開発手法」について言及された書籍である。

再三繰り返しているが、これからあなたは他のプログラマーとチームとして働くことが増えるため、チームとしてどのように生産性を高めていくのかという点も学習していく必要がある。アジャイルと呼ばれる開発手法は今や世界中のチームに認知され、多くの人達が取り入れているものだ。

非エンジニアであるチームリーダーと上手くコミュニケーションを取るための「見積もり」や「要件定義」など、チーム開発での基礎テクニックが書かれている。内容はそこまで難しくないので、すぐ読み切ることが出来るだろう。

おわりに

4冊を読み進める順番は①『リーダブルコード』+『アジャイルサムライ』→②『オブジェクト指向でなぜつくるのか』→③『ドメイン駆動設計』が良いだろう。①は比較的早く読み進めることができるので一気に集中して読みたい。②、③はとても内容が濃いため時間をかけてじっくり咀嚼していこう。