A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 注) 2016年辺りのまとめなので、新しめの本が入ってないのと、新しめの特定の技術の本は2020年現在だと通用しない本が多いです。 古典含め普遍的な物も多々あるので、現在も通用する物が多いはずです。リンク先が旧版の本も有るので注意。 Javaメインの会社の本棚です。あと、じつは洋書版もあります。 | |||||||||||||||
2 | 2018年ごろの会社の本棚の写真 | |||||||||||||||
3 | Junior Engineer | Engineer | Senior Enginner | |||||||||||||
4 | 技術カテゴリ | Level 1 コンピューターリテラシーの学部1年生と同等レベルの知識・プログラミング経験を持ち、それを活かして実際の開発の現場で開発経験を身につけている | Level 2 コンピューターサイエンスの学部2・3年生と同等レベルの知識・プログラミング経験を持ち、それを活かして実際の開発の現場で開発経験を身につけている | Level 3 コンピューターサイエンスの学士号もしくはそれと同等レベルの知識・プログラミング経験を持ち、それを活かして実際の開発の現場で開発経験を身につけている | Level 4 コンピューターサイエンスの修士号もしくはそれと同等レベルの知識・プログラミング経験を持ち、それを活かして実際の開発の現場で開発経験を身につけている | Level 5 コンピューターサイエンスの博士号もしくはそれと同等レベルの知識・プログラミング経験を持ち、それを活かして実際の開発の現場で開発経験を身につけている | Level 6 社内外での代替不可能な技術Edgeの能力=サービスのリードエンジニアクラスの能力を持ち、その技術力でサービスを自身の技術力で進化させていくことができる | Level 7 会社の優位性となれるレベルの技術Edge=CTOクラスの能力を持ち、その技術力でサービスのポテンシャルを引き上げる・新規サービスを立ち上げることができる | ||||||||
5 | エンジニア共通 | 開発 | Basic | システム開発に関係すること全般の基礎的な知識を身につける | Basic | システム開発に関係すること全般の応用的な知識を身につける | ||||||||||
6 | 基本情報技術者 合格教本 | 応用情報技術者 合格教本 | ||||||||||||||
7 | DB | Basic | RDBの仕組みの知識・SQLの基本的な書き方を身につける | Basic | RDB・テーブルの設計に合わせたSQLの書き方を身につける | Basic | RDBの設計・チューニングの知識を身につける | |||||||||
8 | 現場で使える MySQL | 理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL | 実践ハイパフォーマンスMySQL 第3版 | |||||||||||||
9 | 達人に学ぶ SQL徹底指南書 | SQL アンチパターン | ||||||||||||||
10 | Elasticsearch: The Definitive Guide | |||||||||||||||
11 | インフラ | Basic | UNIXの基本操作を身につける | Basic | UNIXの仕組みの知識を身につける | Basic | 開発・運用に必要なミドルウェアの知識を身につける | |||||||||
12 | Linux標準教科書 | Linuxサーバー構築標準教科書 | プログラマのためのDocker教科書 | |||||||||||||
13 | LPICイージス | はじめてのAnsible | ||||||||||||||
14 | 詳解 シェルスクリプト | 改訂新版Jenkins実践入門 | ||||||||||||||
15 | マスタリングTCP/IP 入門編 | |||||||||||||||
16 | 機械学習 | Basic | 基礎的な統計解析のアルゴリズムを身につける | Basic | 機械学習で何が実現できるのかの知識を身につける | Basic | 基礎的な機械学習のアルゴリズムを身につける | |||||||||
17 | 図解でわかる多変量解析―データの山から本質を見抜く科学的分析ツール | 集合知プログラミング | ITエンジニアのための機械学習理論入門 | |||||||||||||
18 | 自然言語処理 | Basic | 自然言語処理で何が実現できるのかを身につける | Basic | 基礎的な自然言語処理のアルゴリズムを身につける | |||||||||||
19 | 自然言語処理の基本と技術 (仕組みが見えるゼロからわかる) | 自然言語処理 (放送大学教材) | ||||||||||||||
20 | エンジニアとしての心得 | Basic | 良いエンジニアとなるための基本的な考え方を身につける | |||||||||||||
21 | ハッカーと画家 | |||||||||||||||
22 | 達人プログラマー | |||||||||||||||
23 | UNIXという考え方―その設計思想と哲学 | |||||||||||||||
24 | 技術マネジメント理解 | Basic | アジャイル開発の知識を身につける | Basic | チームの実施される開発手法を理解し、メンバーとしての適切な実践ができる | Basic | チームの技術的なのリスクを把握し、マネジメントと協力して円滑なチーム運営に寄与できる | |||||||||
25 | アジャイルサムライ−達人開発者への道− | ピープルウエア | 熊とワルツを - リスクを愉しむプロジェクト管理 | |||||||||||||
26 | アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 | Joel on Software | 人月の神話 | |||||||||||||
27 | アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~ | |||||||||||||||
28 | 先端技術理解 | Basic | 定期的に興味ある新しい技術の情報を取得し、理解する | Basic | 新しい技術で興味のある技術に対して、実際に触れている | Basic | 全体の技術動向を把握し、各特性を説明できる | Applied | 新しい技術に対して網羅的にリーチし、サービスの技術検討時に選択肢に入れられる | Edged | 選定された未導入の技術について、導入における開発~運用定着までをリードできる | |||||
29 | 外部発信 | Basic | 学習した技術について、社内に発信できる
(半年に一度) | Basic | 学習した技術について、社内に発信でき、技術Blogにも載せる(半年に一度) | Basic | 学習した技術について、社内に発信でき、技術Blogにも載せる(4か月に一度) | Applied | 学習した技術について、会社として社外に発信できる(半年に一度) | Edged | 学習した技術について、会社の技術的Edgeとして社外に発信できる(4か月に一度) | Edged | 会社の技術的Edgeについて、エンジニア代表として取材を受けることができ、また学会などオフィシャルな場でも発信することができる | |||
30 | 技術評価・導入 | Basic | APIドキュメントが読める | Basic | 全ドキュメントを読める | Applied | 会社が未導入の技術に対して技術評価ができる | Edged | 選定された未導入の技術について、導入における開発~運用定着までをリードできる | Edged | 問題を解決するための技術が世の中にない場合に、自分で開発することができる | |||||
31 | 技術育成 | Basic | メンバーの技術力に合わせて依頼されたコードレビューができる | Applied | メンバーの技術力に合わせて、技術力向上のサポートしていける | Edged | 技術チームの開発・育成方針の意思決定プロセスに入り、メンバーの技術力の成長に寄与していける | Edged | 技術チームのあるべき像を描き、技術力で技術チームを牽引してメンバーの技術力の成長に寄与していける | |||||||
32 | 言語理解 | Basic | 1つの言語を理解し、動作させることができる | Basic | オブジェクト指向言語について比較的高度な言語に対する理解をしている | Basic | プログラミング言語に関する複数のパラダイムを理解しその特徴を捉えている | Applied | プログラミング言語に関する複数のパラダイムを深いレベルで理解し、実際のコードに対して反映、また他者のプログラムのコードのレビューをすることができる | Edged | 既存サービスのプロジェクトのリードアーキテクトが担える | Edged | CTO候補として、新サービスの開発時に、アーキテクト面インフラ面を含めて、システムの全体設計を担うことができる | |||
33 | スッキリわかるJava入門 第2版 | Effective Java 第3版 | プログラミング言語 Java 第4版 | コンピュータプログラミングの概念・技法・モデル | ||||||||||||
34 | プログラミング言語C 第2版 | |||||||||||||||
35 | プログラミングHaskell | |||||||||||||||
36 | Scalaスケーラブルプログラミング第3版 | |||||||||||||||
37 | コーディングの心得 | Basic | 行儀の良いシステムを作る上で必要な知識を身につける | Basic | より堅牢なシステムを作るための手法について理解する | |||||||||||
38 | プログラミング作法 | CODE COMPLETE 第2版 上 完全なプログラミングを目指して | ||||||||||||||
39 | CODE COMPLETE 第2版 下 完全なプログラミングを目指して | |||||||||||||||
40 | リーダブルコード | Basic | 最低限他人が読めるコードを書けるようになる | Applied | リーダブルコードを理解して従い、変更を加える必要がある場合には、その理由を説明できる | |||||||||||
41 | リーダブルコード | |||||||||||||||
42 | システム設計 | Basic | プログラムの設計に必要な最低限の知識を身につけ、レビューを受けながら適切なクラス設計・開発ができる | Basic | フレームワークや各種ライブラリの構造を理解し、適切に利用することができる | Applied | 各言語のベストプラクティスを理解して、適切なクラス設計・開発ができる | |||||||||
43 | Java言語で学ぶデザインパターン入門 | ソースコードリーディングから学ぶ Javaの設計と実装 | エリック・エヴァンスのドメイン駆動設計 | |||||||||||||
44 | Java言語で学ぶデザインパターン入門 マルチスレッド編 | EclipseではじめるJavaフレームワーク入門―クラウド開発対応 | ドメイン特化言語 パターンで学ぶDSLのベストプラクティス46項目 | |||||||||||||
45 | Java言語で学ぶリファクタリング入門 | Java並行処理プログラミング ―その「基盤」と「最新API」を究める― | マイクロサービスアーキテクチャ | |||||||||||||
46 | Javaフレームワーク開発入門 | コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 | ソフトウェアアーキテクトが知るべき97のこと | |||||||||||||
47 | 7つの言語 7つの世界 | リファクタリング 既存のコードを安全に改善する | ||||||||||||||
48 | 7つのデータベース 7つの世界 | |||||||||||||||
49 | コンピュータ アーキテクチャ | Basic | コンピュータが動く仕組みを最低限理解する | Basic | Applied | コンピュータがどのような仕組みで動作しているか低レベルで理解する | Applied | コンピュータの仕組みを理解した上で、効率の良いプログラムとは何なのかを低レベルで考えることができる | ||||||||
50 | コンピュータはなぜ動くのか~知っておきたいハードウエア&ソフトウエアの基礎知識~ | コンピュータの構成と設計 第5版 上 | ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ 第5版 | |||||||||||||
51 | コンピュータの構成と設計 第5版 下 | 詳解 Linuxカーネル 第3版 | ||||||||||||||
52 | テストコード | Basic | 自動テストについて基礎的な知識を身につける | Basic | 自動テストについて実践的な知識を身につける | Applied | 安定的なシステム運営に必要なテスト方針を理解し、テスト設計・実践ができる | |||||||||
53 | テスト駆動開発入門 | 実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる | 継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化 | |||||||||||||
54 | JUnit実践入門 ~体系的に学ぶユニットテストの技法 | レガシーコード改善ガイド | 基本から学ぶソフトウェアテスト | |||||||||||||
55 | UI/UX | Basic | UI/UXに関する基本的なルールを理解する | Basic | UI/UXに関して正しい知識を持ち、改善の可能性を提案することができる | Applied | ユーザビリティ、デザイン思考などの方法論を理解し、継続してUI/UXを改善していくことができる。 | |||||||||
56 | ノンデザイナーズ・デザインブック | インタフェースデザインの心理学 ―ウェブやアプリに新たな視点をもたらす100の指針 | デザイン思考研究所 の無料教材 | |||||||||||||
57 | 超明快 Webユーザビリティ ―ユーザーに「考えさせない」デザインの法則 | |||||||||||||||
58 | サービス開発 | Basic | サービス作り方について基本的な考え方を身につける | Basic | サービスを作った上でどう分析するかについて学ぶ | Applied | データ分析、サービス改善の方法論を理解し、継続してサービスを改善していくことができる。 | |||||||||
59 | リーンスタートアップ | リーンアナリティクス | ||||||||||||||
60 | データ解析の実務プロセス入門 | |||||||||||||||
61 | インフラ・ミドルウェア | Basic | インフラ・ミドルウェアに関する最低限の知識を身につける | Basic | インフラ・ミドルウェアについて全体のアーキテクチャを考える上で必要な知識を身につける | |||||||||||
62 | 実践! CentOS 7 サーバー徹底構築 | [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 | ||||||||||||||
63 | Linuxシステム管理標準教科書 | [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ | ||||||||||||||
64 | Amazon Web Services 基礎からのネットワーク&サーバー構築 | |||||||||||||||
65 | アルゴリズム | Basic | 基本となるアルゴリズムとデータ構造を理解する | Basic | 効率の良いアルゴリズムとは何なのかを理解し、それを実際のコードに対して反映することができる | Basic | より高いアルゴリズムに対する知識・知見を身につけ、正しくアルゴリズムを選択し、組むことができる | Applied | どんなアルゴリズムが存在するのかを知識として有し、中身を理解して変更を加えて応用できる | |||||||
66 | 定本Javaプログラマのためのアルゴリズムとデータ構造 | 珠玉のプログラミング | アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで | |||||||||||||
67 | 暗号技術入門 第三版 秘密の国のアリス | |||||||||||||||
68 | アーキテクト | Basic | アーキテクトとして必要な基本的な知識を身につける | Basic | 既存サービスのアーキテクチャを理解できる | Applied | 既存サービスのアーキテクチャに対して、改善提案ができる | |||||||||
69 | Release It! 本番用ソフトウェア製品の設計とデプロイのために | [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ | ||||||||||||||
70 | インフラエンジニア | システム設計 (必須スキル) | Basic | サーバ構成を理解し、構築・運用することができる | Basic | プロダクトの要件をヒアリングし、RASISの観点から適切な構成を検討し、構築・テストすることができる | Basic | プロダクトの要件をヒアリングし、RASISの観点から、グランドデザインを設計し、構築することができる | Edged | システムに深く精通し、自分の得意領域において新しい技術の検証・導入ができる | ||||||
71 | インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 | インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 | ||||||||||||||
72 | 絵で見てわかるITインフラの仕組み | [24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 | ||||||||||||||
73 | 高信頼システム構築標準教科書 | |||||||||||||||
74 | ||||||||||||||||
75 | システム運用管理 (必須スキル) | Basic | 基礎的なシステムの運用知識を身につけている | Basic | システム運用の体系的な知識を身につけている | Basic | プロダクトの構成をヒアリングし、運用上発生するであろうリスクを想定し、適切にリスクヘッジすることができる | Applied | 全社的なシステム運用のPDCAを回し、運用改善を主動していくことができる | |||||||
76 | 最適コストで安定運用!モデルケースで紐解く「システム運用管理」の勘どころ | ITIL入門 ITサービスマネージメントの仕組みと活用 | ||||||||||||||
77 | IT Service Management教科書 ITIL ファンデーション | |||||||||||||||
78 | サーバ(物理・OS) (必須スキル) | Basic | 基礎的なサーバの管理知識を身につけている | Basic | サーバ管理の体系的な知識を身につけていて、サーバの基本的なトラブルシュートを一人で実施ができる | Basic | 一人でシステムのトラブルシュートができる | Applied | 一人でシステムのチューニング・改善のPCDAを回し、パフォーマンスを向上させていくことができる | |||||||
79 | Linuxシステム管理標準教科書 | Windowsインフラ管理者入門 | プロのための Linuxシステム・10年効く技術 | Linuxカーネル Hacks ―パフォーマンス改善、開発効率向上、省電力化のためのテクニック | ||||||||||||
80 | 標準テキスト Windows Server 2012 R2 構築・運用・管理パーフェクトガイド | Technet Windows Server 2012 R2 サーバーの役割とテクノロジ | ||||||||||||||
81 | OS X Server 実践ワークグループ&インターネットサーバ構築 | |||||||||||||||
82 | プロのための Linuxシステム構築・運用技術 | |||||||||||||||
83 | ミドルウェア(DB・ES等) (オプションスキル) | Basic | Linuxサーバを構築することができる | Basic | WEBサービスに必要なシステム環境を構築することができる | Basic | 公式ドキュメントを読み、検証することで、ミドルウェアの深い部分の挙動を理解しチューニングすることができる | Applied | OSSのソースコードを読み、詳細な挙動を理解し、必要に応じてプラグインやパッチを開発することができる | |||||||
84 | 実践! CentOS 7 サーバー徹底構築 | 7つのデータベース 7つの世界 | ||||||||||||||
85 | エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド | |||||||||||||||
86 | 高速スケーラブル検索エンジン ElasticSearch Server | |||||||||||||||
87 | ネットワーク (オプションスキル) | Basic | 基礎的なTCP/IPの知識を身につけている | Basic | 既存のネットワークを理解・運用することができる | Basic | 様々な要件に応じて柔軟なネットワークを構築することができる | Applied | 大規模なネットワークを構築することができる | |||||||
88 | 3分間NetWorking | 30分間NetWorking | ネットワークスペシャリスト イージス | CCIE Routing and Switching v5.0 Official Cert Guide, Volume 1 | ||||||||||||
89 | マスタリングTCP/IP 入門編 | ネットワークエンジニアとして | ネットワークトラブル対応 徹底解説2 | CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2 | ||||||||||||
90 | ネットワークスペシャリスト教科書 | |||||||||||||||
91 | プログラミング (オプションスキル) | Basic | サーバ作業に必要な最低限な知識を身につけている | Basic | サーバ作業の自動化に必要な知識を身につけている | Basic | システム運用をする上で必要なツールを自作することができる | Basic | 公式ドキュメントを読み、適切な言語を使って必要な機能・サービスを実装できる | Applied | バッチ等のコードを読み、チューニングすることができる | |||||
92 | Linuxコマンドポケットリファレンス | 詳解 シェルスクリプト | Pythonチュートリアル 第3版 | |||||||||||||
93 | Windows PowerShell 実践システム管理ガイド2版 | |||||||||||||||
94 | Progate(Ruby) | |||||||||||||||
95 | Progate(PHP) | |||||||||||||||
96 | 苦しんで覚えるC言語 | |||||||||||||||
97 | 仮想化 (オプションスキル) | Basic | 各レイヤーの仮想技術を理解し、基礎を身につける | Basic | 既存の仮想基盤を理解・運用することができる | Basic | 公式ドキュメントを読み、仕組みを理解し、自分で仮想基盤を構築することができる | Applied | 複数の仮想化技術に精通し、上長と適切な技術を仮説・検証を行い、仮想基盤を設計・構築することができる | |||||||
98 | 仮想化の基本と技術 (仕組みが見えるゼロからわかる) | Docker 実践ガイド | ||||||||||||||
99 | Citrix XenServer® 7.0 管理者ガイド | |||||||||||||||
100 | クラウド (オプションスキル) | Basic | 既存サービスのクラウドインフラを運用していくことができる | Basic | 公式ドキュメントを読み、システムを設計・構築し、APIを使ったシステム連携環境を開発できる | Applied | 複数のクラウドに精通し、要件に応じたシステムをクラウド上に構築することができる |