オススメ書籍

Webアプリ開発者としてキャリアの各フェーズで役立った書籍8冊

こんにちは!夜中のラーメンの飯テロに弱い井上(@ino_dev)です。

今回は「ITエンジニア業務を行う上で役立ったと感じる書籍」と言う共通テーマでブログを書こうと言う企画があり、自分も乗っかっていくつか自分を構築してきた書籍を紹介してみようと思います。

特に新卒時や仕事のやり方が大きく変わった節目などで読んだ、とりわけ思い入れのある書籍を中心に記載してみます。後輩の方などの参考や、同業種の方の思い出語りのネタにでもしていただければ幸いです。

新卒でしがみついた「独習Linux」

大学卒業後にSESの企業に就職して関西から東京に出てきました。

研修を終えて金融システム開発の現場に配属となった際に、「Linux分からなさすぎてヤバイ」と頭を抱え、とりあえず購入したのがこの書籍です。

現場で使われていたC言語は大学の卒論などでも軽く書いていた為、業務レベルでの理解は特に問題なかったものの、(業務知識以外では)基本的なLinuxの知識がなくて大苦戦必死だったのでこの独習Linuxの書籍を中心に、Linuxコマンドの逆引き辞典、LPIC Lv.1資格の書籍などを机の横に置きながら必死で勉強していました。

IT業界歴で言えば自分もかれこれ8年目くらいですが、新卒のころに学習したLinuxの基礎知識は、Webアプリを開発している今でも自分のあらゆる業務を支える基盤となっています。

基礎を作った「応用情報+情報セキュリティスペシャリスト」

(書籍は多分これのシリーズだったと思う。後資格変わってるからあんまり参考にならないかもしれませんが…。)

新卒で入った会社では資格習得で一時金が出る制度があったので、応用情報を新卒1年目で取得しました。その後も、現場の先輩に情報セキュリティスペシャリストの参考書を借りて、面白かったので個人的な興味でセキュリティの勉強などをしていました。

もう各プロトコルの内容など結構細かいことは忘却の彼方にいってしまいましたが、ここで基礎学習をしていた為Webアプリなどの開発において自然と攻撃手法に対する防御などは考えられるようになりました。

特にリバースプロキシやWAFなど、(自分は専門ではないので構築まではしないものの)インフラエンジニアさんに観点を相談したりする際には役立っているのかなと思います。必要であればまたもう少し勉強したい。

あ、ちなみに応用は取りましたが情報セキュリティスペシャリストの資格は勉強はしたものの取ってませんw

副業で刺激的だった「パーフェクト Ruby on Rails」

「自分でも何かサービス立ち上げたい」と言う思いは大学の頃から漠然とあった為、金融系のシステム開発をしながらPHPやRubyを学習していました。
(Objective-C・Unity・Python・Javaの勉強会など結構色々見て、取り敢えず自分でサービス作るならRubyだなぁとRuby+Rails3で遊んでいました)

特にこの頃「楽しいRuby」や「Ruby on Rails 3 アプリケーションプログラミング」などいくつかの書籍を終えてから、「パーフェクトRuby on Rails」をやった時に色々自分のアイディアを実現できそうでワクワクしたのを覚えています。(※この本は古いので今はもっと良い書籍もあるかと)

なお、その頃フランチャイズのようなプリントTシャツを工場に発注できる権利を購入して、Ruby+Ruby on Rails3でオリジナルTシャツを発注できるサイトを副業禁止の自社に秘密で作って公開したりしていたのは良い思い出です。

知り合い伝いとかで何度か受注して、十数万くらいだけ売り上げ上げてから、毎度発生するフォトショップ等の加工含む事務作業が色々面倒くさくなって結局辞めちゃったのも良い思い出ですw

個人業務前に役立った「達人に学ぶDB設計徹底至難書」

2年ほど金融システムの開発に携わった後、やはり自分でサービスを作るということを今後していきたいと考え、ひとまずその頃まだ比較的新し買ったWantedlyを利用して社会人インターンをさせていただいていました。

平日は正社員として金融系のシステム開発、土日は渋谷の某ベンチャー企業さんを無料で手伝う代わりにCTOの方などからも色々お話を聞けるような場に身を置きました。

その頃にとてもやって良かったなぁと思っているのは「達人に学ぶDB設計徹底至難書」です。基本情報や応用情報はやっていたのですごく目新しいと言う内容は多くはなかったものの、設計におけるパフォーマンスの考慮を強く意識づけられた本でした。

