「この本が私を育てた!」「この本に早く出会いたかった!」エンジニアとしての個人的バイブルを語る (技術書編)

2020-03-02
How to be a Developer

Author : 金澤 圭 (話者 : 吉田 慶章) 

テクニカルソリューションアーキテクトの金澤 (@ketancho) です。これから定期的に “How to be a Developer” カテゴリに記事を書かせてもらいますので、よろしくお願いします ! 私の普段の仕事については、この記事の最後に簡単ですが紹介しておりますので、よろしければ最後までご覧いただければと思います。

先月の builders.flash 公開の少し前に、「学生やこれから開発者を目指したい人の背中を押す記事を書いてみない ??」という話をもらいました。私自身、これからエンジニアを目指す方への支援はとても興味のある分野で、昨年は小学生から高校生が対象のものづくりのアワードの審査員(と書くと偉そうですね..)をさせてもらっています。そういう背景もあり、 builders.flash に寄稿させてもらうことになりました。

さて、何から書こうかなーと悩んでいたわけですが、開発者や IT エンジニアは常に勉強をし続けないと生きていけない仕事 ( ! ) だと思っており、まずは “How to キャッチアップ” 的な記事から書かせてもらうことにしました。この分野の技術は日進月歩で、全ての技術を学んだり、全ての本を読んだりすることは難しいです。そういう意味で、いかに効率的に (と書くと語弊があるかもしれませんが) “良い” 本を読んでいくかも大切だと思います。

“良い” 本と書きましたが、当然そのときのスキルセット、担当している仕事によって何が “良い” 本かは変わってくると思います。社会人エンジニアになってもうすぐ丸 8 年となりますが、社会人 1〜2 年目の頃に読んだ「あのとき読んでよかった!」という本もありますし、「あの頃に出会えればもっと良い仕事ができたかも」という最近の本もあります。

そこで、エンジニアとしての血となり肉となった個人的なバイブルを、初学者の方に共有することはきっと意味があるのではないかなと思い、このテーマで記事を書いていくことにしました。ただ、私ひとりでこのテーマを進めてしまうと、どうしても偏りが出てしまうと思いますので、私と同じく "How to be a Developer" カテゴリに寄稿していくテクニカルトレーナーの吉田さんを招き、対談記事にチャレンジしてみます。まず今回は、"技術書編" ということでやっていきます。それではお楽しみください !

金澤
「というわけで、エンジニアとしての個人的バイブルを紹介する記事を書くので、お時間ください。吉田さん、よろしくお願いしますー !」

吉田
「よろしくお願いします ! オススメたくさんありすぎて絞るの難しかったのですが、幾つかピックアップしてきましたよ。」

金澤
「ありがとうございます。吉田さんは普段トレーナーとして AWS を教える仕事をしているんですよね?」

photo_my-tech-bible_01

吉田
「そうなんです。なので仕事柄、お客様に本を紹介することも多いですね。あとは、前はプログラミング講師の仕事もしていました。」

金澤
「実は私も前職の頃、オンラインで AWS を教える仕事をサイドワークでしていました。この共通点があったから、編集長から "How to be a Developer" 枠での声掛けがあったのかもしれませんね。」

吉田
「なるほど、責任重大ですね。やっていきましょう。それで技術書といってもたくさんあると思うのですが、何から紹介していけばいいですか ?」

金澤
「はい、今回はインフラよりの本を 1 冊ずつ、アプリよりの本を 1 冊ずつ、計 4 冊ほど紹介できればと思っています。ソフトスキル的な本はまた次回で。」

吉田
「えっ ? 2 冊しか紹介できないんですか?うーむ難しいですね・・・。(びっしりと書かれた手元の紙を見つめながら)」

金澤
「(20 冊くらいありそう・・・。) 初回からこの情報量だと読者が混乱すると思うので、いったん 2 冊に絞って欲しいです ! 最初はインフラよりの本からお願いしたいのですがどうでしょう ?」

吉田
「たしかにそうですね・・・。そうしたら僕がインフラよりの本でオススメするのは『ウェブオペレーション』という本です。今でこそ "DevOps" という言葉が世の中に浸透していますが、そうでない頃 (5 年ほど前) に読んだ本です。その当時の私は、アプリケーション開発やプロジェクトマネージメントよりの経験を積んでおり、次はインフラ側にもチャレンジするぞ ! という時期でした。」

金澤
「それこそ吉田さんが "インフラ初学者" だった頃に読まれた本、というわけですね。この本はどのあたりがオススメなんですか ?」

photo_my-tech-bible_02

吉田
「何かの技術要素に特化している本というよりは、インフラエンジニアとしての大切なマインドを教えてもらえる本ですね。インフラエンジニアは『縁の下の力持ち』とされることが多いと感じるのですが、それだけじゃないぞ、ビジネスを成長させる上で必要不可欠な存在なんだぞ、ということが学べます。この本から得られたマインドの部分は今でも活きているという意味ではバイブルと言えますね。」 

