未経験から実務に入って読んでよかった良書たち

# はじめに

僕はもともとメーカー勤務で未経験からWEB業界に入ったのですが、はじめのうちはわからないことだらけで苦労しました（今もそうですが）。ですがプライベートで少しずつ勉強を重ねることで、わからないなりにも業務をこなせることができるようになってきました。ということで今回は実務に入ってから読んだ業務をこなす上で役立った良書たちを紹介していこうと思います。

# リーダブルコード

<img width="200" alt="readable_code" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/aca379f4-b5fe-de04-5514-27a7c9e305e7.png">

https://www.amazon.co.jp/%E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89-%E2%80%95%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%9F%E3%82%81%E3%81%AE%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%A7%E5%AE%9F%E8%B7%B5%E7%9A%84%E3%81%AA%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-Theory-practice-Boswell/dp/4873115655

超有名ですが、やはり有名になるだけあって読む価値の非常に高い本でした。とくに変数名の付け方や書くべきコメントについては、この本を読んでから特に注意を払うようになりました。実務に入る前でなく、プログラミングの勉強を始めてすぐに読んでもよかったくらい、エンジニアなら必読の良書です。机のそばに置いてコードの書き方に迷った時は何度も読み返しています。

# イラスト図解式 この一冊で全部わかるWeb技術の基本

<img width="200" alt="basic_web" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/2048d7e4-e474-35d7-4315-06624b97eb5c.png">

https://www.amazon.co.jp/%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E5%9B%B3%E8%A7%A3%E5%BC%8F-%E3%81%93%E3%81%AE%E4%B8%80%E5%86%8A%E3%81%A7%E5%85%A8%E9%83%A8%E3%82%8F%E3%81%8B%E3%82%8BWeb%E6%8A%80%E8%A1%93%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%B0%8F%E6%9E%97-%E6%81%AD%E5%B9%B3/dp/4797388811

Web技術の勉強は難しいです。何故難しいかというと技術のイメージが掴みにくいからだと思います。HTTPとかセッションとか言葉では何となく理解できるけど、実際には何が起きているのか全然わからない。そんなときに読んで自分の求めていたのはコレだ、となった本です。 Webの基礎技術をイラストで図解しながら解説してくれるので、理解しやすく何より楽しく学ぶことができます。最初にこの本を読んでおけば、WEB技術の全体像が掴むことができ、会議で他のエンジニアが何を言ってるいるかわからない状態から抜け出すことができると思います。

# Webを支える技術

<img width="200" alt="Webを支える技術名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/901e0c3c-3322-6406-9ece-d3ffb624be96.png">

https://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%EF%BC%8CURI%EF%BC%8CHTML%EF%BC%8C%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus-ebook/dp/B07JK7FZH2

「イラスト図解式 この一冊で全部わかるWeb技術の基本」から一歩進んだ技術書です。イラスト図解式はWeb技術の基礎を広く浅く学ぶことができますが、この本はそこからさらに深いところまで解説されています。Webの歴史から解説が始まり「URI」「HTTP」「ハイパーメディアフォーマット」「Webサービスの設計」まで密度の高い解説をしてくれます。実は筆者は実務に入る前にこの本を読んだのですが、書いてある内容をあまり理解することができませんでした。しかし実務に入ってある程度開発を経験してから読み直すと、書いてあることの意味がなんとなくわかるようになっていることに気づきました。例えば最初はchrome devtoolのnetworkタブの内容が呪文のように見えましたが、この本でHTTPについて学んだ後は「わかる、何が書いてあるかわかるぞ！」となりました。実務経験半年くらいになったら読むと良い本だと思います。

# プログラムはなぜ動くのか

<img width="200" alt="プログラムはなぜ動くのか" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/3910268b-e7b8-4ab5-ea93-37a87db5b666.png">

https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AF%E3%81%AA%E3%81%9C%E5%8B%95%E3%81%8F%E3%81%AE%E3%81%8B-%E7%AC%AC%EF%BC%93%E7%89%88-%E7%9F%A5%E3%81%A3%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98-%E7%9F%A2%E6%B2%A2-%E4%B9%85%E9%9B%84-ebook/dp/B094J3CK1C

いわゆるコンピュータサイエンスについて学べる本だと思います。僕は理系の大学を出ましたが専攻は機械系だったのでCSについては学んだことがありませんでした。この本は僕のようなエンジニアやってるけどCSは学んだことがないという人におすすめです。2進数の解説から始まり、変数にデータを代入した時裏では何が起こっているのかをイラストを用いながらわかりやすく解説してくれます。特にネイティブコードに変換されたC言語を読み解いて、プログラムがコンピュータにどのように伝わっていくのか、for、ifの処理はどのように実現されているのかの解説はとても面白かったです。読み物としても面白いし、プログラミングに関してブラックボックスになっている部分を知ることができるのでおすすめの本です。

# マスタリングTCP/IP

<img width="200" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/5fce0229-ce5c-3b70-980e-d75e581506c1.png">

https://www.amazon.co.jp/dp/B0827QNDNT/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

ネットワークの入門書です。ネットで購入したので届いた時に思ったよりも分厚くてビックリしました。しかしその分厚さの理由は丁寧すぎる解説にあります。イラストを多用しているのでネットワークというイメージしづらい技術の動きがわかりやすくまとまっており、読み物としても面白かったです。「プログラムはなぜ動くのか」と同様に、普段意識することのない領域で実際には何が行われているのか？を知ることができ読後の満足度は高かったです。ただ、ぶっちゃけ一周読んだだけの筆者は３割くらいしか理解できていません。業務で壁に当たった時などに辞書的に読み返すような本かなと思います。（ネットワークの専門用語は覚えさせる気ねーだろってくらい呪文・・・）

# 手を動かしながら学ぶ TypeScript

