丘と水路と橋と火を

言葉と技術

SEとして新卒入社から3年間で読んだ技術関連のブックリスト

まえがき

SEとして新卒で入社してから3年が経過しました。

3年間を振り返る意味も込めて、新卒で入社してから読んだ書籍について(読んでいる範囲にムラはありますが)ブックリストを作ってみました。

私自身はエンジニアとしてまだまだ未熟な駆け出しの身ではありますが、「今年から新卒でSEはじめたよ!」というような、3年前の私と似たような境遇の方などに何かの参考になれば幸いです。

なお、私については以下のような前提がありますので、ご自身の参考になるかどうか検討される際にはご承知おきください。

  • 出自
    • 非情報系出身(理系・機械系。修士卒)。
      • 一応学部時代に情報工学やプログラミング関連の授業(C、Fortran)などの授業は取ったけど……という程度。
    • プログラミング自体はもともとほんの少しだけ齧っていて、研究活動のなかでも利用していたので抵抗がない。
  • 普段のSEとしての業務
  • ブックリストについて
    • Web上のドキュメントにも多く知恵をいただきましたが、それを挙げ始めると際限がなくなりそうなため、ここでは書籍に限定しました。
    • 以下のリストではなるべく新しい版の書籍を載せるようにしました。
      • なので、私自身は旧版のものを読んでいるという本が多くあります。

プログラミング言語関連

Java

まずはこれから入った。Javaの入門書は、読むだけだったら小中学生の頃からいろいろ見ていた記憶があるけど、これはそのなかでもトップクラスにわかりやすいのではないかと感じた。特にオブジェクト指向の説明が、章ごとの読む順序まで指定して書いてあるなど、わかりやすく理解させようとしてくれてとても親切。実際に業務に入ってからも、この本に書かれていることを忠実に思い起こせば、それだけで事足りることも多かった。

スッキリわかるJava入門 実践編 第3版 (スッキリわかるシリーズ)

スッキリわかるJava入門 実践編 第3版 (スッキリわかるシリーズ)

  • 作者:中山 清喬
  • 発売日: 2021/04/20
  • メディア: 単行本(ソフトカバー)

こちらは業務に入ってからノウハウ集的に必要な時に開くのがよかった。通読には向かないように感じた。

2年目くらい、ある程度業務としてコーディングすることが慣れてきた時期に、オブジェクト指向でのより良い設計を習得したくて読んだ。Java以外でもオブジェクト指向を取り入れている言語であれば参考になる部分が多い。

C

低レイヤについて理解したく、そのための一つとして。Cは小学生の頃と学部時代にほんの少し触ったことがあるので抵抗はなかったが、その頃何となくで済ましていた内容もわかりやすく理解することができる良い本だった。

SQL

スッキリわかるJava入門 第3版 スッキリわかるシリーズ』の後に。これと『スッキリわかるJava入門 第3版 スッキリわかるシリーズ』と『スッキリわかるサーブレット&JSP入門 第2版 (スッキリシリーズ)』を理解すれば、大体のWebアプリケーションの基礎的な仕組みはイメージできるように感じた。

Python

Effective Python 第2版 ―Pythonプログラムを改良する90項目

Effective Python 第2版 ―Pythonプログラムを改良する90項目

  • 作者:Brett Slatkin
  • 発売日: 2020/07/16
  • メディア: 単行本(ソフトカバー)

2年目の頃、Pythonを触る機会が増えたので。Pythonは学生時代から触っていたこともあり、何となくで書いてしまえていたが、もう少し良いコーディングができないかと思い手にとった。安くなっていたので洋書版で読んだが、それでも読みやすい印象。

設計・考え方関連

UMLモデリング

UMLモデリング入門

UMLモデリング入門

1年目、モデリングを理解したくて。UMLというよりはモデリングについての内容が多い印象。モデリングをどのように行うか、難しさも感じつつ知的な面白さがたくさん詰まっている。

