今まで様々な本を読んできましたが、その中でも現状のスキルの一助となっている本をピックアップしてみました。
エンジニアとして若年の方を対象としています。
主観も入り混じったコラムのようなものなので気楽に読んでいただけると嬉しいです。
各書籍について、個人的なおすすめ度を示そうかと思ったのですが
いずれも甲乙つけがたいほど優れているためやめてしまいました。
キタミ式イラストIT塾 基本情報技術者(きたみりゅうじ, 技術評論社)
ジュニアエンジニアの登竜門ともいえる基本情報技術者の参考書です。
僕は新卒1年目の時、他にも基本情報技術者の参考書を1冊手にとったことがありました。
しかし文字びっしりであまり頭にはいってこず、思い悩んでいた時に巡り合った本です。
この本の特徴としては、技術的な説明を文字だけでなくイラストや漫画で表現しているため
対象をイメージして理解することができます。
このテキストで基本情報技術者の勉強をした結果、現場における会話やドキュメントの理解度がいっきに上がった記憶があります。
実際に資格取得までは至らずとも、一度読んでみることをお勧めします。
Good Code, Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考(Tom Long, 秀和システム)
ソフトウェアの設計に関する書籍です。
内容は比較的容易ですが、実践的な内容だと思います。
個人的に気に入っているのは「Chapter 4 エラー」です。
設計に関する1つの指針を得られるため、「機能は実装できたけどこの書き方でいいのかな……?」っていう迷いを感じることの多い方におすすめです。
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版 (徳丸 浩, SBクリエイティブ)
セキュリティというと、攻撃を防ぐレイヤーが書籍によって違ったりしますが
この書籍はアプリケーションに特化しています。
エクスプロイトコード(もしくはHTTPリクエスト等)をサンプルアプリケーションの脆弱性をつくように実行することによって、より攻撃方法・防御方法について理解を深めることができます。
(適切に防御をするために敵の攻撃手法について理解しておく、ということは大事だと思います。)
サンプル環境として、僕は書籍の通りVirtualBoxで構築しましたが
今はDockerの環境も提供されているため、より学習しやすくなったと思います。
ネットワークは何故つながるのか(戸根 勤, 日経BP)
本1冊全体で、自分の端末から送出されたパケットがサーバへ届き、またサーバからパケットが送られてくる旅になっています。
WEBブラウザのURLバーにURLを打ち込んでエンターキーを押下した時に、
- パソコンの中で何が起きているのか
- パソコンからどうやってパケットが送出されるか
- パソコンから送出されたパケットがどこを通ってサーバへ到達するか
が理解できます。
ネットワークについてよくわからない人でも理解できる内容であり、またレイヤーの低いところも取り扱っているため多少心得のある人でもよりネットワークへの理解がより具体化すると思います。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ(ミック, 翔泳社)
SQLという言語の「中級者」になるための本です。
逆に言えば、初級者レベルの本ではないため自分の目的にあった本であるかは電子書籍のサンプル等に目を通して判断したほうがよいかもしれません。
技術書としての価値が非常に高い本だと思いますが、それと同時にパズルのような面白さもありおすすめです。
以下のような人にお勧めだと考えています。
- 1)エラーが出ないクエリを書けるが、「なんでこう書く必要があるのか」というSQLの本質的な思想に興味のある方
- 2)SQLの本来持つパワーを存分に発揮し、テーブルという全体集合から欲しい部分集合だけを効率の良く取得するにはどうすればいいんだろう?ということに興味がある方
- 3)手続き型Likeなプログラムを書くことが多く、SQLという言語の構造に疑問や戸惑いを抱いている方 ※1)と近いかもしれません
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】(武内 覚, 技術評論社)
- 最近インフラエンジニアとしてキャリアを築き始めた方
- 普段CliでLinuxを操作しているアプリケーションエンジニア
がもう少しLinuxカーネルに踏み込んで理解してみたい、という場合はこの本が最良だと思います。
僕のようなLinuxについて詳しくないエンジニアでも本格的にLinuxカーネルについて学び始める第一歩となるような本が欲しいと思い、
本屋のLinux本を色々めくってみて最終的に行き着いたのがこちらの書籍でした。
少しレイヤーの低いところに踏み込んで浅く一通り学習してみる、というような内容だと思います。
通して読むと、熟練のインフラエンジニアの方ともLinuxの会話ができるようになると思います。
世界一流エンジニアの思考法(牛尾剛, 文藝春秋)
今まで紹介してきた本は
- 読んだ方がいい
- 自分のキャリアプランに照らして、あるいは現状の自分のレベル的に読まなくても問題ない
かが人によって分かれるものもあったように思います。
しかしこの本に関しては全てのエンジニアにおすすめだと考えています。
著者である牛尾 剛氏の周囲におけるハイスキルなエンジニアを事例に、
どのようにシステム・問題に向かうべきかの指針が得られる本だと思っています。
(著者自身も非常にハイスキルなエンジニアだと思いますが、、)
現場において様々なタスクをこなしたり問題をこなせるようになると
エンジニアリングというものにマンネリ化を感じる人も多々いると思います。
(僕自身経験があります。)
そのようなときに技術的なモチベーションを取り戻す、もしくは刺激を受ける本です。
- エンジニアリングにマンネリ化を感じてしまっている人
- 問題に当たった時に、場当たり的に解決してしまっていることに何となく不安を感じている人
- できるエンジニアがどのようにシステムを把握しているか・問題に当たっているかが気になる人
などは是非手に取ってみてほしいです。
僕は最近になってようやく本質に触れようとするようになったように感じていますが、それには間違いなくこの本が一助になっています。
腰を据えて読む必要はなく、通勤等のお供にするのもよいと思います。
最後に
ここまでお読みいただきまして、ありがとうございます。
この記事が皆様の技術書を手に取るきっかけになれば非常に幸いです。
また、おすすめの書籍がありましたらご紹介いただけると嬉しいです。