techtekt アドベントカレンダー2021 18日目です🎄✨
こんにちは、21卒エンジニアの大和田です。今日は新卒エンジニアである私が、読んで業務に役立った本をいくつか紹介させていただきたいと思います。一冊でも参考になりそうな書籍があれば嬉しいです!
本を選ぶときの超個人的な基準
名著と言われている本
名著と呼ばれているものは結構内容的に難解でヘビーなものが多いような気がするのですがなるべく読むようにしています。特に著名な本は副読本みたいなものがあることもあるので合わせて読んだりしています。
先輩や友人に勧められた本
同じプロジェクトの先輩や友達に勧められたものを読むと共通認識を持てるようになったり、経験則的に分かりやすく説明されていたりする本が多い気がするので勧められた本は基本的に買うようにしています。そのおかげもあって積読本が増えに増えまくっているので早く消化せねばと思っております。。
ハンズオン形式の本
やっぱりただ読むよりも手を動かしつつ学んでいった方が身についている感が全然違うので、ハンズオン形式の書籍はとてもおすすめです。本記事でもいくつかハンズオン形式の書籍を紹介しているのでぜひ参考にしてみてください!
おすすめの書籍紹介
Linuxで動かしながら学ぶTCP/IPネットワーク入門
一冊目におすすめしたいのは、「Linuxで動かしながら学ぶ TCP/IP入門」です。本書ではただ読むだけではなく、LinuxのNetwork Namespaceという機能を使って手を動かしながらTCP/IPについて学ぶことができます。
こんな人におすすめ!
・「マスタリング TCP/IP」を読んだけれどもTCP/IPをいまいち理解できていない
・ネットワークが専門ではないエンジニア
おすすめポイント
ネットワークの実験をするためにはコンピュータを複数台用意しなくてはいけずなかなかハードルが高いです。そこで本書ではLinuxのNetwork Namespaceという機能を使うことによってこの問題を解消しています。マシン一台でネットワーク的にシステムから独立した仮想的なコンピュータを用意することによってパケットの送受信などの実験をすることができます。以前にネットワークの書籍を読んだときはなかなか頭に入ってこなかったのですが、手を動かしながら学ぶことでかなり頭に入って来やすかったです。環境はEC2のUbuntuを利用したのですが、ネットワークの勉強をしつつもLinux操作にも多少慣れることができるのも一石二鳥感があってとても良かったです。いずれはラズパイ等のマシンを複数台用意して物理的にもネットワークの実験をしてみたいです!
リーダブルコード
二冊目におすすめしたいのは言わずと知れた名著の「リーダブルコード」です。他の人や未来の自分が理解しやすいコードを書くためのtipsが網羅的に書かれています。
こんな人におすすめ!
・プログラミングを始めて間もない
・コードレビューで可読性に関する指摘をよくもらう
・変数名の命名に迷う
おすすめポイント
表紙はお堅いのですが、蓋を開けてみると可愛いイラストと分かりやすい説明でとても読み易かったです。サンプルコードも読み易く、比較的ライトに読めるかと思います。私は本書を2周読んだのですが、読む前に比べて可読性に関するレビューの指摘は格段に減った(まだまだレビューで変数名等の指摘はたくさん頂く。命名ってむずかしい。。)ので本当に読んで良かったなと思ってます。定期的に読み直したい一冊ですね!
SCRUM BOOT CAMP
三冊目におすすめしたいのは「SCRUM BOOT CAMP」です。本書はそもそもスクラムとは何なのか、架空の開発現場を題材にスクラム開始時から時系列に沿ってスクラムをどうやって進めていくのかを学ぶことができます。
こんな人におすすめ!
・アジャイルとは何かが分からない
・スクラムとは何かが分からない
・スクラム開発の経験がない
おすすめポイント
アジャイルの思想がまとまったサイトやスクラムを進める上でのガイドブックがweb上で閲覧できるのですが、結構堅苦しい言い回しが多く個人的には読みづらかったものの、本書では分かりやすい言葉で説明がされていて非常に理解がし易くとても助かりました。本書を読んだ後にアジャイル開発宣言やスクラムガイドブックを読むと本書を読む前よりもかなり内容が入ってきやすくとても良かったです。特にスクラムの経験がない方に特にお勧めしたい一冊となっております。
現場で役立つシステム設計の原則
4冊目におすすめしたいのは「現場で役立つシステム設計の原則」です。本書はコードの変更を楽にするためのオブジェクト指向開発の原則を学ぶことができます。
こんな人におすすめ
・オブジェクト指向がよく分からない(未だによく分かってない)
・タスクをこなす時にどこに何を書けばいいのか自信がないときが多い
おすすめポイント
弊社ではクリーンアーキテクチャを採用していて今となっては日々メリットを感じてはいるのですが、最初は少しの変更をするだけでいくつものファイルを変更しなければいけず、クリーンアーキテクチャを採用する意味やメリットが全然分かりませんでした。しかし本書を読むことによって、ドメインごとに業務ロジックを分けて書いたり、アプリケーションコードからデータの永続化層を隠蔽したりする意味やメリットが少しだけ理解することができました。プロジェクトのコードに当てはめながら書籍を読み進めることによってかなり理解が進んだと感じているので、本書を読むときはぜひご自身のプロジェクトのコードに当てはめながら読んでみてください。
雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本
5冊目に紹介するのは、「雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して、手を動かしながら学べる本」です。ハンズオン形式でOAuth認可のフローを手を動かしながら学習することができます。
こんな人におすすめ
・OAuthがそもそも何か分からない
・認可コードとアクセストークンの違いが分からない
・OAuthは認証の仕組みだと思っている
・OAuthの仕様書を読み解くのがしんどい
おすすめポイント
登場人物が多くなかなか理解するのが難しいOAuth2.0の仕組みをOAuth2.0の仕様書よりもかなり分かりやすい言葉で説明してあります。GoogleのAPIを利用しつつ認可のフローをハンズオン形式で学ぶことができます。OAuth2.0の仕組みについては最低限理解できたので、OAuthを拡張した認証の仕様であるOpenID connectについても今後学んでみたいと思います。本書と同じシリーズで「OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本」があるのでこちらを読んでみるのも良さそうです。
ビジネス教養としてのウイスキー
最後に紹介するのは「ビジネス教養としてのウイスキー」です。エンジニアリングとは全く関係のない書籍なのですが、コミュニケーションの上で非常に役立ったのでご紹介させていただきます。こちらの本はウイスキーの歴史、ウイスキーの基礎知識、ウイスキーを取り巻く現代のビジネスについて学ぶことができます。
こんな人におすすめ
・ウイスキーが好きだけど、歴史や種類については良く分からない
・ウイスキーに詳しくなってドヤりたい
・年上の方と共通の趣味がないことが多い
おすすめポイント
去年までは大学生で関わる人のほとんどが同年齢で共通の趣味・話題があることが多かったのですが、社会人になってから結構歳の離れた方とお話しをする機会が増えました。もちろん共通の趣味等があることもあるものの、なかなか共通の話題がないこともしばしばありました。そんな中で年上の方とお話しをする際にウイスキーの話は結構盛り上がることが多かったのでウイスキーをちょっとお勉強しておいて良かったなと思っています。同じようなタイトルで日本酒の書籍もあるみたいなので、ぜひ日本酒の書籍も読んでみたいですね。昨日もバーに行ったら隣の席の知らないおじさんとウイスキーの話で盛り上がり、一杯ウイスキーをご馳走していただきました!ラッキー!
まとめ
私は情報系の学部の出身ではなく、プログラミングを幼い頃からやっていたわけでもないので、書籍を通じてごっそり抜けてしまっている基礎的な情報を体系的に書籍で学べたのでとても良かったと思っています。その一方で時には仕様書等を頑張って読んで、自分で体系建てて理解できる力も養っていきたいと思います。さらに2年目以降はインプットするだけはなくアウトプットの量と質をもっとあげていきたいですね!
明日のアドベントカレンダーは、大変お世話になっている先輩エンジニアの早坂さんによる「釣りばっかりしているエンジニア」です。ちなみにエンジニアについての話は全くなく、釣りへの愛を語ってくれるみたいです。楽しみなタイトルの記事ですね!釣り好きの方は必見の記事になるかと思いますのでお見逃しなく!!
大和田 健太 Kenta Owada
エンジニアリング統括部 サービス開発部 第3グループ
※2021年12月現在の情報です。