UMLの記法を思い出すために。表紙裏のまとめだけでも十分価値がある。内容も非常に細やか。

デザインパターン

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

  • 作者:結城 浩
  • 発売日: 2004/06/19
  • メディア: 大型本

2年目の頃、より良い設計を行うために。全部暗記せずとも、よく利用されるパターンだけでも見ておくと非常に参考になった。

原理・原則・考え方

1年目〜2年目に。絶対に読んだ方がいい。「良いコードとは読みやすいコード」という発想をベースに、より良いコードを書くための知見がたくさん詰まっている。

1年目〜2年目に。絶対に読んだ方がいい。コーディングを行うとき、ここに書かれている原理・原則や考え方を思い返すようにしていた。

プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則』に記載されていたので。内容の網羅性としては『プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則』でいいかも。ただ、思想的な部分はやはりこちらで読んでよかった。第2版も読みたいところ。

リファクタリングについて、より体系立てて理解するために。何となくでやっていたことをちゃんと捉え直せてよかった。

単体テストなどで、テストケースをしっかり考えられるようになりたくて。ここに書かれている内容を全部そのまま使わなくとも、エッセンスだけでも非常に参考になった。

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

リファクタリング・ウェットウェア ―達人プログラマーの思考法と学習法

  • 作者:Andy Hunt
  • 発売日: 2009/04/27
  • メディア: 単行本(ソフトカバー)

達人プログラマー ―熟達に向けたあなたの旅― 第2版』と同著者。思想として参考になるところが多かった。

ドメイン駆動設計

VOとかDTOとかServiceとか、「あれってこういうことだったのか!」とこれまで業務で読んできたコードの意味合いを再認識するのに役立った。

Design It! ―プログラマーのためのアーキテクティング入門

Design It! ―プログラマーのためのアーキテクティング入門

  • 作者:Michael Keeling
  • 発売日: 2019/11/25
  • メディア: 単行本(ソフトカバー)

アジャイルスクラムでの開発で、どんな風に設計を進めたらいいか考えたくて。アジャイルでの開発で設計を考えるということに非常に適した書籍で、とても参考になった。個人的には超おすすめ。

Webアプリケーション開発関連

Javaと合わせて最初に。これと『スッキリわかるJava入門 第3版 スッキリわかるシリーズ』と『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』とでWebアプリの基礎を学んだ。「言語は覚えたけどその先って?」「何がどんなふうに作れるの?」という疑問に、「Webアプリってのが作れて、こんな風に作られているよ」と答えを見せてくれる。個人的には長年のミッシングリンクを埋めてもらえたような感覚。

現場で使える Django の教科書《基礎編》

現場で使える Django の教科書《基礎編》

  • 作者:横瀬 明仁
  • 発売日: 2018/08/26
  • メディア: オンデマンド (ペーパーバック)

Djangoを利用する機会があったので、参考書に。公式ドキュメントで分かりにくいと思ったことを確認するようにした。

コンピュータサイエンスなど理論や基礎的な知識関連

計算機科学を学びたくて。実装として手を動かしながら進められて良い。

CPUの創りかた

CPUの創りかた

  • 作者:渡波 郁
  • 発売日: 2003/10/01
  • メディア: 単行本(ソフトカバー)

名著。電気回路・電子回路の理解にも。非常に読みやすく、電気回路・電子回路がどのようにコンピュータとして成立するようになるのか理解できた。

アルゴリズムを、はじめよう

アルゴリズムを、はじめよう

基本情報をとる時に利用。読みやすい。

機械学習ディープラーニング関連

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

  • 作者:斎藤 康毅
  • 発売日: 2016/09/24
  • メディア: 単行本(ソフトカバー)

ディープラーニングに興味が出たので、手を動かしながら理解できる書籍として。イメージと合わせて、実装も確認できて学習効果が高かった。これに取り組んだ後にTensorFlow/Kerasなどのサンプルコードを見ると、なんとなくどのようなことをしているのか理解できるようになった。

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

