Web系に転職する前に有り余った有給休暇でたくさん勉強した

 この記事は[mohikanz Advent Calendar 2018](https://adventar.org/calendars/2950) の2日目です。前職の余った有給休暇を利用して、やりたいと思っていたけどできなかった事を一気にやっつけました。

 SIerからWeb系への転向になるのですが、長らくやってきたシステム開発／設計／クラウドインフラ／マネジメントのスキルでは足りない要素が山積しているので、最初はマインドマップで不足していることとやりたいことを適当に洗い出しました。この中から具体的なトピックをカンバン化して適当に見積もり、できる範囲で進めていきました。プライベート（？）でやりたいことも載せていますが、本記事ではテック系で実行したトピックについて記載します。

![img](https://qiita-image-store.s3.amazonaws.com/0/130874/b7ba73e9-f63d-b31d-f48c-7e1b199c3390.png)

# コンテナ関連の学習
 Docker/Kubernetes を中心に学習しました。紙の書籍中心で勉強したい派閥なのでいくつか本を購入しました。読書感想文になります。

## [プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化](https://www.amazon.co.jp/dp/B07BHK5KX7) 🍅15
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/0ba9a810-5ebc-cab3-903b-82051af183b1.png)


 Docker の入門用として読みました。Docker コマンド基礎が覚えられたのと、Kubernetes の第一歩を踏み出せたのと、CGP をほとんど触ったことがなかったので、ワクワクしながら触って学ぶことができました。Docker と周辺のエコシステムがすごい良くできていてすげー！（語彙力）となりました。
 本の感想としては、 `1章インフラ基礎` は飛ばしました、 `4章コマンド` の説明は単調で眠いけど一通り手を動かすことで docker コマンドを覚えられました。 `5章` からオーケストレーションに進みますが、手順に間違いがありトラシューに時間が奪われたのが残念でした。
 `kube-dns` や `fluentd` は GKE さんがよしなにやってくれているので Kubernetes / GKE のコア部分は全然理解できておらず、まだまだ感があります。さらに学習してプロダクションにおけるオーケストレーション・モニタリング・CICDパイプライン・のユースケースまで把握したい気持ちになりました。

## [Docker/Kubernetes 実践コンテナ開発入門](https://www.amazon.co.jp/dp/B07GP1Q3VT/)  🍅2n
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/cc993314-b25c-69bb-8e34-63056f39b9e8.png)

 Docker から Kubernetes まで基本的なところを抑えることが出来る良書でした。
 `1章` `2章` の基礎的なところは学習済みなのでさらっと飛ばし、`章3章` ではマイクロサービスな（Goで書かれた）アプリケーションをComposeでデプロイ、`5章` `6章` ではさらにローカルKubernetesとGKEにデプロイ、`7章` `8章` では複数、シークレット管理、デプロイ、ロギング 等 コンテナ運用に関わる要素を周辺ツール踏まえて実地的に学習できました。前述の `` よりもより Kubernetes/運用周りに分量が多く割かれており、周辺ツールのデファクトなものも取り入れて解説されているため、すごく実地に根ざした内容で本番運用のイメージが把握しやすいものでした。

## コンテナ関連研修へ参加
 AWSの研修に（自費）参加しました、感想はQiitaに上げました。
[Running Container-Enabled Microservices on AWS を受講しました＆感想 - Qiita](https://qiita.com/saitotak/items/964130b57a41f1f6ac30)

# エンジニアリング/時間管理/アジャイル等の勉強
 書籍でアジャイル開発等には触れているものの、実地でがっつりはできていないので、理解を深めるため書籍ベースで勉強しました。

## [エンジニアリング組織論への招待　～不確実性に向き合う思考と組織のリファクタリング](https://www.amazon.co.jp/B079TLW41L/) 🍅11
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/432dcd6c-7365-fb25-ea88-f45d39e43ff5.png)

 最高に面白かったです。エンジニアリングや組織における `不確実性` を認識し、思考法やメンタリングの技術、チームや組織のあり方について体系的に整理し、説明してくれる本です。