<img width="200" alt="手を動かしながら学ぶ_TypeScript" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/6f14b7f9-1b66-ce23-b1d8-efd3ad82c822.png">

https://www.amazon.co.jp/dp/B09KZJXDN1/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

タイトル通り手を動かしながら学べるTypeScriptの実践本です。筆者は業務でTypeScriptを書いてはいますがところどころanyを使ってしまったり、ジェネリクスを使いこなせなかったりと初心者の域を脱することができていません。何とか中級レベルになりたいと[type-challenges](https://github.com/type-challenges/type-challenges)に挑戦したりしてみたのですが、難し過ぎて挫折しました。この本はそんな筆者のようなレベル感の人におすすめです。前半部分でTypeScriptの基礎構文を学ぶことができ、後半から実際にアプリを作りながら前半で学んだ構文をどのように使っていくかを学ぶことができます。解説が非常に丁寧で難易度も高くなくサクサク読み進めることができます。TypeScriptを学ぶならこの一冊だけで十分といってもいいくらい、基礎/応用が同時に学べる良書だと思います。

# Reactハンズオンラーニング

<img width="200" alt="Reactハンズオンラーニング" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/351f0ff8-32f2-831d-4099-dcb6929f7fcc.png">

https://www.amazon.co.jp/React%E3%83%8F%E3%83%B3%E3%82%BA%E3%82%AA%E3%83%B3%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E7%AC%AC2%E7%89%88-%E2%80%95Web%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%81%AE%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9-Alex-Banks/dp/4873119383

今Reactを学ぼうと思ったら買うべき本だと思います。Reactは公式ドキュメントが充実していて、チュートリアルもあるのですが実は情報が少し古いです。具体的には今ではほとんど採用されることのないであろうクラスコンポーネントでの記述例が紹介されており、現在主流の関数コンポーネントでの書き方を学ぶことができません。Reactハンズオンラーニングは関数コンポーネントでの記述例を基礎から解説しているので、これからReactを学びたいという人におすすめです。また実際にアプリを作り、リファクタリングをしながらコードの品質を高めていくような解説の仕方なので、Reactにおける良いコードの書き方やベストプラクティスを学ぶことができます。React初心者から中級者まで万人におすすめできる良書です。

# 時短のキホン

<img width="200" alt="時短のキホン" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/64c6ecd3-25c9-c824-afcb-441c23df5c6f.png">

https://www.amazon.co.jp/%E4%BC%9A%E7%A4%BE%E3%81%A7%E3%81%AF%E6%95%99%E3%81%88%E3%81%A6%E3%82%82%E3%82%89%E3%81%88%E3%81%AA%E3%81%84-%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88%E3%81%8C%E3%81%99%E3%81%94%E3%81%84%E4%BA%BA%E3%81%AE%E6%99%82%E7%9F%AD%E3%81%AE%E3%82%AD%E3%83%9B%E3%83%B3-%E5%90%84%E5%8B%99-%E6%99%B6%E4%B9%85/dp/4799108549/ref=asc_df_4799108549/?tag=jpgo-22&linkCode=df0&hvadid=344431420250&hvpos=&hvnetw=g&hvrand=13095238987085197937&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009256&hvtargid=pla-850464513329&psc=1&th=1&psc=1&tag=&ref=&adgrpid=71103638284&hvpone=&hvptwo=&hvadid=344431420250&hvpos=&hvnetw=g&hvrand=13095238987085197937&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009256&hvtargid=pla-850464513329

一時期少しの間だけですが案件を掛け持っていた時期がありました。そんなとき「あれもこれもやらなきゃいけないし、仕事が永遠に終わらない！」となった時に読んで良かった本です。この本を読んで一番印象に残ったことは「仕事のボールはすぐ投げる」ということです。例えば仕様について曖昧な部分の実装をしなければならなくなったとき、あれこれ自分で推測して実装を行わず、PMを通してクライアントに詳細を聞いてもらうアクションを起こした方が良いということです。その間に明確に仕様が決まっている部分の実装ができるので、作業に無駄が起きません。まあ言われてみれば当たり前のことなのですが、こういった時短の基本的なテクニックを疎かにしてはいけないと再認識できた本でした。ページ数も少なくサクッと読めるのでおすすめです。

# 無　最高の状態

<img width="200" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612354/373f6f38-8185-a153-c667-3464d63d0537.png">

https://www.amazon.co.jp/dp/B099DDJSL9/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1

いわゆるストレスマネジメントの本です。僕はこう言った意識高い系の本が嫌いでほとんど読まないのですが、よくみているのブログの著者が書いていたので読んでみました。結果的にかなり当たりの本で、なんでこんな胡散臭い表紙にしたんだ・・・と思っています。エンジニアをやっていて、しかも未経験から実務に入るとまあ辛いことは少なからずあると思います。そうしたとき、いかにメンタルをすり減らさず仕事をしていくかということは大事です。この本はそんな生活の中で発生するストレスやモヤモヤにどう対処すべきかを、科学的なエビデンスを示しながら紹介してくれるので説得力があります。いわゆる認知行動療法に近いことの解説をしている印象を持ちました。具体的な本の内容については要約するのが難しいので興味を持った方はぜひ読んでみてください。

# おわりに

実務に入ってから色々な本を読み漁ってきましたが、無計画に大量の本を読むよりも良書と言われているモノを何回も読み直す方が学習効果が高いと感じています。今回紹介した本は、まだ経験の浅い筆者のようなエンジニア全員に自信を持ってお勧めできます。興味を持っていただけたのならぜひ読んでみてください。

弊社ではエンジニアを積極採用中です！
今回紹介したような本を購入できる補助制度も充実しています。興味を持った方はご連絡ください！

https://www.arsaga.jp/recruit/