自然言語処理版。前巻と通しで読むのがやはり良い。こちらもおすすめだった。

Linux

新しいLinuxの教科書

新しいLinuxの教科書

Linuxを業務で触ることになるため、その準備として。基本的な部分を一通り押さえていて、かなり助かった。

Linux教科書 LPICレベル1 Version5.0対応

Linux教科書 LPICレベル1 Version5.0対応

  • 作者:中島 能和
  • 発売日: 2019/04/08
  • メディア: 単行本(ソフトカバー)

資格取得のため。Linuxについて包括的に学べるのもよかった。

ネットワーク関連

歴史的な部分などまで記載されている。途中までは読んだ。

クラウド関連

AWS

AWSの理解のためにも、ネットワークの理解のためにも有効。

AWS Lambda実践ガイド

AWS Lambda実践ガイド

業務でLambdaを触ることになったので。Lambdaの基本的な部分についてはこれだけでもかなり押さえられる。ただし、実際の利用時にはここに書かれている知識にプラスしてもう少し学習が必要そう(例えば、Lambdaでmicro-serviceなどの設計書を利用せずに、API Gatewayと自分で紐づけて利用する場合についてなどは、あまり記載がない)なので、あくまでも基礎的な活用方法と概念理解に。

設計・構築のためのパターン集として。

マネジメント・コーチング関連

「プロジェクトマネジメント」実践講座

「プロジェクトマネジメント」実践講座

2年目に、少し背伸びして。上司や先輩の仕事について少しは理解できるようになった。

チームメンバーに技術を伝承することが増えたタイミングで。これをそのまま業務中で若手がいきなりやるのは難しいが、考え方として参考になった。

アジャイルスクラム・リーン関連

コーチングとはあるが、アジャイルを考えるという意味でも非常に良い。超おすすめ。

有名。砕けた感じでアジャイルを理解できる。個人的には『アジャイルコーチング』のほうが好きだが、こちらも良い。

アジャイルでの見積もりの方法を人に説明できるくらいになりたくて。かなり効果はあり。

「新規事業を立ち上げるってどうしたらいいの?」と思いつつ。リーンの考え方は仕事だけでなくいろいろな活動に参考になると感じた。

スクラムで開発を行うことになったので。読みやすいし大切な部分をしっかり押さえている。超おすすめ。

スクラムの考え方などを理解したくて。形式知暗黙知によるSECIモデルはここで初めて知って感心した。

ノウハウ・エンジニア系エッセイ・自己啓発関連

どのようにしてエンジニアとして知的生産を続けていくか。超おすすめ。

エッセイ集・ノウハウ集。項目単位で読めて読みやすく、エンジニア生活の参考になる。

仕事は楽しいかね?2

仕事は楽しいかね?2

このシリーズ、一巻目がAmazonプライムで無料になっていたタイミングがあり、その時に読んでよかったので。小説形式なので物語として理解できることもあって読みやすく、働くということについて考える良い材料になった。

3年目に、自身の働き方やキャリアについて改めて考えるきっかけとして。図解も多くてとてもわかりやすい上、良い刺激になるような情報が多く書かれていてとてもよかった。おすすめ。

そのほか

法律関連

自分でサービスをするなら、規約って大切になりそう、と思って。法律面について押さえられて、おまけに規約のテンプレートも含まれており、非常に参考になった。

語学関連

ITエンジニアが覚えておきたい英語動詞30

ITエンジニアが覚えておきたい英語動詞30

働き始めた頃に見つけて。限定した単語のみでエンジニアとしての英語を理解・利用するという書籍。言われてみれば確かに、という感じで、納得しながら読めた。

リスニング力をつけたくて。これと普段の英語でのポッドキャストの視聴などでかなりリスニング能力が向上した。

資格取得関連

基本&応用情報は上記で学習した。個人的には、基本情報と応用情報は知識として非常に近いので、時間を開けずに連続して受験した方が効率的ではないかと感じた。