特にWebアプリでRailsを使っていた為、データベースに対する意識付けをしっかりと持てたという点は、この後個人で仕事をすることになる際にも、今の業務の仕方にも大きく影響しています。

アジャイル文化に馴染んだ「図解でわかるアジャイル・プロジェクトマネジメント」

金融システム開発を行っていた自分にとって、Webアプリ等の世界へ移行する際にカルチャーショックだったのがアジャイル開発の考え方でした。

もちろん『アジャイル』とか『スクラム』という言葉は自分も知っていましたし、金融などの大規模で様々なチームが並行してシステム開発を行う場合はウォーターフォールでないと難しいことも理解していました。

ただ、「図解でわかるアジャイル・プロジェクトマネジメント」では、ウォーターフォールでの業務システムなどからアジャイルとしての開発に移行すると言う例で解説されていて、金融システムで仕事をしていた自分にはその違いやメリット・デメリットがかなり具体的にイメージが沸きました。

アジャイルサムライなど導入的な書籍も読んではいましたが、当時の自分はこの書籍でアジャイルを使うことの納得感が得られた記憶があります。

(ちなみに今から勉強する方は公式のスクラムガイドなども合わせて読むと良いと思います)

デザインの観点を得た「ノンデザイナーズデザインブック」

新卒で入った会社は3年ほどで辞め、それ以降は個人事業主としてWebアプリの開発に携わったりプログラミングの講師業などをやっていました。

いろんな会社でお仕事をさせて頂いている時に、Rails案件でデザインフレームワークのBootsrapを使用してエンジニアドリブンで開発することが多かったのですが、某グッドデザイン賞を受賞されたスタートアップで仕事をしていた時にデザインの重要性(そしてプロダクトのUI/UXを担保するデザイナーの地位の高さ)に衝撃を受けました。

Zeplinにあげられたデザインと1pxずれてるよね?と言うレベルで指摘をもらうかなりシビアなところでカルチャーショックを受けました。

当たり前ですが、ユーザーが使いたいと思ってもらえるシステムでないと使い続けてもらえないと言うことが眼から鱗で、デザインについてもある程度知っておかないと!と思って読んだ書籍が「ノンデザイナーズデザインブック」です。

内容はシンプルでデザインの観点を得られた書籍で、デザインに関することに関心をもったらはじめに見ると良い書籍のひとつだと思います。
なお、この頃に学習してた「CSS設計の教科書」なども合わせて読めるとFLOCSSなどのコンポーネントの考え方と合わせて整理出来てより良いかと思います。

業務意識が向上した「なぜ、あなたの仕事は終わらないのか」

事業などについて色々考えたり、仕事のやり方について色々考えるようになったIT業界歴4~5年目くらいの頃、ビジネス書や仕事術などを読むのがマイブームでした。

その中で比較的意識の影響を受けたのが「なぜ、あなたの仕事は終わらないのか」でした。この書籍で言っていることはただただシンプルで『2割の時間で8割の仕事を終わらせよう』ということに尽きます。

ただ、バッファはあった方が良いよねーとか、見積もりはファンクションポイント法を基本として〜みたいな、何となくこうしておけばマイナスにはならないよねというくらいの考え方だったのが圧倒的スピードで前半で終わらせにかかるという考え方にカルチャーショックを受け、特にクライアントワークに関する対応はこれで少し時間の使い方が変わりました。

ビジネス観点を磨く「良いウェブサービスを支える利用規約の作り方」

どちらかとエンジニアリングの業務…というよりは、今は会社を作り人様の開発の相談を受けるというような立場としてですが、自分でサービスをやったり受託開発など含めコンサルティングやディレクションに近いところまでする場合は「良いウェブサービスを支える利用規約の作り方」は読んで損はない書籍だと思います。

自社サービスの公開前に読みながら利用規約を作るということを行っていたのですが、特にどういうサービスであればどんな法律に注意する必要があるのか、どのような届出が必要なのかと言った内容も整理されている点がとても勉強になりました。

個別具体的な法律の内容は毎度調べる必要がありますが、観点を入れるのにとてもオススメです。

最後に

他にも業務システムのSESからWebの方に来るまでに学習してきた内容では、Vagrant+ChefとかAWSとかVue.jsとか、カルチャーショックを受ける技術などは多々ありましたが、とりわけ面白そうなものをピックアップしてみたつもりです…!

自分の武器にできそうな分野を考えて、面白そうな書籍を手にとっていきましょう。