金澤
「とてもよさそうですね。私も読んでみたくなってきました。」

吉田
「2011 年に書かれた本なのですが、その考え方は今でも通ずる部分が多いと思います。もちろん最近の本でもたくさん良い本があって、例えば『Effective DevOps』『入門 監視』あたりの本もあわせて読むのがオススメですね。この本も紹介したいんですがいいですか?」

金澤
「それを許すと私のパートの尺がなくなっちゃうのでダメです。また機会を作るので今日は我慢してください。」

吉田
「・・・。」 

金澤
「では私の番ですね。私のオススメ本は『3 分間 DNS 基礎講座』です。先ほどの吉田さんの本よりも個別の技術に特化した本ですね。私も新卒でアプリエンジニアとして働き始めたんですが、途中でインフラエンジニアになりたいと思ったんですよね。」

吉田
「お、僕と同じですね。」

金澤
「そうなんですよ。でも、学生時代から私はアプリよりのことばかりやってたので、当時インフラのことは何も分からなくて。特にネットワーク関連は苦手でしたね。DNS もちんぷんかんぷんで、そんな当時読んだのがこの『3 分間 DNS 基礎講座』でした。」

吉田
「あー、僕もこのあたりはもっと伸ばしたいと思っているので、今度読んでみようかな。どのあたりがオススメなんです ?」

金澤
「この "3 分間" シリーズは生徒と先生の対話形式で話が進んでいくんです。掛け合い形式で少しずつ生徒が成長していくスタイルで進むので、難解な話でも分かりやすく学べます。いきなり技術の話から始めるのではなく、その背景や歴史、つまり "なぜ必要なのか" から解説されているので、初学者の自分でも腹落ちさせやすかったですねー。」

吉田
「初めてその分野を勉強する方にとって、背景から学べるのはよいですよね。遠回りだと思うかもしれませんがそんなことはなくて。長い目でエンジニアとしての成長を考えると、バックグラウンドを知ることはとても大事です。他の分野と絡めて "点" ではなく "線" で学びやすくなります。他の分野と絡めて、と言いましたがアプリ側でもその考え方は大切だと思うんです。そろそろアプリよりの技術書の話をしてもよいですかね ?」

金澤
「(私が言いたかったことを全部言われてしまった・・・) はい、やっていきましょう ! 吉田さんのオススメは何ですか ?」

吉田
「今回のテーマですと『ゼロからわかる Ruby 超入門』がオススメですね ! プログラミング講師の仕事では初学者に Ruby や Ruby on Rails を教えていたのですが、そのときにこの本があったらよかったなと思いました。オススメのポイントが 2 つあって、1 つ目は "比喩"、つまり例えがうまくて読み進めやすいんです。」

金澤
「たしかにプログラミングを初めてやる方にとって、専門用語が多いとツライですよね。それがわかりやすく例えられてるということです ?」

吉田
「そうなんです。その初学者のハードルの 1 つを低くしてくれる本だと思います。現在は AWS を教える仕事をしているわけですが、いかにうまい『比喩』で伝えられるかはいつも意識していますね。そしてもう 1 つ、初学者が躓きやすいポイントとして環境構築が挙げられると思います。この環境構築へのフォローもあるのが、この本のもう 1 つのおすすめポイントです。」

金澤
「環境構築で躓く・・・あるあるですね。」

吉田
「この本は開発環境を作る部分のサポートもあるので、初学者の方が手を動かそうと考えたときに、初手で躓くことが少ないんじゃないかな、と。ちなみに、Ruby の本をオススメしたわけですが、初学者の方に Ruby からプログラミングを始めた方がよい、と言いたいわけではないんです。どの言語でもいいんです。でも、まずはその 1 つの言語をしっかりマスターできるようにしてほしいです。1 つマスターできれば、それ以降に新たに他の言語を学ぶときに、その知識を横展開できるはずなので。」

金澤
「その考え方、私も賛成です。私は Java から入ったのですが、他の言語を学ぶときにも “Java だとこう書くけど、この言語はこうなのねー。” と、腹落ちしやすかったですね。この流れで私のオススメも紹介させてもらいますね。『独学プログラマー』という本です。実はこの本を読んだのは最近なのですが、初学者のときにあれば読みたかったな、と思っています。最近は、周りでプログラミングを始める方から相談を受けたときに、この本をよく紹介していますね。」

吉田
「初学者のときに読みたかった、そういう本ありますよね。この本はどういう点がオススメなんですか?」

photo_my-tech-bible_03

