IT インフラエンジニアに Web アプリエンジニア養成読本をオススメする 6 個ぐらいの理由
Web アプリエンジニア養成読本 Advent Calendar 2014 の 13 日目の記事です。
ここまで著者の方で連続しているので僕が普通の書評記事のようなものを書いていいのかな、と思わなくもないですが、 登録してしまったので書こうと思います (それに、本当にオススメなのです)。
あなただれ
書評を書く前に、僕の自己紹介をさせて頂きます。 著者の @koemu さんと同じ会社で働いていて、半分同じ部署です。
会社、MSP を専業としていて主にお客様のサーバ・インフラをお預かりしています。 僕とこえむさんは、そんな会社の中で主にプログラムを書いて自動化・解析・便利ツールの作成や、 重た目の検証作業などを行ったりして、他の同僚の皆さんの業務効率化や業務改善を目的として活動しています。 (僕は 9 月から大体半分ぐらいこの部署で働いています。)
僕が今の会社に入社したのは、2010 年の 10 月ぐらいでした。
その時は学生アルバイトという立場で入社して、 インフラのイの字も知らない、 Linux は触ったこと無い、SSH を見て「うおーハッキングっぽい!」と興奮するような、 本当に何も知らない状態で入りました。
そこから研修を経て、少しはサーバの事も分かるようになり、 ずっとインフラエンジニアとして毎日サーバにログインして働いていたのですが、 今では業務時間の殆どをコーディングやコードリーディングに充てています。 (但し、プログラマになったという気分は全然なく、インフラエンジニアの仕事の一つとしてコーディングをしています。)1
インフラエンジニアとしてアプリを知るということ
インフラエンジニア、社内のアプリやお客様のアプリをお預かりして運用していくわけです。
もちろん Apache, Nginx, MySQL, PostgreSQL … と言ったような、 Web サーバや DB サーバの設定や挙動について知ることは大事なことです。
しかし、アプリケーションがどんな風に作られて、どんな構造になっていて、 データベースにはどのようにアクセスして、セッションの保持はどうするのか? セキュリティリスクになりそうなポイントはどこか?どういうクエリが危険か? アプリケーションに対してどんなクエリが適切か? …
そういったことは、実際にアプリケーションを作ってみないと分からないと思うのです。
実際に、お恥ずかしい話ですが、4 年前の僕には MySQL とは一体何をしているものなのか、 どうして必要なのかということも、クエリの良し悪しも全く分からなかったのです。2 (但し、2 台の MySQL でレプリケーションし、HA クラスタを組み VIP ベースでフェイルオーバは出来た)
そんな僕は実際に PHP でアプリケーションを作ってみることで、 MySQL は一体何なのかから、テーブル構造がどうなっているのか、 トランザクションとは一体何なのか、どのようなクエリを書くのが良いのか学ぶことが出来たのです。
そうして自分でアプリを作ってみることで、 インフラエンジニアとしての知識をたくさんつけ、 プログラミングの知識もある程度つけることが出来ました。
とはいえ、自分一人でアプリを作るのは難しい! まず、情報が多すぎる。多すぎる上に新しいものから古いものまで玉石混交です。 意気揚々と作っても、参照している情報源が悪くてマサカリが飛んでくることもあります。
そして、何を作っていいか分からない。そんな悩みもあるでしょう。
そこでこの、Web アプリエンジニア養成読本なのです。3
オススメポイント
基本知識から分かる
割とよくあるフレームワーク入門書などとの違いがここです。
本書の 1 章は、「Web 技術オーバービュー」なのです。 「Web アプリエンジニア養成読本」は、特定のフレームワークや言語に依存しない、 Web アプリを作るにあたってのとても大事な基礎知識を最初に解説してくれます。
対象読者はもはやインフラエンジニア
インフラエンジニアの皆さん、業務でシェルスクリプトぐらいのコードは書くことあると思います。 なんなら bash ワンライナーもコードのひとつでしょう。 本書は、変数・配列・if/for などの簡単なプログラミングの知識を持っていて、 かつ Web アプリを作ってみたい人を対象としています。インフラエンジニアのあなたのことではないでしょうか?
著者陣がめっちゃ豪華
実際に有名 Web サービスを生み出している方々、 Ruby/PHP 界隈で知らない人は居ないであろう方々、 サーバ・インフラの専門家。
これが一冊の本でまとめて勉強できるのはすごいことです。
また、インターネットで苦しんで調べながら見つけた(正しいか分からない)情報より、はるかに正確で有益です。4
インフラの勉強も出来る
アプリ系の入門書で、インフラの事にこんなに深く触れている本はなかなか無いです。
アプリを作った後、どんな風にモニタリングして運用していけばいいのか、
どんな風に連携すればいいのか、障害が起きたらどうすればいいのか…。
もちろん、サーバ・インフラの専門家が書いているので勉強になるでしょう。同僚として保証します。
言語が複数ある
インフラエンジニア、色々なサービスを見ることもあると思います。
あるサービスでは PHP, あるサービスでは Ruby, あるサービスでは Perl…
そういった色々な言語の Web アプリ状況について一挙に学べる所もインフラエンジニアとしてありがたいところかなと思います。
エディタの選び方からデプロイの方法まで、幅広い解説
初心者が迷いがちなところ、躓きがちなところに細かい配慮がなされています。
環境構築方法や、ロギングやデバッグの手法、テストコードの書き方まで。
各項目で、読み終わった後に続く書籍が紹介されている所も良いです。
この本で終わらずに、オススメ書籍を読んでどんどん学習を進めることが出来そうです。
等とつらつらと書きましたが、個人的に本当にオススメの本となっております。 ( 誕生日プレゼントとして友人にプレゼントしたこともあります。 )
いかがでしょう?