`1章` ではエンジニアリングとは `「曖昧さ」を減らし、「具体性・明確さ」を増やす行為` であり、企業やチームは `不確実なものを確実なものに変化させる「処理装置」` であると説明がなされます。経営者や顧客のアイデアを実現する装置なのですね。 `不確実性とエントロピー／認知の歪み／ベーコンのイドラ` など心理学だか哲学書を読んでいるのかな？という説明が続くのだけれど、筆者の `突き詰めると、プリミティブな原理原則で説明できる` 、という想いがあるのだと伺えます。その後の `2章 メンタリング` 、`3-4章 アジャイルなチーム` 、 `5章 組織論` と、不確実性をどう向き合い解決するかという説明が、1on1から企業間のレベルまで話が広がり、最後は企業間の外注コストと内製化、組織構造まで踏み込んだ内容となっていきます。経営層からチームの生産性を上げたい開発の現場まで、不確実性と戦う全ての人に、次の行動のヒントを与える一冊です。

## [カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで](https://www.amazon.co.jp/dp/B078HZKLMB/) 🍅10
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/ebedb504-e0fc-860d-c00e-526a2acdae06.png)

 現場で仕事の進め方をカイゼンしたいけど何から始めたら良いかわからないというモヤモヤを感じている方、`アジャイル`／`カンバン`／`モブプロ` 等キーワードは拾っているけど現場にうまく当て込めていない方、などにオススメできる一冊でした。
 ストーリーを通じてスクラムのブートキャンプを追体験できるような内容（なので手法としては `SCRUM BOOT CAMP THE BOOK` と似ています）アジャイルで普通に開発してます、という方には既知のことが多くさほど役に立たないかもしれません。
 `ジャーニー` のタイトルが示すとおり、ストーリーテリングの形式であり、テクニックの積み上げで説明する方式なので、これ一冊で完結するのではなく、アジャイルのメソドロジーについては `アジャイルサムライ` 等で学び直したほうがいいと感じました。
 ストーリーについて、主人公は `一人から二人へ` 、 `二人からチームへ` 、 `チームから会社間へ` と周囲を巻き込みアジャイルを敷衍していきます。最後の `3部` では 主人公の属するSI事業部の組織・顧客・会社・契約 の垣根を越境していくという胸熱展開で良かった。
 ただし、自身の現場に落とすと「契約は請負で、開発スコープはアジャイル」が超リスクにしかならないので、両者アジャイル良いよねっていう共通認識と、開発スコープもリリース計画も他社任せられる会社感の強い信頼関係を築けていないと、提案ベース／請負な現場では難しいと感じました。


## [DEEP WORK - 大事なことに集中する](https://www.amazon.co.jp/dp/B01N4AT0ZD/) 🍅6
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/b8ab9202-8f90-f84c-0686-d8b8fedab344.png)
 仕事のなかでも、 `浅い集中力でなされる生産性の低い仕事 = Shallow Work` と `深い集中力を必要とし、生産性の高い仕事 = Deep Work`  、の二種類がある、と本書ではカテゴライズされています。
 前者を否定はしないものの、後者の割合と集中度合いを高めるべきだという理論を `成果を最大化する働き方=費やした時間×集中度` という公式で説明がなされます。
 `シャロー・ワーク` は Eメール、Twitter、ウェブサーフィン、資料のまとめなど、深い知識がなくともできる仕事で、`ディープ・ワーク` は鍛冶職人やプログラミングなど深い専門性と集中力が必要とされ、後者の品質を高めるために場所や時間を工夫していこうという事が理論的に説明されていきます。修道僧のような生き方をせよというより、9時-5時の限られた時間帯でいかに生産効率を最大化するかというところがフォーカスになっていて現実的、今までなにも考えずに働いていたことに後悔を覚えました。
 最近の `Digital Wellbeing` や `デジタルデトックス` の流れに通じるものがあります。本書で紹介されませんが `Pomodoroテクニック` など有効活用し時間と生産性を意識していこうと思いました。

## その他積読消化
 Webサービスの基礎的なところ等、もうすこし勉強しておきたい部分があり、こちらも書籍ベースでやっていきました。