金澤
「はい、この本では Python が使われているのですが、先ほど吉田さんが言っていたのと同じで、他の言語にも応用できる形で学習を進められると思っています。算術演算、文字列操作、ループ・・・と進んでいくわけですが、この本は各ステップごとに動くコードが掲載されているんです。ですので手を動かしながら学ぶ*¹ のに最適だと思っています。」

吉田
「手を動かしながら読み進める、とても大切ですよね。僕も本を読むときには必ず検証しながら読み進めるようにしています。」

金澤
「時間はかかりますが、その方が腹落ちに繋がりますよね。『独学プログラマー』には、チャレンジ問題が用意されていることもよいところだと思ってます。本からコードを写すだけではなく、自ら考える必要があるので自然と応用力がつくはずです。チャレンジ問題にも解答はついているのですが、ここはぜひご自身で考えてみてもらいたいです。」

吉田
「この本に刺激を受けて、そういうコンテンツを作るようにしたいとか言っていましたよね ? 笑」

金澤
「そうですね。先日、JAWS-UG でハンズオン勉強会をしたのですが、"宿題" を用意してみました。皆さんやってくれるかな・・・。また、この本ではそれ以外のスキル、例えば Git であったり Bash であったりも学べます。そしてこのようなハードスキルだけでなく、ソフトスキル、例えば、仕事の見つけ方、メンターを見つけることの大切さなどについても書かれている点も読んでて楽しかったですね。」

吉田
「ソフトスキルもとても大事ですよね。むしろソフトスキルの本の方が紹介したいものがたくさんあるのですが、話していっていいですかね ?」

金澤
「吉田さん、ちょっとお待ちを。長くなりそうなので、この話はまた次回にしましょう。」

吉田
「・・・。」

金澤
「みなさま、ここまでお付き合いいただきありがとうございました〜!また次回、個人的バイブル (ソフトスキル編) でお会いしましょう!」


というわけで、個人的バイブル (技術書編) でした。最後は強引に終わらせましたが、このあと吉田さんからは 6 つのソフトスキル本を紹介してもらっています。次回の記事では、その中から特にオススメなものに絞って、改めて紹介してもらいます。私からも幾つか紹介できればと思っています。

さて、*¹ の部分で「実際に手を動かす」という話を書かせてもらいました。もちろん皆様の PC にランタイムをセットアップして作業を進めるのもよいのですが、この記事の最後に AWS Cloud9 というサービスを紹介させていただきます。AWS Cloud9 は、ブラウザのみで開発作業を進められる、クラウドベースの統合開発環境です。

img_my-tech-bible-04

AWS Hands-on for Beginners サーバーレス #2 で用いた AWS Cloud9 を紹介する 1 枚モノ資料

実は、私自身『独学プログラマー』で学んだことの検証を、AWS Cloud9 上で行っていました。AWS Cloud9 を使うとキレイな環境を用意したり、検証が終わったら削除したりを簡単に行えるのが私のお気に入りポイントです。

吉田さんのコメントにもありましたが、初めてプログラミングを学ぶときに、開発環境の準備で躓く方も多いと思います。色々と試行錯誤した結果、その作業が悪さをして次のステップがうまくいかない、ということもあるかなと思います (私はよくありました)。そういう意味で、使い捨てできるクリーンな開発環境が必要になった際は AWS Cloud9 が便利かも、ということを頭の片隅に覚えておいていただければうれしいです。

img_my-tech-bible-05

著者の個人 AWS Cloud9 環境の様子

こちらで個人的バイブル (技術書編) を終わりたいと思います。今回は我々の個人的なオススメ本を紹介させていただきましたが、同じチームや近くの部署で仕事をしている憧れのエンジニアの方にオススメを聞いてみるのもいいかもしれませんね ! そして、良い本に出会えたら、それを何かしらの形で周りに共有 (アウトプット) してみるのもオススメです。それでは、また次の記事でお会いしましょう !

photo_kanazawa_kei

話者および筆者について

金澤 圭 (@ketancho)
アマゾン ウェブ サービス ジャパン株式会社
技術統括本部 ソリューションアーキテクト

サーバーレスが好きなテクニカルソリューションアーキテクト。業種業界問わず、お客様のプロダクト開発をサポートさせていただいています。「AWS Hands-on for Beginners」というオンデマンドで視聴できるハンズオンも企画・推進しており、楽しく学べるコンテンツを日々考えています。好きなサービスは AWS Lambda と AWS Amplify で、好きな休日の過ごし方は娘ふたりと川の字になって昼寝です👧👧

photo_yoshida_yoshiaki

話者について

吉田 慶章
アマゾン ウェブ サービス ジャパン株式会社
トレーニングサービス本部 テクニカルトレーナー

ウェブエンジニア/プログラミング講師などの経験から AWS テクニカルトレーナーに。教えることを本職とし、効果的な学習メソッドを考え続けている。教えることは最高の学習である。Keep on Learning 👍

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
フィルタ
1

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する