SEとして現場で働く基礎になる本5選

# はじめに
以下のイベント参加記事です。

https://qiita.com/official-events/8746fa99d4e403fad3d1

## 紹介内容
この記事では、何か特定言語の専門書 __ではなく__
SEとして現場に出る時(もしくは出た後)に役立つ
__だいたいこれがあればなんとかなるでしょう__ という
幅広く活用できそうな本を紹介します。

「とりあえず言語本でプログラミングは勉強した」けど…
「他にも必要な知識だらけで目が回りそう」、
「仕事ではどんな知識が必要なのか分からない」
という方々にオススメの欲張り5選です。

## 読む前のアドバイス
読む方のレベルにより「読みにくい、とっつきにくい」と感じる本もあるかもしれませんが、
無理して全てを読む必要はありません。
少しずつでもいいですし、一度流し読みして都度読み返したり
かいつまんで読んでも良いんです。焦らずゆっくり理解しましょう。

## 品書き
- この1冊ですべてわかる 新版 SEの基本
- リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
- 問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
- スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ)
- ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

## 各本紹介
※画像クリックで各本のAmazon販売ページに飛べます。(リンク切れの場合はご容赦ください)
### この1冊ですべてわかる 新版 SEの基本
[<img width=200 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1010426/6c5d4cb4-0cf0-daf8-969f-57bae8c930dc.jpeg">](https://www.amazon.co.jp/dp/4534059078/)

■オススメポイント
「そもそもSEとは？」というフワッとした疑問を解決してくれます。
　・SEとは現代社会の状況に対し、どのように課題発見をし、解決に至るのか
　・そのために必要な様々なスキル(マネジメントやテクニカル、ヒューマンなど)
　・IoT、ビッグデータ、AIといった活用すべきIT技術
大まかに上記の内容でSEのあるべき形を示してくれるのでしっかり理解できます。
(難しい項目についてある程度飛ばしたとしても、
SEのイメージができるので未経験者、スキルアップを狙う方、など様々な方にオススメです)

---

### リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
[<img width=200 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1010426/2b3ac938-52bf-bf60-b4bc-43217f5506b6.jpeg">](https://www.amazon.co.jp/dp/4873115655/)

■オススメポイント
独学でプログラミングを身につけた方、
チームでの開発未経験者、
リファクタリングをどうすれば良いか分からない
など「読みやすい綺麗なコードが分からない」という方々にピッタリです。
　・勢いでコーディングしたけど、数日後に読み返したら「？」だらけになる
　・レビューや相談で他者にコードを見せた時に「全く読めないが？？？」という反応をされる
こういった問題を解決するための様々なテクニックが紹介されています。
(状況を揶揄した挿絵も刺さる人には刺さるのではないでしょうか)

__リファレンスのように「何かあれば読み返す」といった感じで是非持っておきたい本__ です。

---

### 問題解決のための「アルゴリズム×数学」が基礎からしっかり身につく本
[<img width=200 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1010426/54f6331f-9f11-d1ec-a008-46690a17ff9f.jpeg">](https://www.amazon.co.jp/dp/4297125218/)

■オススメポイント
数学・アルゴリズム、どちらが苦手な人でも分かりやすく正確に理解できるようになっています。
(数学的な解説が図形付きであり、その後にコードに落とし込んだ解説、という構成で読みやすいです)
　・リーダブルコードを参考にしたけど、まだ効率良くコーディングできる気がする
　・処理は実装できたけど、やたら重たくなってしまった
といった方向けかと思います。

__※記載されているサンプルコードはC++ですがGitHubからPython、Java、Cのコードが入手可能です__

基本的には「競技プログラミング」のコーダー対象のようですが、
業務でのコーディングにも充分に活かせる内容だと思います。

---

### スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリわかる入門シリーズ)
[<img width=200 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1010426/f66dd6f9-8695-5735-0171-c85412c6d521.jpeg">](https://www.amazon.co.jp/dp/4295005096/)

■オススメポイント
「SQLはどういうものなのか」という基礎の基礎から学ぶには抜群に分かりやすいです。
　・「SELECT～」とか見たり聞いたことはあるけどよく分からない
　・「DBMS…なにそれ」、「まず用語が分からない」
など苦手意識があったり手を出すのに躊躇している方にはピッタリかと思います。

ただ、本書で推している「すぐSQLが実行できる・環境構築不要」が売りの
「dokoQL」というアプリですが、使いにくいという意見もあるのでその点はご注意ください。
(筆者は別に構築した環境で実行したので、単純に書籍として評価しています)

---

### ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識
[<img width=200 src = "https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1010426/cce6446b-3681-ac4f-f351-d0e0689c3394.jpeg">](https://www.amazon.co.jp/dp/4822283119/)

■オススメポイント
「ブラウザにURLを入力してからWebページが表示されるまで」を
「探検隊」という形式で順を追って図を駆使しながら説明しているので
段階を踏みながら理解することができます。
　・「TCP/IP」とかいきなり言われても分からない
　・環境構築で「192.○.○.○/24」とか出てきたけどイマイチよく分からない
　・外部とやり取りするプログラムを作ったけどエラーが出てよく分からない
という方に向いているかと思います。

---

# さいごに
どの本もどこかで紹介されてはいますが、
筆者が __これは鉄板だ！！__ と思った手に取りやすい本を選んで紹介しました。

筆者の語彙力が少ないためか「オススメポイント」が
多少、定型文のようになってしまっている点はご容赦ください。

紹介した中に「初心者には厳しい…」と感じるような書籍もあるかもしれませんが、
「この辺を読んでおけば現場の会話にある程度付いていける」と思ったものに絞ったので、
「読む前のアドバイス」章に書いたように
無理をして読む必要はありません。

この記事を読んでいただいた方の
新たな発見や、スキル・知識の向上に繋がれば幸いです。