まえがき
SEとして新卒で入社してから3年が経過しました。
3年間を振り返る意味も込めて、新卒で入社してから読んだ書籍について(読んでいる範囲にムラはありますが)ブックリストを作ってみました。
私自身はエンジニアとしてまだまだ未熟な駆け出しの身ではありますが、「今年から新卒でSEはじめたよ!」というような、3年前の私と似たような境遇の方などに何かの参考になれば幸いです。
なお、私については以下のような前提がありますので、ご自身の参考になるかどうか検討される際にはご承知おきください。
- 出自
- 普段のSEとしての業務
- ブックリストについて
- Web上のドキュメントにも多く知恵をいただきましたが、それを挙げ始めると際限がなくなりそうなため、ここでは書籍に限定しました。
- 以下のリストではなるべく新しい版の書籍を載せるようにしました。
- なので、私自身は旧版のものを読んでいるという本が多くあります。
プログラミング言語関連
Java
- 作者:中山 清喬,国本 大悟,株式会社フレアリンク
- 発売日: 2019/11/15
- メディア: Kindle版
まずはこれから入った。Javaの入門書は、読むだけだったら小中学生の頃からいろいろ見ていた記憶があるけど、これはそのなかでもトップクラスにわかりやすいのではないかと感じた。特にオブジェクト指向の説明が、章ごとの読む順序まで指定して書いてあるなど、わかりやすく理解させようとしてくれてとても親切。実際に業務に入ってからも、この本に書かれていることを忠実に思い起こせば、それだけで事足りることも多かった。
スッキリわかるJava入門 実践編 第3版 (スッキリわかるシリーズ)
- 作者:中山 清喬
- 発売日: 2021/04/20
- メディア: 単行本(ソフトカバー)
こちらは業務に入ってからノウハウ集的に必要な時に開くのがよかった。通読には向かないように感じた。
- 作者:ジョシュア・ブロック,柴田芳樹
- 発売日: 2019/05/15
- メディア: Kindle版
2年目くらい、ある程度業務としてコーディングすることが慣れてきた時期に、オブジェクト指向でのより良い設計を習得したくて読んだ。Java以外でもオブジェクト指向を取り入れている言語であれば参考になる部分が多い。
C
低レイヤについて理解したく、そのための一つとして。Cは小学生の頃と学部時代にほんの少し触ったことがあるので抵抗はなかったが、その頃何となくで済ましていた内容もわかりやすく理解することができる良い本だった。
SQL
『スッキリわかるJava入門 第3版 スッキリわかるシリーズ』の後に。これと『スッキリわかるJava入門 第3版 スッキリわかるシリーズ』と『スッキリわかるサーブレット&JSP入門 第2版 (スッキリシリーズ)』を理解すれば、大体のWebアプリケーションの基礎的な仕組みはイメージできるように感じた。
Python
Effective Python 第2版 ―Pythonプログラムを改良する90項目
- 作者:Brett Slatkin
- 発売日: 2020/07/16
- メディア: 単行本(ソフトカバー)
2年目の頃、Pythonを触る機会が増えたので。Pythonは学生時代から触っていたこともあり、何となくで書いてしまえていたが、もう少し良いコーディングができないかと思い手にとった。安くなっていたので洋書版で読んだが、それでも読みやすい印象。
設計・考え方関連
UML・モデリング
1年目、モデリングを理解したくて。UMLというよりはモデリングについての内容が多い印象。モデリングをどのように行うか、難しさも感じつつ知的な面白さがたくさん詰まっている。
UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)
- 作者:マーチン・ファウラー
- 発売日: 2005/06/16
- メディア: 大型本
UMLの記法を思い出すために。表紙裏のまとめだけでも十分価値がある。内容も非常に細やか。
デザインパターン
- 作者:結城 浩
- 発売日: 2004/06/19
- メディア: 大型本
2年目の頃、より良い設計を行うために。全部暗記せずとも、よく利用されるパターンだけでも見ておくと非常に参考になった。
原理・原則・考え方
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者:Dustin Boswell,Trevor Foucher
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
1年目〜2年目に。絶対に読んだ方がいい。「良いコードとは読みやすいコード」という発想をベースに、より良いコードを書くための知見がたくさん詰まっている。
1年目〜2年目に。絶対に読んだ方がいい。コーディングを行うとき、ここに書かれている原理・原則や考え方を思い返すようにしていた。
- 作者:David Thomas,Andrew Hunt
- 発売日: 2021/01/18
- メディア: Kindle版
『プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則』に記載されていたので。内容の網羅性としては『プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則』でいいかも。ただ、思想的な部分はやはりこちらで読んでよかった。第2版も読みたいところ。
- 作者:MartinFowler
- 発売日: 2017/07/15
- メディア: Kindle版
リファクタリングについて、より体系立てて理解するために。何となくでやっていたことをちゃんと捉え直せてよかった。
単体テストなどで、テストケースをしっかり考えられるようになりたくて。ここに書かれている内容を全部そのまま使わなくとも、エッセンスだけでも非常に参考になった。
リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法
- 作者:Andy Hunt
- 発売日: 2009/04/27
- メディア: 単行本(ソフトカバー)
『達人プログラマー ―熟達に向けたあなたの旅― 第2版』と同著者。思想として参考になるところが多かった。
ドメイン駆動設計
VOとかDTOとかServiceとか、「あれってこういうことだったのか!」とこれまで業務で読んできたコードの意味合いを再認識するのに役立った。
Design It! ―プログラマーのためのアーキテクティング入門
- 作者:Michael Keeling
- 発売日: 2019/11/25
- メディア: 単行本(ソフトカバー)
アジャイル/スクラムでの開発で、どんな風に設計を進めたらいいか考えたくて。アジャイルでの開発で設計を考えるということに非常に適した書籍で、とても参考になった。個人的には超おすすめ。
Webアプリケーション開発関連
Javaと合わせて最初に。これと『スッキリわかるJava入門 第3版 スッキリわかるシリーズ』と『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』とでWebアプリの基礎を学んだ。「言語は覚えたけどその先って?」「何がどんなふうに作れるの?」という疑問に、「Webアプリってのが作れて、こんな風に作られているよ」と答えを見せてくれる。個人的には長年のミッシングリンクを埋めてもらえたような感覚。
- 作者:横瀬 明仁
- 発売日: 2018/08/26
- メディア: オンデマンド (ペーパーバック)
Djangoを利用する機会があったので、参考書に。公式ドキュメントで分かりにくいと思ったことを確認するようにした。
コンピュータサイエンスなど理論や基礎的な知識関連
Python計算機科学新教本 ―新定番問題を解決する探索アルゴリズム、k平均法、ニューラルネットワーク
- 作者:David Kopec
- 発売日: 2019/06/26
- メディア: 単行本(ソフトカバー)
計算機科学を学びたくて。実装として手を動かしながら進められて良い。
名著。電気回路・電子回路の理解にも。非常に読みやすく、電気回路・電子回路がどのようにコンピュータとして成立するようになるのか理解できた。
基本情報をとる時に利用。読みやすい。
機械学習・ディープラーニング関連
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者:斎藤 康毅
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
ディープラーニングに興味が出たので、手を動かしながら理解できる書籍として。イメージと合わせて、実装も確認できて学習効果が高かった。これに取り組んだ後にTensorFlow/Kerasなどのサンプルコードを見ると、なんとなくどのようなことをしているのか理解できるようになった。
ゼロから作るDeep Learning ❷ ―自然言語処理編
- 作者:斎藤 康毅
- 発売日: 2018/07/21
- メディア: 単行本(ソフトカバー)
自然言語処理版。前巻と通しで読むのがやはり良い。こちらもおすすめだった。
Linux
Linuxを業務で触ることになるため、その準備として。基本的な部分を一通り押さえていて、かなり助かった。
Linux教科書 LPICレベル1 Version5.0対応
- 作者:中島 能和
- 発売日: 2019/04/08
- メディア: 単行本(ソフトカバー)
資格取得のため。Linuxについて包括的に学べるのもよかった。
ネットワーク関連
歴史的な部分などまで記載されている。途中までは読んだ。
クラウド関連
AWS
AWSの理解のためにも、ネットワークの理解のためにも有効。
業務でLambdaを触ることになったので。Lambdaの基本的な部分についてはこれだけでもかなり押さえられる。ただし、実際の利用時にはここに書かれている知識にプラスしてもう少し学習が必要そう(例えば、Lambdaでmicro-serviceなどの設計書を利用せずに、API Gatewayと自分で紐づけて利用する場合についてなどは、あまり記載がない)なので、あくまでも基礎的な活用方法と概念理解に。
設計・構築のためのパターン集として。
マネジメント・コーチング関連
- 作者:伊藤 大輔
- 発売日: 2017/01/28
- メディア: 単行本
2年目に、少し背伸びして。上司や先輩の仕事について少しは理解できるようになった。
チームメンバーに技術を伝承することが増えたタイミングで。これをそのまま業務中で若手がいきなりやるのは難しいが、考え方として参考になった。
アジャイル・スクラム・リーン関連
- 作者:RachelDavies,LizSedley
- 発売日: 2017/07/14
- メディア: Kindle版
コーチングとはあるが、アジャイルを考えるという意味でも非常に良い。超おすすめ。
- 作者:JonathanRasmusson,西村直人,角谷信太郎
- 発売日: 2017/07/14
- メディア: Kindle版
有名。砕けた感じでアジャイルを理解できる。個人的には『アジャイルコーチング』のほうが好きだが、こちらも良い。
アジャイルでの見積もりの方法を人に説明できるくらいになりたくて。かなり効果はあり。
「新規事業を立ち上げるってどうしたらいいの?」と思いつつ。リーンの考え方は仕事だけでなくいろいろな活動に参考になると感じた。
スクラムで開発を行うことになったので。読みやすいし大切な部分をしっかり押さえている。超おすすめ。
スクラムの考え方などを理解したくて。形式知と暗黙知によるSECIモデルはここで初めて知って感心した。
ノウハウ・エンジニア系エッセイ・自己啓発関連
どのようにしてエンジニアとして知的生産を続けていくか。超おすすめ。
CAREER SKILLS ソフトウェア開発者の完全キャリアガイド
- 作者:ジョン・ソンメズ
- 発売日: 2018/06/22
- メディア: 単行本
エッセイ集・ノウハウ集。項目単位で読めて読みやすく、エンジニア生活の参考になる。
このシリーズ、一巻目がAmazonプライムで無料になっていたタイミングがあり、その時に読んでよかったので。小説形式なので物語として理解できることもあって読みやすく、働くということについて考える良い材料になった。
3年目に、自身の働き方やキャリアについて改めて考えるきっかけとして。図解も多くてとてもわかりやすい上、良い刺激になるような情報が多く書かれていてとてもよかった。おすすめ。
そのほか
法律関連
自分でサービスをするなら、規約って大切になりそう、と思って。法律面について押さえられて、おまけに規約のテンプレートも含まれており、非常に参考になった。
語学関連
- 作者:板垣 政樹
- 発売日: 2016/03/09
- メディア: 単行本
働き始めた頃に見つけて。限定した単語のみでエンジニアとしての英語を理解・利用するという書籍。言われてみれば確かに、という感じで、納得しながら読めた。
リスニング力をつけたくて。これと普段の英語でのポッドキャストの視聴などでかなりリスニング能力が向上した。
資格取得関連
令和03年【上半期】基本情報技術者 パーフェクトラーニング過去問題集 (情報処理技術者試験)
- 作者:山本 三雄
- 発売日: 2020/12/21
- メディア: 単行本
基本&応用情報は上記で学習した。個人的には、基本情報と応用情報は知識として非常に近いので、時間を開けずに連続して受験した方が効率的ではないかと感じた。