現役エンジニアが選ぶ、エンジニアを目指す上でとりあえず読むべき本3選

# 読んで欲しい方
- エンジニアになりたいけれど、何を勉強したらいいの？という人
- 意欲はあるのだけど、何をやればいいのか分からん人
- プログラミングの勉強はし始めたけど、これだけでいいのか不安な人

各言語の勉強にオススメの本は今回は割愛させていただきました。
どんな言語をするにしても、エンジニアになる上で共通して大切な内容を含んでいる本を３冊紹介させていただきます。

# 私は誰？
・大学時代は非情報系の理系
・新卒で営業職3年
・1年半前に未経験からエンジニア転職

やっと一人前のエンジニアになってきた(?)タイミングで
「エンジニアになりたての頃の自分にオススメするとしたら？」という観点でオススメの本を選んでみましたので、エンジニアを目指して勉強中の方の参考になれば幸いです。

## [『リーダブルコード』](https://www.amazon.co.jp/dp/4873115655/)
<img width="250" alt="51MgH8Jmr3L.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1177227/57f3f8d7-a247-ac3c-aef2-a89ddead4793.jpeg">

個人開発と違い、実務ではチームで開発をすることがほとんどです。
「いいコードとは何か？」
「綺麗なコードとは何か？」
という基準がないと、**ただ動くだけのガラクタコード**を書いてしまいかねません。

チーム開発時には、お互いにコードレビューをする場合も多いです。
突っ込みどころが多すぎるコードを書いていると周りの信頼を得ることができません。
自分が他の人のレビューをするときの視点にもなるので、最低限読んでおきたい本です。

また、以下のような点からも、実務において綺麗なコードを書く価値は非常に高いです。
- コードを書く時間より読む時間の方が多い
- 自分が書いたコードでも２週間経てば忘れる
- 読みにくいコードは、機能改修時の作業時間を増やす

具体例を交えて非常に分かりやすく書かれているので、すぐに読了できるかと思います。定期的に流し読みするのがおすすめです。 


可能であれば、
**[『リファクタリング(第2版): 既存のコードを安全に改善する』](https://www.amazon.co.jp/%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0-%E7%AC%AC2%E7%89%88-%E6%97%A2%E5%AD%98%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B-OBJECT-TECHNOLOGY/dp/4274224546/ref=sr_1_1?crid=12ZYV5ATZVXOJ&keywords=%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0+%E6%97%A2%E5%AD%98%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E6%94%B9%E5%96%84%E3%81%99%E3%82%8B&qid=1646616895&s=books&sprefix=%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0+%2Cstripbooks%2C196&sr=1-1)**
も読んでおくことをおすすめします。
より良いコードを書くためのポイントが、非常に体系だって紹介されています。

## [『ネットワークはなぜつながるのか』](https://www.amazon.co.jp/exec/obidos/ASIN/4822283119/nebokehero-22/)
<img width="250" alt="81sBKxze5ML.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1177227/0ecdf505-0df7-1b0a-db92-91edc3295aa7.jpeg">

ブラウザにURLを入力してからページが表示されるまでを　探検ツアーのように説明されている本です。
　
基本的に、
**「リリースしたサービスが正常に動くようにする」**
ことが、エンジニアの仕事です。

**「リリースしたサービスがそもそもどんな環境で、どのように動いているのか」**
を知らずして、仕事が上手くいくことは稀でしょう。

こうした知識がないと、AWSなどのクラウドの技術を理解することが困難ですし、デバックの際に原因の特定も困難になります。
クライアントやチームメンバーと話していても、前提知識として当然のように話に出てくるので、いち早くキャッチアップすることをオススメします。

少し難しい箇所もあるので、分からないところはスッと飛ばしつつ、まずは通読するのがオススメです。(自分も2周読んで、やっと理解が追いついた箇所が多々ありました)


また、可能であれば
**[『Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)』](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/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2BR55MQPY0M0M&keywords=web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B&qid=1646616862&s=books&sprefix=web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%2Cstripbooks%2C218&sr=1-1)**
も読んでおくと良いと思います。
いきなりこちらを読むと、「？？」となってしまうかもしれませんが、「ネットワークはなぜつながるのか」の後に読むと、理解が深まります。


## [『新しいLinuxの教科書』](https://www.amazon.co.jp/%E6%96%B0%E3%81%97%E3%81%84Linux%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E4%B8%89%E5%AE%85-%E8%8B%B1%E6%98%8E/dp/4797380942/ref=sr_1_1?crid=WMFBDVZ1CJ4N&keywords=%E6%96%B0%E3%81%97%E3%81%84linux%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8&qid=1646611091&s=books&sprefix=%E6%96%B0%E3%81%97%E3%81%84li%2Cstripbooks%2C210&sr=1-1)
<img width="250" alt="717OZeBG3DL.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1177227/b792a792-9f7d-1479-df9e-88e50081ba7d.jpeg">

エンジニアとして働いていると、Linuxコマンドを使ってディレクトリ移動、ファイルの読み書きなどを行う機会が多くあります。(GUIでも可能なものもありますが、コマンドでしか操作できないものにいずれぶつかります）

また、慣れてしまうとコマンドの方がかなり早いので、最初の段階からコマンドに慣れていくのが絶対にオススメです。

最初から完全にコマンドを覚える必要はありません。
「〇〇の操作ができるコマンドある」とだけ思い出せれば、ググってコマンドを実行できるので。

一通りのLinuxコマンドを学ぶのに、非常にオススメの本になります。


# 最後に
技術書は安くない値段するので、中々手を出しづらいところもあるかもしれませんが、
ネットの記事などは特に、玉石混合なので、勉強する際の情報源として技術書は外せないかなと思います。

(ちなみに弊社は社内に技術書が山のようにあり、自由に読むことができるので非常に助かっています。社長ありがとうございます)

弊社では共に成長していける社員を募集しています！
ご興味ある方は[こちら](https://www.recruit.nuco.co.jp/)より。