新卒 2 年目のゆとり Web エンジニアの糧となった 10 冊
巷でプログラマの 10 冊ブログが人気なようなので便乗。
私が、新卒入社からの約 1 年半の中で読んだ書籍の中で、特に印象に残っているものを紹介します。
はじめに、私はプログラマではありません。
仕事では自社サービスの運用に携わるなどしていて、開発の仕事もしていますが、運用・保守の仕事も多めです。
また、私は情報系学部の出身でもありません。
プログラミングは趣味でやっていましたが、新卒入社時はオブジェクト指向の理解も RDBMS の経験もゼロでした。
入社したのも技術研修の無い会社なので、プログラミング等について、他人から体系的に学んだ経験もありません。
そういう背景から、セレクトの傾向は既出の 10 冊と、やや性格が異なると思います。
比較的平易なものが多いので、これから Web エンジニアになる、という方にも是非オススメしたい 10 冊です。
新卒 2 年目のゆとり Web エンジニアの糧となった 10 冊
オブジェクト指向のおもしろさを教えてくれた一冊。私の新卒一年目のテーマはすばりオブジェクト指向でした。オブジェクト指向は何であり、何でないのか、何が嬉しいのか。また、デザインパターンや UML 、アジャイルといった、オブジェクト指向の考え方から派生した、様々な技術について紹介されています。
各章の終わりには、理解を深めるための参考書籍も豊富に紹介されており、オブジェクト指向について学ぶ上でのインデックスになる 1 冊です。
PHP しか知らなかった私にとって、とても貴重な資料でした。この書籍のコードを写経することで、ようやくオブジェクト指向っぽく書けるようになったと思います。
GoF パターンについてもそうですが、 PHP5 におけるオブジェクト指向や、 SPL (Standard PHP Library) についても学ぶことができ、有象無象の PHP 本とは一味違う 1 冊です。
非常に残念なことに、現在は絶版となってしまいましたが、現在は Web 上で読むことができるようです。
オブジェクト指向についての理解を深めてくれました。また、初めて買った Ruby 書籍だったと思います。
Ruby の場合、 Iterator や Singleton 等どいったパターンは、 PHP よりかなり簡単に実装できることもあって、事情が大分異なります。そういった違いを通じて、 Ruby の魅力を知ることができました。
また、 DSL をデザインパターンとして詳細に紹介しているのも、 Ruby ならではでしょう。
今回紹介している書籍の中では、かなり難しい部類。
コーディングスタイル、アルゴリズムとデータ構造、デバッグ、テストの自動化等、重要なトピックが詳細に解説されています。「糧となった 10 冊」として挙げている割には、ほとんど理解できていないと思いますが、読み返すごとに色々気づかされます。
元々、純粋に JavaScript を書けるようになりたい、と思って買った書籍ですが、それ以上のことを教えてもらったと思っています。これもオブジェクト指向についての理解を深めてくれた 1 冊。
文法、オブジェクト、関数、プロトタイプ継承についての詳細な解説だけでなく、コーディングスタイルについての言及もあり、「JavaScript 版 プログラミング作法」と言っても過言では無いでしょう。
サンプルコードも多く、写経から得られるものは多いです。
プログラミングの本ではありませんが、 Web の仕事に携わる以上、ユーザビリティは、セクションに関係なく大事なトピックでしょう。
ユーザビリティについての考え方は、この本から学びました。「ユーザに考えさせない」という目標がいかに的確で、いかに難しいことか。
理論的な話だけでなく、スクリーンショットを用いた解説もあるので、とてもわかりやすいです。
「ユーザビリティの法則」を日本のモバイル Web に当てはめるとどうなるか、という実践的な書籍。
この書籍で紹介されているテクニックは、スマートフォンの普及とともに、消えゆく運命だとは思います。ですが、それらを実践することで身につく感覚は、 Web がどう変わろうと応用できるものだと思います。
すぐに適用できるテクニックも多く、とても実用的な 1 冊。
雑誌なので「1 冊」として挙げるのは変ですが、とても参考になっているので。
Linux の経験もほぼゼロだった私にとって、これぐらいの敷居の雑誌の存在は本当にありがたいです。ハッカー向けではありませんが、初心者から中級者ぐらいまでは十分に楽しめるんじゃないでしょうか。
シェルスクリプトについての紹介など、 Ubuntu に限らない特集も散りばめられており、楽しみながら Linux に親しむことができます。
タイトルから分かる通り、 Web の本ではありません。しかし、 Web エンジニアリングに携わる以上、アクセス解析やベンチマーク等、数字に対する感覚を磨くことは、避けて通れないでしょう。
世の中に溢れる、アンケートや統計などの様々な社会調査はほとんどがゴミである、というところから始まり、どうやればデータを批判的に読むことができるか、というテクニックが解説されています。
基本的に数式は出てこず、「いかに論理的にバイアスを見抜くか」といったところにフォーカスされています。独特な語り口を除けば、比較的平易に書かれていると思います。
これも Web の本ではありませんが、著者は技術系の書籍を多数執筆している、ジェラルド・ワインバーグです。
就活中、どこぞのコンサルタントが行う「問題解決セミナー」には胡散臭さを感じずにはいられませんでしたが、この本は本当に参考になったと思っています。問題という大問題を認識させてくれた 1 冊。
ストーリーを用いながらユーモラスに語られていますが、そこで語られているのは、問題解決者としての社会人にとって、とても大切なことばかりだと思います。問題は何なのか、それは誰の問題か、われわれは本当にそれを解きたいか ...
番外編: 今読んでいる 3 冊
ここからは現在進行形で読んでいるものの中で、特におもしろいものを紹介します。
ハードカバーで 800 ページ以上もあり、もはや鈍器。人は殺せそうな洋書。
内容は、 xUnit 系のフレームワークによる単体テストのパターン・アンチパターンの詳説です。デザインパターンのように、それぞれのパターンに名前が付けられているので、これが普及すれば技術的コミュニケーションの促進にも繋がるかもしれません。
また、英語それ自体の勉強よりは、英語で興味のある事柄を勉強する方が、モチベーション的には高く保てると思うので、英語の教材としてもオススメです。
通称エキ Py。私にとってはまだまだ敷居が高いので、つまみ食い的に読んでいます。
Python というプログラミング言語それ自体についてのみならず、テスト駆動開発、デザインパターン、パッケージの作成、開発手法など、かなり包括的に記述されています。これを読みきったら Python ハッカーになれる気がする、そんな 1 冊。
さくら VPS を契約したことと、業務でもインフラ的な仕事が増えそうなので購入。
私の場合は LAMP を中心としたソフトウェア/ミドルウェアについては仕事で関わるものの、ハードウェアについては直接関わることはほぼ皆無なので、知らないことだらけで、とても勉強になります。視野を広げてくれる 1 冊。
See also
- 全てのプログラマが読むべき本ベスト10冊 とみー
- 見習いプログラマが読んだら、すぐにジョブレベルが上がる10冊 ソースコードは飲み物です。
- 見習いプログラマが読んでも、ほとんど無意味な10冊 カレーなる辛口Javaな転職日記
- 「プログラマ」と「10冊」が多かったのでまとめてみた 生涯未熟