## [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック ](https://www.amazon.co.jp/dp/4873115655) 🍅5
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/5547348e-71e3-e003-1cd0-1927d985402c.png)

 いままでノリと感と経験則だけでコードを書いていたのと、あまり他人にコードレビューして貰う機会がなかったので読みました。変数名の付け方やifブロックの書き方やdo-while非推奨とか、実践から来たプラクティスが詰まっています。知ってるわ−という事もあったけれど、`こんな風にしたほうが読みやすかったのね！` という発見がいくつもあり、自分の書いたクソコードをリファクタしたくなっちゃいます。
 `短いコードこそ正義` と思っている方や、`コメントの付け方がわからん` な方、`クラスってどうわけるんや` な方など、プログラミングしながら疑問符が出てきちゃう方にぜひ読んでほしい。英語OKな方はpdfでも読めます。

[he Art of Readable Code (PDF)](https://the-eye.eu/public/Books/IT%20Various/the_art_of_readable_code.pdf)

## [HTTPの教科書 ](https://www.amazon.co.jp/dp/B00EESW7K0/) 🍅6
![image.png](https://qiita-image-store.s3.amazonaws.com/0/130874/655f9097-2d5f-8c1f-7621-a28275453fa9.png)


 タイトルの通り HTTP/1.1 のプロトコルとWebの仕組みの教科書です。Web 技術の基礎的なところから理解しておこうと読みました。
 TCP/IP、DNS などベーシックなところの説明、HTTPヘッダーとレスポンスコードの踏み込んだ仕様の説明、Webへの攻撃時技術など周辺部まで説明されています。ちょっと古い本なのでHTTP/2やQUICは入っていません。リファレンス的に使うとおもうので、本棚に忍ばせておきたい一冊です。

# 未読記事消化

![srcshot](https://qiita-image-store.s3.amazonaws.com/0/130874/ead5c931-81ae-e0c5-414f-63f9baab0cc1.png)


 Webニュースを読むのが好きで、普段はあとで読む記事をPocketにストックしているのですが、時間がなく放置してしまっているものがあったので消化しました。ただ、時間が経つとどうでもいい記事が多かったです…。

# 勉強会/セミナー参加
 勉強会やセミナーに思う存分参加することができました。この期間に参加した勉強会は以下で、面白かったものはノートを雑にQiita公開しました。今後も業務後に積極的に参加していきたいと思います。

- [Cloud Developer - docker #1 (初心者向け) - connpass](https://cloud.connpass.com/event/94937/)
- [Serverless Meetup Tokyo #10 - connpass](https://serverless.connpass.com/event/98538/)
    - [Serverlessconf Tokyo 2018 カンファレンスノート - Qiita](https://qiita.com/saitotak/items/f07f9c3186f7b69e7c52)
- [BIT VALLEY 2018 - connpass](https://sbv.connpass.com/event/95341/)
- [NoOps Meetup Tokyo #1 recovery - connpass](https://noops.connpass.com/event/95088/)
    - [NoOps Meetup Tokyo #1 カンファレンスノート - Qiita](https://qiita.com/saitotak/items/2f85918aa329c4af2073)
- [【またもや増枠】転職活動記LT 〜確かな道のり〜【たのしく・情報交換】 - connpass](https://ex-sier.connpass.com/event/97090/)
- [【満員御礼】AWS、DevOps、AIや話題のレジなし店舗まで！クラスメソッド主催カンファレンスを10/5（金）に開催します ｜ DevelopersIO](https://dev.classmethod.jp/news/developers-io-2018-outnumber/)
- [NoOps Meetup Tokyo #2 - connpass](https://noops.connpass.com/event/103846/)
    - [NoOps Meetup Tokyo #2 カンファレンスノート - Qiita](https://qiita.com/saitotak/items/0015d1c8a845c86274a1)


# 感想
 Webサービス作ってみるとか、一部やりたいけどできていないところが未だありますが、たくさん学習時間にあてることができて満足しました。まとまった休暇で普段やれないことをやるのは楽しかったです。こんど転職するとき（？）もやりたい。