【2023最新】「システム開発」のおすすめ本!人気ランキング
この記事では、「システム開発」のおすすめ本をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
Amazonで詳しく見る
紹介文
システム設計には様々な考え方があります。しかし目的は明白です。
情報システムの価値を最大化するために、ユーザーと開発チームとを橋渡しして、
「ビジネスの要件を正しくシステムの実装へとつなぐ」――これ以外にありません。
本書はその手順を明示します。各工程の目的・作業内容・成果物・留意点を示しながら、
データ・業務プロセス・画面UIといった設計対象ごとに「概要定義から詳細定義へ」
「論理設計から物理設計へ」と進める手順を説明します。
特定の開発手法や方法論に囚われることなく、情報システムを設計する上で
知っているべき原理原則、実装技術や環境変化に左右されない「システム設計のセオリー」を
厳選して集約しました。
序章
0.1 システム設計へのアプローチ
第1章 情報システムと設計
1.1 情報システムにおける設計
1.2 設計の全体像と基本方針
第2章 論理設計のはじめに
2.1 要件定義でやっておくべきこと
2.2 実装への下準備
第3章 データ設計のセオリー
3.1 データの設計
3.2 外部インターフェースの設計
3.3 データの実装
第4章 プロセス設計のセオリー
4.1 業務プロセスの概要定義
4.2 業務プロセスの詳細定義
第5章 機能設計のセオリー
5.1 機能の概要定義
5.2 機能の詳細定義
第6章 ユーザビリティ設計のセオリー
6.1 ユーザビリティの概要定義
6.2 ユーザビリティの詳細定義
第7章 設計のToBeを実装のAsIsへつなぐために
7.1 インフラ系と運用系の仕様固め
7.2 SOA・アジャイル開発への期待
Amazonで詳しく見る
紹介文
言語に限定されない応用が効く基礎力をつける!インターネットのしくみがわかる!Webプログラムがどのように動いているかを学べる!正規表現やテンプレート、ライブラリ、セキュリティまでカバー!
1 WebブラウザでWebページが表示される仕組み
2 WebサーバからWebブラウザにコンテンツが届くまで
3 Webプログラムがコンテンツを作る仕組み
4 Webプログラムを動かしてみよう
5 Webプログラミングをしてみよう
6 ライブラリやJavaScriptを使ったプログラミング
7 ユーザーを追跡するCookieとセッション情報
8 データベースを使ったプログラミング
Amazonで詳しく見る
紹介文
第1章 達人の哲学
第2章 達人のアプローチ
第3章 基本的なツール
第4章 妄想の達人
第5章 柳に雪折れ無し
第6章 コーディング段階
第7章 プロジェクトを始める前に
第8章 達人のプロジェクト
Amazonで詳しく見る
紹介文
本書のテーマはWebサービスの実践的な設計。まず良いWebサービス設計の第一歩として、HTTPやURI、HTMLなどの仕様を歴史や設計思想を織り交ぜて解説。そしてWebサービスにおける設計課題、たとえば望ましいURI、HTTPメソッドの使い分け、クライアントとサーバの役割分担、設計プロセスなどについて、現時点でのベストプラクティスを紹介。
第1部 Web概論
第2部 URI
第3部 HTTP
第4部 ハイパーメディアフォーマット
第5部 Webサービスの設計
付録
Amazonで詳しく見る
紹介文
分散システムやマイクロサービスなど現代的なソフトウェアアーキテクチャを考える際に必要な知識、スキルやテクニックを解説。
モダンなソフトウェアアーキテクチャの基礎から全体像までを解説
分散システムやマイクロサービスなどなど現代的なソフトウェアアーキテクチャを考える際に必要となる知識、スキルやテクニックを解説する書籍です。アーキテクチャの原理から、異なるアーキテクチャの長所と短所の検証、アーキテクチャパターン、アーキテクチャの図示や表現方法などについて解説します。アーキテクチャを設計・実現していくために必要な知識やスキルを学ぶことができます。
分散システムやマイクロサービスなど現代的なソフトウェアアーキテクチャを考える際に必要な知識、スキルやテクニックを解説。
Amazonで詳しく見る
紹介文
Winner of the 2011 Jolt Excellence Award! Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours- sometimes even minutes-no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the "deployment pipeline," an automated process for managing all changes, from check-in to release. Finally, they discuss the "ecosystem" needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization.
For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes * Automating all facets of building, integrating, testing, and deploying software * Implementing deployment pipelines at team and organizational levels * Improving collaboration between developers, testers, and operations * Developing features incrementally on large and distributed teams * Implementing an effective configuration management strategy * Automating acceptance testing, from analysis to implementation * Testing capacity and other non-functional requirements * Implementing continuous deployment and zero-downtime releases * Managing infrastructure, data, components and dependencies * Navigating risk management, compliance, and auditing Whether you're a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever-so you can deliver value to your business rapidly and reliably.
Foreword by Martin Fowler Preface Acknowledgements About the Authors Part I Foundations 1 The Problem of Delivering Software 2 Configuration Management 3 Continuous Integration 4 Implementing a Testing Strategy Part II The Deployment Pipeline 5 Anatomy of the Deployment Pipeline 6 Build and deployment scripting 7 Commit Testing Stage 8 Automated Acceptance Testing 9 Testing Non-Functional Requirements 10 Deploying and Releasing Applications Part III The Delivery Ecosystem 11 Managing infrastructure and environments 12 Managing Data 13 Managing components and dependencies 14 Advanced version control 15 Managing Continuous Delivery Bibliography Index
Amazonで詳しく見る
紹介文
NoSQLデータベースやフロントエンド、可視化、ログの取り扱い、環境構築の自動化など、Webエンジニアとして知っておくべき技術を、実際に試せるように、わかりやすく解説!2〜3年目までのエンジニア、最新の技術動向を知っておきたいシステム関係者など必読の1冊!
01 Webエンジニアについて
02 Ruby on Railsでの開発
03 PHPでの開発
04 NoSQLデータベース
05 フロントエンドの実装
06 ログについて
07 データの可視化
08 環境構築の自動化
09 便利な外部サービス
Amazonで詳しく見る
紹介文
IT用語が短時間で理解できる本。イラスト入りでたとえ話や具体例を交えて説明をするので、専門知識のない方でも身につく。
社会人なら知らないと恥ずかしいIT用語を厳選!
★「1ページにつき1用語」を基本にイラスト付きで解説
一言での解説とイラストがあるから、IT用語を短時間で学びたい人に最適。
★「用語に関連する話」でさらにIT知識が身につく
紹介している用語に関連する事項を説明。さらに理解を深めよう。
★違いがわかりづらい用語も解説
「インターネットとイントラネット」「書体とフォント」など、
似ている用語は2章で解説。セットで覚えよう。
RPA、IoT、プロトコル、UI、チャネル、EC、LP、コンバージョン、
ハッカーとクラッカー、ランサムウェア、暗号化と復号、IC、アルゴリズム……
たくさんのIT用語をわかったふりをして聞き流していませんか?
本書は、AIなどの話題の用語から、
Web用語、セキュリティ用語の他、
IT業界で知っておくべき人物についても紹介しています。
文系でIT業界に就職した方や、
他業種から転職した方など、
ITの専門知識のない方でも理解できるように
やさしく解説しています。
わからない用語があったら、
まずは一言での解説とイラストを見て、
概要だけさらっとつかむことをオススメします。
巻末には、知りたい用語をさっと引ける索引付き!
目次
第1章 ニュースがよくわかるIT用語
第2章 セットで覚えるIT用語
第3章 打合せ・ビジネス会話で使われるIT業界用語
第4章 Webサイトの作成やSNSの運営で使われるIT用語
第5章 サイバー攻撃と戦うためのセキュリティ用語
第6章 IT業界で活躍する人の基本用語
第7章 IT業界で知っておくべき人物
第1章 ニュースがよくわかるIT用語
第2章 セットで覚えるIT用語
第3章 打合せ・ビジネス会話で使われるIT業界用語
第4章 Webサイトの作成やSNSの運営で使われるIT用語
第5章 サイバー攻撃と戦うためのセキュリティ用語
第6章 IT業界で活躍する人の基本用語
第7章 IT業界で知っておくべき人物
Amazonで詳しく見る
紹介文
コミュニケーションギャップとシステムへの誤解がシステム開発の課題
システム開発プロセスの全体像を鳥瞰する
"金食い虫"にさせないシステム化構想
"あるべき姿"に業務を具体化するシステム化要求分析
人手とコンピューターのバランスをとるシステム機能設計
業務運用手順に注目した業務マニュアルの作成
本番につなげる詳細な移行手順を設計する
もう、システム運用設計を後回しにはできない
3歩先を予測し、1歩先を準備してアーキテクチャを設計する
最適なソフトウェアコンポーネントに分割したソフトウェア実装設計〔ほか〕
Amazonで詳しく見る
紹介文
シス管系女子 シリーズ5万部突破!
新エピソードを加えパワーアップ
シス管系女子 シリーズ5万部突破!
新エピソードを加えパワーアップ
≪仕事でよく出くわす場面ばかりで、即・役立つ!≫
≪「コマンドが苦手~」がなくなる!≫
漫画+技術解説書 「わかばちゃんと学ぶ」シリーズの湊川あい先生推薦!
Linuxのコマンド操作をまんがで楽しく学べる本です。
シェルスクリプト、サーバー管理の基本が自然と身に付きます。
主人公の新人社員 利奈みんとと先輩社員 大野桜子のやり取りを通して
すぐ役立つ情報を分かりやすく解説します。
シス管系女子 シリーズ5万部突破!
新エピソードを加えパワーアップ
プロローグ 誕生! シス管系女子
第1話 他のコンピュータをリモートで操作したい
第2話 一時的に管理者権限で操作したい
第3話 さまざまが語句を一度で検索したい
第4話 端末でも対話的なファイルを編集したい
第5話 vimでもコピー&ペースト&アンドゥしたい
第6話 コマンド操作でファイルを移動・コピーしたい
第7話 ファイルの位置を相対パスで思い通りに指定したい
第8話 似たような名前のファイルをまとめて操作したい
第9話 「原本のファイル」と常に同じ内容になる「分身のファイル」を作りたい
第10話 突然の回線切断から復帰したい
第11話 他の操作の結果を見ながら操作したい
第12話 最近実行したコマンドを呼び出したい
第13話 ずっと前に実行したコマンドを呼び出したい
第14話 ネットワーク越しにファイルをコピーしたい
第15話 システムの過負荷を把握したい ほか
Amazonで詳しく見る
紹介文
プログラミングを勉強してみたけれど、なかなかうまくいかない。
プログラミングに漠然と興味があるけれど何からはじめていいのかわからない。
Progateなどの入門サイトで試してみたけれど、その後何をしたらいいかわからない。
そんなことを思っている方は多いのではないでしょうか?
独学でプログラミングをマスターするためには、実は最も大切なものがあります。
それが、学習方法です。
本書では、プログラミングの参考書を買う前に読んで欲しいプログラミングの学習方法をお伝えしていきます。
受験勉強や資格獲得、語学をマスターするためなどの勉強でこのような経験はないでしょうか?
毎日ひたすら勉強しているのに、まったく成績が上がらない。
他の人と比べて、知識が身につくのが遅い。
これらも全て、学習方法が原因なのです。
かつて僕も、がむしゃらに勉強をしていた時期がありました。
しかし、全く知識が身につかず、結局あきらめてしまったことも多かったです。
しかし、学習方法を改善してからは、知識がすんなり身につくようになったのです。
本書では、これからプログラミングを始める方のために、その学習方法をご紹介します。
またプログラミングを使って作りたいモノ別に、おすすめの学習ルートも紹介しています。
これからプログラミングを始める方、プログラミングを勉強中だけれど、身についているか実感がなく不安に思っている方、にぜひ読んでいただきたい内容となっています。
本書は、学習方法を知らないがゆえにプログラミングを断念してしまう人すべての人を救うために作られました。
そして本書が、一人でも多くの人がプログラミングというスキルを身につけ、自分の武器とするための道しるべとなれば嬉しいです。
第1章 プログラミングがなぜ注目されているのか?
1 IT技術者の需要が高まっている
2 世界は機械化している
3 プログラミング教育が世界で必修化されている
4 課題を解決するための新しい力が求められている
5 プログラミングは自己実現のための最強の武器
第2章 プログラミングって一体なんなのか?
1 プログラミングってそもそも何?
2 プログラミングの知識が必要な職業は?
3 60%の人間にはプログラミングの素質がない?
4 プログラミングで何ができるか
5 プログラミングでできる身近な事例
第3章 プログラミングができるようになるための9つの学習ステップ
1 プログラミングを学ぶ目的を作る
2 自己評価を上げる
3 作りたい目標を決める
4 作りたい物のための知識を得る
5 写経の次は改造して遊ぶ
6 得た知識を組み合わせて作品を作る
7 作品を公開して改善する
8 人に教える
9 インターリーブで学習をより効率的にする
Interlude 誰もやったことがないことが無限にある!
第4章 作品別プログラミング学習ルート
1 Webページを作ろう
2 Webアプリケーションを作ろう
3 作業自動化ツールを作ろう
4 ゲームを作ろう
5 AI(人工知能)を作ろう
6 スマホアプリを作ろう
7 VR・ARを作ろう
8 暗号資産(仮想通貨)を作ろう
第5章 <応用編>テーマ別プログラミング学習法まとめ
1 チーム開発手法
2 プロジェクト管理
3 デバッグ
4 設計
5 セキュリティ
6 サーバ
7 データベース
8 美しいプログラム
9 アルゴリズム
10 コンピュータサイエンス
第6章 プログラミングを楽しく体験してみよう
1 CodeMonkey
2 Hour of CodeのMineCraft
3 CODE COMBAT
第7章 プログラミングコンテストに参加してみよう
1 プログラミングコンテストに参加するメリット
2 国内の有名なプログラミングコンテスト
第8章 ハッカソンに参加してみよう
1 ハッカソンに参加するメリット
2 国内の有名なハッカソン一覧
Amazonで詳しく見る
紹介文
最短最速で今必要な知識を身につけるために、「情報のハブ」というコンセプトで書き下ろした新しいAWS入門書です。
「情報が多すぎて何から手を付ければいいかわからない」
「ボリュームのある資料のうち今自分に必要な情報はどれかがわからない」
「そもそもこの資料でよいのか、ほかに読んでおくべき資料があるのかもわからない」
新しい技術を学ぼうとすると、こんなハードルにぶつかりがちです。
本書は、玉石混交な情報リソースの中から、AWSエンジニアとして押さえておきたい情報源をふまえ、現場で活躍するエンジニアたちが必須の基礎知識を解説。AWSの根本にある考え方や最低限のAWSの構成、現場で必須となるセキュリティなどを知識が身につけられます。
AWSパートナー・オブ・ザ・イヤーに選ばれたクラスメソッドのエンジニア陣が送る、AWS初学者必携の1冊です。
■第1章 AWSの全体像を押さえる
■■1.1 ITインフラとクラウドを押さえる
■■■1.1.1 ITインフラを構成する要素
■■■1.1.2 クラウド以前のITインフラ構築
■■■1.1.3 クラウドとはなにか16
■■■1.1.4 クラウドコンピューティングの3つのモデル
■■■1.1.5 AWSやインフラに関わる「XaaS」
■■■1.1.6 クラウドを支える技術
■■1.2 AWSの思想・考え方を押さえる
■■■1.2.1 AWS の歴史をふりかえる
■■■1.2.2 「サーバーレス」の普及
■■■1.2.3 責任共有モデル
■■■1.2.4 AWSの課金モデル
■■■1.2.5 AWS Well-Architected Framework
■■■1.2.6 クラウドの中でAWSを選ぶ理由
■■■1.2.7 Design for Failure
■第2章 AWSでWeb環境を構築する
■■2.1 CLIによる構築の基本
■■■2.1.1 CUIとGUIのどちらを選ぶか
■■■2.1.2 AWS CLIとは
■■■2.1.3 実行環境について
■■■2.1.4 権限を確認する
■■■2.1.5 本チュートリアルでおこなうこと
■■■2.1.6 よくあるコマンドのエラーを押さえる
■■■2.1.7 おもなLinuxコマンドを押さえる
■■■2.1.8 全体構成図を押さえる
■■2.2 ネットワークを構築する
■■■2.2.1 AWSにおける地理的な概念
■■■2.2.2 ネットワーク関連の用語を押さえる
■■■2.2.3 AWS CLIコマンドの基本構成を押さえる
■■■2.2.4 VPCを作成する
■■■2.2.5 サブネットを作成する
■■■2.2.6 ルーティングを設定する
■■2.3 サーバーを構築する
■■■2.3.1 サーバーとは
■■■2.3.2 Amazon EC2とは
■■■2.3.3 セキュリティグループを作成する
■■■2.3.4 インスタンスプロファイルを作成する
■■■2.3.5 EC2を起動する
■■■2.3.6 Systems ManagerでEC2へ接続する
■■■2.3.7 EC2上でWebサーバーを構築する
■■■2.3.8 AMIでもう1台のEC2を立ち上げる
■■■2.3.9 ALBでEC2×2台をひもづける
■■■2.3.10 Elastic IPアドレス(EIP)でIPアドレスを固定する
■■■2.3.11 Auto Scalingとは
■■■2.3.12 スケーリングのオプション
■■■2.3.13 Auto Scalingを導入する前に検討すべきこと
■■■2.3.14 Auto Scalingを体験する
■■2.4 データベースを構築する
■■■2.4.1 データベースとは
■■■2.4.2 AWSでどのRDBを選択するか
■■■2.4.3 実際にデータベースを構築する
■■■2.4.4 アプリケーションからDBへ接続してみる
■■2.5 リソースの削除
■■■2.5.1 リソースを確認する
■■■2.5.2 各リソースを削除するコマンド
■第3章 安全にAWSを使うための基礎知識を押さえる
■■3.1 IAMの基本を押さえる
■■■3.1.1 クラウドサービスのリスクを押さえる
■■■3.1.2 IAMとは
■■■3.1.3 IAMユーザー
■■■3.1.4 IAMユーザーグループ
■■■3.1.5 IAMポリシー
■■■3.1.6 IAMロール
■■■3.1.7 最小権限を付与する
■■3.2 AWSアカウントの保護
■■■3.2.1 ルートユーザーとは
■■■3.2.2 MFAの設定
■■■3.2.3 ほかのAWSアカウントへのアクセスにスイッチロールを利用する
■■3.3 セキュアな環境のためにやっておくべきこと
■■■3.3.1 ルートユーザーや強い権限をもつユーザーの使用を控える
■■■3.3.2 ソースコード内に認証情報をハードコーディングしない
■■■3.3.3 認証情報のローテーション
■■■3.3.4 リソースへのアクセスを限定する
■■■3.3.5 自分のアカウントに何が起こったかを記録しておく
■■■3.3.6 請求アラートを設定する
■■3.4 不正利用の警告通知があったらやるべきこと
■■■3.4.1 無視してはいけないAWSからの通知
■■■3.4.2 おもな不正利用通知のパターン
■■3.5 安全なAWS利用を支えるサービス・ツール
■■■3.5.1 AWS WAF
■■■3.5.2 GuardDuty
■■■3.5.3 Trusted Advisor
■■■3.5.4 Security Hub
■■■3.5.5 AWS Vault
■■■3.5.6 git-secrets
■第4章 現場でAWSを使いこなすサービスを押さえる
■■4.1 マネージドサービスを上手に活用する
■■■4.1.1 マネージドサービスを利用する利点
■■4.2 インフラストラクチャサービスを押さえる
■■■4.2.1 コンピューティング
■■■4.2.2 コンテナ
■■■4.2.3 データベース
■■■4.2.4 ストレージ
■■■4.2.5 ネットワーク
■■4.3 アプリケーション開発のサービスを押さえる
■■■4.3.1 開発ツール
■■■4.3.2 アプリケーション統合サービス
■■4.4 データ分析と機械学習のサービス
■■■4.4.1 データ分析の流れ
■■■4.4.2 データ収集のサービス
■■■4.4.3 データ処理・ETLサービス
■■■4.4.4 データ分析サービス
■■■4.4.5 データ可視化サービス
■■■4.4.6 機械学習とAIサービスの全体像
■■■4.4.7 AIサービス
■■■4.4.8 機械学習サービス
■■■4.4.9 機械学習フレームワーク・インフラストラクチャ
■■4.5 メディア配信のサービス
■■■4.5.1 動画配信の基礎
■■■4.5.2 AWSの動画配信サービス
■■■4.5.3 動画配信アプライアンス
■■4.6 エンタープライズにおける活用
■■■4.6.1 ビジネス向けアプリケーション
■■■4.6.2 サーバーとデータ移行
■■4.7 IoTのサービスを押さえる
■■■4.7.1 AWS IoT Core
■■■4.7.2 その他のIoTサービス
■■■4.7.3 デバイスの利用
Amazonで詳しく見る
紹介文
第1部 基礎(ソフトウェアデリバリーの問題
構成管理
継続的インテグレーション
テスト戦略を実装する)
第2部 デプロイメントパイプライン(デプロイメントパイプラインの解剖学
ビルド・デプロイメントスクリプト
コミットステージ
自動受入れテスト
非機能要件をテストする
アプリケーションをデプロイ・リリースする)
第3部 デリバリーエコシステム(基盤と環境を管理する
データを管理する
コンポーネントや依存関係を管理する
高度なバージョン管理
継続的デリバリーを管理する)
Amazonで詳しく見る
紹介文
マンガと図解を駆使したシステム方式設計の入門書
新人SEとアプリケーションエンジニアにお薦め!
システム開発では「ITアーキテクト」と「アプリケーションエンジニア」の分業が進んでいます。分業は理にかなっていますが、最近では分業による弊害が指摘されてきました。アプリケーションエンジニアが方式設計(非機能要件を実現する基盤設計)について無知であるために、「性能が低い」「使いづらい」などの問題を引き起こすのです。
こうした問題をなくすには、すべてのSEが方式設計について理解することが望ましい。そこで本書では、新人SEやアプリケーションエンジニアを主な読者に想定し、画面設計とDB性能に関するシステム設計のポイントを解説しました。
本書の最大の特徴は、マンガと図解を駆使していることです。システム設計は抽象的でなかなか理解しづらい。また、教えるほうも「どのように教えればいいのかわからない」と頭を抱えることが少なくありません。だからこそ、図解が有効です。
ぜひ本書でシステム方式設計の勘所をつかんでください。
『第1部 画面設計』
▼第1章 一覧画面
Prologue 新人SE・野原くんと木村さん
・第1話 丸出課長の丸投げ発生!
一覧画面の表示方法は3種類
「一覧画面」の基本
・第2話 アウトオブメモリの悲劇は突然に…
事例(1) 大量データでアウトオブメモリ発生 全件表示編
コラム(1) 大量データでアウトオブメモリ発生 検索条件編
コラム(2) 大量データでアウトオブメモリ発生 メモリ編
事例(2) 上限を決めているのにOOM 発生 一部表示編
事例(3) 見たいデータが見られない 一部表示編
コラム(3) 一覧画面のソートには2種類あることを理解しよう
コラム(4) ページング方法についての整理
解説 リソースの上限を常に意識しよう
▼第2章 戻る操作
・第3話 丸投げのスルーパス発生!
「戻る」の実装方法は2種類
・第4話 画面はどこに戻るのか!?
どこに戻ればいいのか、わからない!
事例(1)戻りづらいったら、ありゃしない!
・第5話 ミスの原因を追究せよ!
事例(2) 予期せぬデータ更新発生!
コラム(1) キャッシュ機能とノーキャッシュ
解説 ブラウザの戻るはやっかいな機能
▼第3章 子画面
・第6話 リリース直前の丸投げ発生!
「子画面」は親画面との関係で2種類に分けられます。
・第7話 確認不足が招いた思い込み…
事例(1) モーダル画面で親画面が見れない
コラム(1) モーダルか?モードレスか?目的に応じて選ぶことが重要だ
・第8話 請求金額はなぜ違う?
事例(2) モードレス画面で不整合発生!
コラム(2) セッション方式とhidden 方式
コラム(3) モードレスの注意点:セッションの上書きに注意しよう
解説 モードレスは落とし穴多し
『第2部 DB性能』
▼第4章 インデックス・テーブル結合
・第9話 私、ヘルプがんばります!
・第10話 体で覚えろ!スパルタ方式
事例(1) 同じ人を検索しているのに速度が違う!?
コラム(1) インデックスをつければいいってもんじゃない
・第11話 テーブルくっつけちゃうぞ!
事例(2)インデックスがついてるのに遅いのはなぜ?
事例(3)テーブルへのアクセス順序
コラム(2)結合の種類
解説 インデックスが性能を大きく左右
▼第5章 非正規化・バインド
・第12話 心は熱く!頭はクールに!
事例(1) 押してダメなら引いてみな!
コラム(1) 非正規化について
コラム(2) 同音異義語
・第13話 昨日はきちんと動いてたのに―!?
事例(2) バインドピーク!
コラム(3)教えてミスター!!「動的SQL」
・第14話 これは…途中で変わるとヤバいヤツだ!
事例(3)過去は時々振り返るぐらいがいい
解説 バインド変数を使いこなせ
Amazonで詳しく見る
紹介文
"競プロ" で必要なテクニックを1冊に凝縮!
競技プログラミング(競プロ)は、問題を解くことでプログラミング能力を競う大会です。本書では、競プロで必要なアルゴリズム・データ構造・考察テクニックを丁寧に解説します。さらに、知識を定着させるための例題・演習問題が150問以上掲載されています。
本書は、競プロのコンテストで勝ちたい、アルゴリズムを本格的に学びたい、技術力向上に繋げたいなど、様々な目的で利用できるものとなっています。
[本書の特徴]
・競プロで必要な77個のテクニックを網羅
・320点超のフルカラーの図でわかりやすく解説
・知識を身に付ける演習問題153問
・全問題が「自動採点システム」に対応
・新傾向の「ヒューリスティック・最適化」も解説
[本書の構成]
序章 競技プログラミング入門
第1章 アルゴリズムと計算量
第2章 累積和
第3章 二分探索
第4章 動的計画法
第5章 数学的問題
第6章 考察テクニック
第7章 ヒューリスティック
第8章 データ構造とクエリ処理
第9章 グラフアルゴリズム
第10章 総合問題
終章 さらに上達するには
[本書で扱うトピック(抜粋)]
全探索/2進法/一次元の累積和/二次元の累積和/配列の二分探索/答えで二分探索/しゃくとり法/半分全列挙/部分和問題/ナップザック問題/ビットDP/最長増加部分列問題/素数判定法/ユークリッドの互除法/繰り返し二乗法/包除原理/ゲーム問題/偶奇を考える/一手先を考える/後ろから考える/山登り法/焼きなまし法/ビームサーチ/スタック/キュー/優先度付きキュー/連想配列/文字列のハッシュ/ダブリング/セグメント木/深さ優先探索/幅優先探索/ダイクストラ法/Union-Find/最小全域木問題/最大フロー問題/二部マッチング問題/ほか多数
序章 競技プログラミング入門
第1章 アルゴリズムと計算量
第2章 累積和
第3章 二分探索
第4章 動的計画法
第5章 数学的問題
第6章 考察テクニック
第7章 ヒューリスティック
第8章 データ構造とクエリ処理
第9章 グラフアルゴリズム
第10章 総合問題
終章 さらに上達するには
Amazonで詳しく見る
紹介文
企業や組織のシステム開発では、設計書の取りまとめなどの工程が大切です。本書は「組織でシステムを作る」ことを前提に、必要とされる設計書の書き方と運用の手順を解説します。
また、クラウドやアジャイル開発など、現代コンピューティングの新要素を含めた、システム構築の現実解を知ることができます。
本書は、インプレスの技術メディアThink ITのWeb連載記事「令和時代のシステム開発では、どのような設計書を書くべきか」を書籍化したものです。書籍化にあたって、大幅に加筆・修正をしました。
Amazonで詳しく見る
紹介文
コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介する。名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。またコードを再構成するための方法。さらにテストの書き方などについて、楽しいイラストと共に説明する。日本語版ではRubyやgroongaのコミッタとしても著名な須藤功平氏による解説を収録。
理解しやすいコード
第1部 表面上の改善(名前に情報を詰め込む
誤解されない名前
美しさ
コメントすべきことを知る
コメントは正確で簡潔に)
第2部 ループとロジックの単純化(制御フローを読みやすくする
巨大な式を分割する
変数と読みやすさ)
第3部 コードの再構成(無関係の下位問題を抽出する
一度に1つのことを
コードに思いを込める
短いコードを書く)
第4部 選抜テーマ(テストと読みやすさ
「分/時間カウンタ」を設計・実装する)
付録 あわせて読みたい
Amazonで詳しく見る
紹介文
本書は、SEとは何なのかという問いに、答えを出すための本です。SEを目指している学生の方、転職を考えている方、SEに興味があるけれど、自分にできるのか不安に感じている方に、ぜひ読んでいただきたい本です。
第1章 システムエンジニア概要(システムエンジニアとは?
システムエンジニアとプログラマ
システムエンジニアという仕事)
第2章 システムエンジニアに求められる資質と能力(SEに必要な資質とは?
SEに必要な知識と技術とは?
SEに必要な資格とは?)
第3章 システムエンジニアの現場(SEが働く現場
SEに聞きたい6つの質問
これからのSE)
Amazonで詳しく見る
紹介文
企業の新人研修にも即使える「新人エンジニア向け教科書」第3版。ウォーターフォール型、アジャイル型開発の基礎知識が学べる。
企業の新人研修にも即使える
「新人エンジニア向け教科書」第3版!
低予算や短納期、多様化するIT技術など、システム開発を取り巻く環境は厳しくなる一方です。しかしいちどベースとなる普遍的な知識さえ身に付けてしまえば、なにも恐れることはありません。本書は、社会人エンジニアとしての第一歩を踏み出す方、エンジニアを目指す学生に対し、そうした押さえておきたい基礎知識をゼロから丁寧に解説する入門教科書です。
第3版では、システム開発の目的や意義、流れ、手法、用語などを統合的に学習できるというコンセプトはそのままに、アジャイル型開発の解説を大幅に加筆したほか、全体的な改訂・増補を行いました。ウォータフォール型、アジャイル型の双方の特徴や違い、注意点等、システム開発にあたって知っておくべき知識をしっかり学べるようになっています。
開発途中に作成される各種の定義書・文書については、作成手順や記載項目を説明するほか、作成例を紹介。各章末には、個人学習にもグループ研修にも使える演習課題を用意しています。新人・学生はもちろんのこと、現場の必須知識を再確認したい現役エンジニア、研修を担当される方にも役立つ一冊です。
刊行に寄せて
推薦のことば1
推薦のことば2
オリエンテーション
第1部:ソフトウェア開発の基礎知識
第1章 ソフトウェア開発とは?
01 ソフトウェアエンジニアリング
02 開発における分析と設計
03 開発の工程と成果物
04 代表的な開発モデル
第2章 基本的なルール
01 作業標準の必要性
02 用字と用語
03 工程の名称と作成文書
04 チャート記法
第2部:ウォータフォール型開発モデルでの開発
第3章 開発プロセスと要求定義・要件定義
01 要求定義と要件定義
02 機能要求と非機能要求
03 要件定義書の記述項目と記述例
第4章 設計
01 外部設計
02 外部設計書の記述項目と記述例
03 内部設計
04 内部設計書の記述項目と記述例
第5章 製造とテスト
01 製造工程
02 コーディング規約
03 単体テスト
04 テスト工程
05 結合テスト
06 総合テスト
07 品質保証
08 受入テスト
09 受入テストの実施例
第3部:アジャイル型開発モデルでの開発
第6章 アジャイル型開発モデル
01 ウォータフォール型開発モデルでの開発の難しさ
02 アジャイル型開発モデルとウォータフォール型開発モデルとの違い
03 プロジェクトのビジョンの共有
第7章 スプリントでの活動
01 プロダクトバックログの作成
02 スプリント計画
03 スプリント
04 スプリントレビュー
05 ふりかえり(レトロスペクティブ)
第4部:プロジェクトマネジメント
第8章 プロジェクトマネジメント
01 プロジェクトマネジメントの体系
02 PMBOKの構成
03 プロジェクトのライフサイクルと開発プロセスの関係
第9章 セキュリティ
01 システム開発におけるセキュリティ
02 プロダクトのセキュリティ
03 開発プロセスのセキュリティ
おわりに
Amazonで詳しく見る
紹介文
本書では、近年、注目をあつめるNoCode(ノーコード)による開発については、NoCodeの基礎知識から主要なツールの使い方まで丁寧に解説しています。解説するツールは「Glide」「Adalo」「Bubble」になります。また、巻末に、NoCodeのこれからについて、著者による座談会を収録しています。
CHAPTER 01 NoCodeについて
CHAPTER 02 NoCode全般に必要な知識
CHAPTER 03 Glideを使ってみよう
CHAPTER 04 Adaloを使ってみよう
CHAPTER 05 Bubbleを使ってみよう
CHAPTER 06 NoCodeの未来、これからの話(座談会)
Amazonで詳しく見る
紹介文
技術力を磨くより大切なことがある。
~~~~~~~~~~~~~~~~~~
大手であってもリストラ・倒産は当たり前、年功序列も崩壊した時代。
その一方で、企業のITエンジニア不足は深刻であり、どこの会社も良い人材を求めています。
社員エンジニアからフリーエンジニアとなれば、年収300万円アップも夢ではありません。
では、フリーとして独立する際に大切なこととは?
自らもフリーエンジニアとして活躍しながら、1,100人のスタッフを教育してきた著者が、フリーとして成功するために必要な「あたりまえだけど、なかなかできないこと」を教えます。
第1章 面接術
■1 笑顔で大きな声で、はっきり挨拶する
■2 面接先は人に紹介してもらう
■3 履歴書には使用経験のあるツールも書いておく
■4 自己アピールするより、相手の話をよく聞く
■5 口数の少ない面接官からも話を聞く
■6 少しの沈黙は気にしない
■7 常に笑顔でいられるようにトレーニングをする
■8 経歴書にワードやエクセルを使った経験を書く
第2章 処世術
■1 ブラック企業に用心する
■2 できるだけ社外の人と交流を持つ
■3 率先して「ハイ」と手を挙げる
■4 若手と一緒にランチする
■5 飲み会は帰る時間を決めておく
■6 昼活・朝活をする
■7 合わない会社はすぐ辞める
■8 目標を立てて生き方を決める
■9 気分転換の時間をスケジュールに組み込む
■10 良い仲間がいる場所へはお金を払ってでも行く
■11 異業種のビジネスパートナーに目を向ける
■12 資金調達の相談先を用意しておく
■13 ビジネスカードを作っておく
■14 開業届は会社員時代に出しておく
■15 不動産を買っておく
第3章 営業術
■1 営業経験は独立前から積んでおく
■2 同業種、異業種の二つの団体に入っておく
■3 オンリーワンを探してナンバーワンをとる
■4 相手の興味を惹く小道具を身につける
■5 合理化が図れるツールは積極的にとり入れる
■6 複数の人と話すときはジグザグ法を使う
■7 名刺は個人用も用意し、常に持ち歩く
■8 人と話すときは身振り・手振りを入れる
■9 メモはカラーペンでとる
第4章 仕事術
■1 空き時間にやることを、あらかじめ決めておく
■2 6割ぐらい仕事が終わったら、一度は確認する
■3 提出前の確認作業は怠らない
■4 上手な教わり方を身につけておく
■5 メッセージにちょっとしたひと言を付け加える
■6 配布資料は1枚にまとめる
■7 メールは優先順位でフォルダー分けする
■8 メールを書くときも気遣いを忘れない
■9 仕事はタスクで分類して効率化を図る
■10 他の人に任せられる仕事は任せる
■11 毎日、チェックリストを作って確認する
■12 仕事用の独自ドメインをとっておく
第5章 勉強術
■1 高額のセミナーに通う
■2 資格はできるだけとっておく
■3 資格の勉強は無料サイトを活用する
■4 専門分野以外の知識も得ておく
■5 ビジネス書を読む
■6 本は読みたいところだけを拾い読む
■7 読まない資料は迷わず捨てる
■8 わからないことは、さっさと人に聞く
■9 毎日、ブログを書く
■10 手書きの日記を書く
Amazonで詳しく見る
紹介文
現役Googleエンジニアたちがソフトウェアエンジニアリングに関する知見を凝縮。データ駆動や論理に基づく決定プロセスを理解。
Googleが強大な成果を生み出す源泉を理解し、組織に活かす!
現役のGoogleのエンジニアたちが、その姿勢から具体的なプロセスに至るまで、ソフトウェアエンジニアリングに関するすべての知見をこの1冊に凝縮。時間と変化、規模と成長、トレードオフとコストという3つの基本原理に沿って、コードを持続可能にするにはどうすればよいかを紐解いていきます。組織マネジメント論や認知心理学を背景にした人間に対する深い洞察、Googleらしいデータ駆動や論理に基づく決定プロセスがなぜそのように至ったかまでを理解できます。
現役Googleエンジニアたちがソフトウェアエンジニアリングに関する知見を凝縮。データ駆動や論理に基づく決定プロセスを理解。
Amazonで詳しく見る
紹介文
ソフトウェア開発に必要な「規律、基準、倫理」を身につけよう!
現代社会では、ソフトウェアが社会のインフラとしてあらゆる場面で活用されている。これらのソフトウェアの不具合や、ソフトウェアを用いた不正行為などが起こると、人々の生活に大きな悪影響を与えることになる。社会に影響を与える技術には、規律と制御が必要とされる。本書の目的は、ソフトウェア開発者とそのマネージャーたちに、規律の必要性を印象づけ、堅牢で対障害性のあるソフトウェアを構築するために最も効果的な「規律、基準、倫理」を教えることにある。
「クラフトマン」とは、特定の分野に関する高度なスキルを持ち、物事を成し遂げる人である。本書は、ソフトウェア開発における「クラフトマン」になるためのひとつの道を示してくれる。
Amazonで詳しく見る
紹介文
先を制してライバル企業に勝つためのポイントとは?決算を早期化して利益を稼ぎだすには?業務改革で会社をよみがえらせるには?最高のシステムをつくるための「亀のコウラ」とは?ベンチャーから中堅企業まで50社以上、業務設計・改善から会計監査さらにIPO支援まで20年近いコンサルティング実績を誇る「公認会計士兼システムコンサルタント」という異色の著者だからこそ書ける成功のノウハウが満載!
第1章 「稼げるシステム」と「稼げないシステム」の分かれ道はどこにあるのか?
第2章 先を制してライバル企業に勝つ"経営の視点"
第3章 決算を早期化して利益を稼ぎ出す"会計の視点"
第4章 業務改革で会社をよみがえらせる"業務の視点"
第5章 正しい知識で最高のシステムをつくる"システムの視点"
第6章 プロジェクトを成功に導き、会社を飛躍させよう
Amazonで詳しく見る
紹介文
開発の流れでITの仕事が見えてくる。ビジネスのしくみと企業の動きをマンガとキャラで楽しく解説!現場で役立つ基本が図解でスッキリわかる。
序章 IT業界の基礎知識
1章 IT業界のサービスと顧客
2章 IT事業者のしくみ
3章 システムとIT技術の基本
4章 システムの提案と要件定義
5章 システムの設計と開発
6章 システムの導入と運用
7章 IT業界の新しいながれ
終章 IT業界のこれから
Amazonで詳しく見る
紹介文
2004年に『アルゴリズムC・新版』として発行した書籍の復刊。研究者、大学院生、大学生および現場技術者の必携書!
アルゴリズムの世界的名著 復活!!
本書は、2004年に刊行した『アルゴリズムC 新版』の復刊である。
セジウィックの『アルゴリズム』は、世界の標準教科書として大変高い評価を得ている。直感的でわかりやすい説明、アルゴリズムの振舞いを示す数多くの見事な図、簡潔で具体的なコード、最新の研究成果に基づく実用的アルゴリズムの選択、難解な理論的結果のほどよい説明などがその特長である。アルゴリズムに係わる研究者、技術者、大学院生、学生必携必読の書である。
また、続刊『第5部グラフアルゴリズム』の刊行も決定!
第1部 基礎
1.はじめに
2.アルゴリズム解析の原理
第2部 データ構造
3.基本データ構造
4.抽象データ型
5.再帰と木
第3部 整列
6.初等的な整列法
7.クイックソート
8.併合とマージソート
9.順位キューとヒープソート
10.基数整列
11.特殊目的の整列法
第4部 探索
12.記号表と2分探索木
13.平衡木
14.ハッシュ法
15.基数探索
16.外部探索
Amazonで詳しく見る
紹介文
消費行動が大きく変わるなか、DXの巧拙が企業の明暗を分ける、といった発言を目にします。一方でエンジニア不足が深刻化している、とも言われています。そこで注目されているのが、コードを書かずに開発を行うノーコード、ローコードと呼ばれる開発方法です。この最新のキーワードであるノーコードについて、どのようなものなのか、本書一冊で理解できます。国内外の事例をまじえながら、メリットとデメリット、導入・活用方法を解説。さまざまなノーコードツールの特徴や学習方法についても取り上げます。
Amazonで詳しく見る
紹介文
プログラミング言語を使わずアプリなどを開発する「ノーコード」ツールを紹介する書籍です。本書で紹介するのは「Google Appsheet」「Amazon Honeycode」「Bubble」「Thunkable」「Click」の5つで、それぞれサンプルアプリなどの作成方法も解説します。これ一冊読めば、現時点でのノーコードの主流がわかり、なおかつそれらで簡単なアプリを作れるぐらいになっている、という書籍です。
話題のノーコードツールを紹介する書籍です。Google Appsheet、Amazon Honeycode、Bubble、Thunkable、Clickのサンプルアプリ作成方法などを解説します。
Amazonで詳しく見る
紹介文
企業のIT担当者は、「情報システム部門(情シス)」に所属するエンジニアであったり、「社内SE」「コーポレートエンジニア」などと呼ばれたりもします。IT担当者の業務は多岐にわたります。会社内の業務用のパソコンの手配やネットワーク機器の整備だけでなく、社内のセキュリティ対策や業務システムの導入、システム制作の窓口になることもありえます。そこで本書では、IT担当者が知っておきたい基礎知識について解説していきます。
1章. パソコンと周辺機器を用意する
2章. 社内インフラを整備する
3章. 情報セキュリティを強化する
4章. 業務システムを導入する
5章. システム開発を外部の業者に委託する
それぞれのテーマごとに本が一冊書けるほど、専門性の高い知識が必要な分野ではありますが、これらの経験を一切持たない方が、IT担当者として業務を行っていく上で必要最低限となる知識を解説していきます。
第1章 パソコンと周辺機器を用意する
1.1 パソコンの調達
1.2 CPU
1.3 メモリとディスク
1.4 OS
1.5 アプリケーション
1.6 ディスプレイとプロジェクタ
1.7 その他の周辺機器とドライバ
1.8 スマートデバイス
第2章 社内インフラを整備する
2.1 ネットワークの基本
2.2 IPアドレス
2.3 ルーターとスイッチ
2.4 有線LANと無線LAN
2.5 VPN
2.6 サーバーの種類
2.7 電話
2.8 社内インフラの運用管理
第3章 情報セキュリティを強化する
3.1 情報セキュリティとは
3.2 マルウェアの脅威と対策
3.3 不正アクセスの脅威と対策
3.4 アカウント管理と権限
3.5 情報セキュリティポリシーの制定と運用
3.6 情報セキュリティリテラシーと企業
第4章 業務システムを導入する
4.1 システムの導入形態
4.2 グループウェア
4.3 その他の業務システム
第5章 システム開発を外部の業者に委託する
5.1 システム開発と契約形態
5.2 見積と契約
5.3 要求分析と要件定義
5.4 設計と開発
5.5 納品と検収
Amazonで詳しく見る
紹介文
本書は「Pythonだけ」を学ぶ本ではありません。Pythonを使ってプログラミングを紹介していますが、伝えたい内容はPythonに限らない「プログラミング全般」の知識です。
本書の著者、コーリー・アルソフ(Cory Althoff)は、「独学プログラマー」です。本書は、彼が独学で、ゼロからプログラミングを学んだ体験に基づいて書かれました。
プログラミングを独学で身に付けるために、著者がPythonを通して学んだエッセンスが書かれています。彼の独学プログラマーとしての学び方は、Amazon.comでの本書の評価を見るとわかるように、多くの人に支持されています。
――訳者あとがきより
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
第1部(Part1)
第1章 イントロダクション
第2章 さあ、はじめよう!
第3章 プログラミング入門
第4章 関数
第5章 コンテナ
第6章 文字列操作
第7章 ループ
第8章 モジュール
第9章 ファイル
第10章 知識を1つにまとめる
第11章 ハマったときの助け
第2部(Part2)
第12章 プログラミングパラダイム
第13章 オブジェクト指向プログラミングの4大要素
第14章 もっとオブジェクト指向プログラミング
第15章 知識を1つにまとめる
第3部(Part3)
第16章 Bash
第17章 正規表現
第18章 パッケージ管理
第19章 バージョン管理
第20章 知識を1つにまとめる
第4部(Part4)
第21章 データ構造
第22章 アルゴリズム
第5部(Part5)
第23章 プログラミングのベストプラクティス
第24章 プログラマーとしての最初の仕事
第25章 チームで働く
第26章 さらに学ぼう
第27章 次のステップ
第6部(Part6)
補章 より良いコードにするために
補章 継続して学ぶために
謝辞
訳者あとがき
索引
Amazonで詳しく見る
紹介文
売上、第1位
7年連続!不動の第1位!
もっとも売れているiOSプログラミング解説書!
これからはじめる人に読んでほしい
とことん丁寧な本格入門書です。
プログラミング経験ゼロでも安心の「疑問を残さない詳細解説」だから、
Swiftとアプリ開発の基本はこの一冊で必ず習得できます!
・Xcode 11対応
・iOS 13.5以降 対応
・SwiftUI対応
本書は、これからはじめてiPhoneアプリ開発を学ぼうとしている人にとって少しでも役立つ本であるために、「誰一人、絶対に挫折しない」を命題に、どことんこだわって、とにかく丁寧に解説しています。自信がない人、大歓迎です! ぜひ本書を最後まで読み進めてください。
★アプリ開発は「副業」にも最適!★
リスクゼロで始められて、スキマ時間で作ることができます。
また、世界を相手にアプリを販売できます。
iPhoneアプリ開発は、今の時代に最も適した副業の1つといえます!
(詳しくは本文で解説しています)
最新第8版の目玉は次の通りです。
・業界大注目の「Swift UI」に対応!
・アプリには今や欠かせない、「課金システム」を搭載したアプリが作れる!(本書だけ!)
Chapter01 iPhoneアプリ開発の基礎知識
Chapter02 Xcodeとシミュレータの基本操作
Chapter03 今日からはじめるSwiftUIプログラミング【入門前夜】
Chapter04 今日からはじめるSwiftUIプログラミング【超入門】
Chapter05 iPhoneアプリ開発をはじめよう!
Chapter06 アイコン画像の使い方 ~コンピューテッドプロパティとイニシャライザ~
Chapter07 カウンターアプリ開発で学ぶクロージャ
Chapter08 地図アプリで学ぶプロトコル
Chapter09 英単語カードアプリで学ぶオプショナル
Chapter10 【総合演習】今後につながる少し高度なアプリ開発
Chapter11 アプリ開発の仕上げ
Chapter12 アプリ開発で収益を上げる方法
Chapter13 情報の収集方法とアプリの公開
Appendix 契約手続きとアプリのリリース
Amazonで詳しく見る
紹介文
SEの仕事の成否を分けるのは、コミュニケーションとマネジメントだった!業務システム開発の本質は「人」にあるということをいち早く見抜き、20年以上にわたって開発プロジェクトを次々に成功させてきた著者が、その成功の秘密を公開するSE必読の書。2006年の初版発行以来、増刷に増刷を重ね、No.1マニュアルとして全国のSEから絶賛されてきた『SEの教科書』が、続編『SEの教科書2』とあわせて改訂・完全版で登場。
第1部 成功するSEの考え方、仕事の進め方(SEの仕事は「人」が9割
失敗の原因はコミュニケーション不足
マネジメントが成否の鍵
コミュニケーション重視の会議術-準備編
コミュニケーション重視の会議術-実践編
プロジェクト初期段階の仕事術
成果物作成の仕事術
顧客業務分析の仕事術
設計・実装・テストの仕事術
プロジェクト運営の仕事術
業務システム開発は「伝言ゲーム」)
第2部 成功するSEのプロジェクト計画・運営術(名ばかりプロジェクトマネジメント
誤解がプロジェクトを破綻させる
上流工程はすべて計画活動
本当の計画、名ばかりの計画
ネットワーク図による計画作成術(アナログ式)
ネットワーク図による計画作成術(デジタル式)
ネットワーク図による計画の最適化
IT業界が日本を救う)
Amazonで詳しく見る
紹介文
本書では、プログラミングを仕事にしたい、エンジニアとして働きたい方、およびほかの言語で開発しているがJavaも使えるようになりたいという方を対象に、Javaでプログラミングができるようになるための解説をわかりやすく丁寧に行います。
Javaは、企業システムの構築を得意とするプログラミング言語で、銀行でお金を振り込む、宅配便で荷物を送るといった業務システムで多く使われているほか、検索サイトやSNS、買い物サイトなどサービスの構築でも広く使われています。多くの業務システムで利用されており、Javaプログラマーの人材募集も多いことから、Javaエンジニアになりたい人も比較的多いという状況があります。本書では、そうした中でプロとしてJava開発に携われるようになるために必要なプログラミングの知識をゼロから解説しています。Javaをすでに使っているがもっとプログラムをきちんと書けるようになりたいという人にもおすすめです。
多くの「プログラミングの入門書」では、プログラミング言語の構文は丁寧に解説されていますが、プログラムの書き方の説明はあまりありません。本書ではJavaを対象として、プログラミングに入門できるように解説しています。プログラムを作るという体験を通して、プログラムが動くことの楽しさやまた難しさを感じてもらえることを目標としています。自転車に乗れるようになるために何が必要かというと、自転車のパーツの名前や働き、原理を知ることではありません。自転車に実際に乗って、何度かこけそうになったりこけたりして、徐々にうまく乗ることができるようになるものです。プログラミングも技能なので、文法を覚えてライブラリの使い方を知るだけではプログラムが組めるようにはなりません。実際にプログラムを組んで、動かなかったり動いたりしながら徐々にうまくプログラムが組めるようになります。本書ではこうしたプログラムの組み方をわかりやすく解説します。
本書では、第1部「Javaを始める準備」では、Javaの基本および開発環境のインストール方法について解説します。第2部「Javaの基本」では、JShellを使って基本的な計算や変数、標準API、GUI開発について解説します。第3部「Javaの文法」では、条件分岐と繰り返し、データ構造、メソッドについて解説します。第4部「高度なプログラミング」では、ファイルやネットワークでの入出力と例外、処理の難しさ、クラスとインタフェースを使ったプログラムの構成について解説します。第5部「ツールと開発技法」では、Maven、Javadoc、JUnit、IDE、バージョン管理、Gitについて解説します。第6部「Webアプリケーション開発」では、Spring Bootやデータベースを用いたWebアプリケーション開発について解説します。
本書で、プロとして仕事ができるためのJavaの基礎をしっかりと習得していきましょう。
目次
本書の読み方・動作環境
●第1部 Javaを始める準備
第1章 Java ってなんだろう
1.1 Javaとは
1.1.1 プログラミング言語とは
1.1.2 Javaはどんなプログラミング言語なの?
1.1.3 Javaで何ができるの?
1.1.4 Javaの仕様とJDKディストリビューション
1.2 Javaの情報源
COLUMN Java 公式キャラクター Duke
第2章 開発環境の準備と最初の一歩
2.1 Oracle JDKのインストール
2.1.1 Oracle JDKのダウンロード
2.1.2 Oracle JDKのインストール
COLUMN Oracle 社はJavaを有償化した?
2.2 IntelliJ IDEAのインストールと設定
2.2.1 初心者の段階からIDEを!
2.2.2 IntelliJ IDEAとは
2.2.3 IntelliJ IDEAのダウンロードとインストール
2.2.4 Toolbox Appの設定とIDEの起動
COLUMN IntelliJ IDEAのエディション
2.2.5 IntelliJ IDEAの初期設定
2.3 最初のプログラムを書いてみよう
2.3.1 プロジェクトの作成
2.3.2 IntelliJ IDEAの初期画面
2.3.3 クラスの作成
2.3.4 mainメソッドの実装
COLUMN 近年のJava IDE 事情
●第2部 Javaの基本
第3章 値と計算
3.1 JShellの起動
3.1.1 ターミナルの起動
3.1.2 JShellの起動
3.1.3 JShellの終了
3.2 値と演算
3.2.1 整数
3.2.2 構文エラー
3.2.3 実数
3.2.4 文字列
3.2.5 例外
3.2.6 プログラムがうまく動かない3 段階
3.3 メソッドの呼び出し
3.3.1 メソッドの呼び出し
3.3.2 文字列の掛け算や引き算?
3.3.3 メソッドのシグネチャ
3.3.4 メソッドの使い方がわからないとき
3.3.5 文字列のフォーマット
3.3.6 formattedメソッドでの例外
第4章 変数と型
4.1 変数
4.1.1 複合代入演算子
4.1.2 値に名前を付けるメリット
4.2 型
4.2.1 変数の型
4.2.2 基本型と参照型
4.2.3 変数の型を指定する
4.2.4 文字を扱う型
4.2.5 数値の型変換
4.2.6 型の役割
第5章 標準API
5.1 日付時刻
5.1.1 APIとライブラリ
5.1.2 現在日時を取得する
5.1.3 パッケージとimport
5.1.4 日付時刻の操作
5.1.5 指定した日付時刻を扱う
5.1.6 日付時刻の整形
5.1.7 staticメソッドとインスタンスメソッド
5.2 BigDecimal
5.2.1 実数計算の誤差
5.2.2 BigDecimalでの計算
5.2.3 newによるBigDecimalオブジェクトの生成
5.2.4 BigDecimalオブジェクト生成時の注意
5.2.5 オブジェクトの生成の仕方の違い
第6章 SwingによるGUI
6.1 Swingでのウィンドウ表示
6.1.1 Swing
6.1.2 ウィンドウを表示してみる
6.1.3 入力領域の配置
6.1.4 2つ目の入力領域
6.1.5 ボタンを配置
6.1.6 クラスとオブジェクト、インスタンス
6.1.7 参照を扱う
6.2 画面に絵を描いてみる
6.2.1 ウィンドウの準備
6.2.2 画像の準備
6.2.3 図形の描画
6.3 Javaの基本文法
6.3.1 Javaの文法
6.3.2 入力エラーの対処
6.3.3 IntelliJ IDEAを使わずに実行する
●第3部 Javaの文法
第7章 条件分岐
7.1 論理型
7.1.1 値の比較
7.1.2 オブジェクトの大小比較
7.1.3 オブジェクトが等しいかどうかの比較
7.1.4 論理演算子
7.1.5 条件演算子
7.2 if 文による条件分岐
7.2.1 if 文
7.2.2 else 句
7.2.3 else if
7.3 switchによる条件分岐
7.3.1 switch 文
7.3.2 default 句
7.3.3 switch 式
7.3.4 古い形式のswitch
第8章 データ構造
8.1 Listで値をまとめる
8.1.1 List
8.1.2 変更のできるList
8.1.3 ジェネリクスによる型検査
8.1.4 ジェネリクスの型推論
8.1.5 ラッパークラス
8.2 配列
8.2.1 配列の初期化
8.2.2 要素を設定した配列の初期化
8.2.3 配列の要素の利用
8.2.4 多次元配列
8.3 レコードで違う種類の値を組み合わせる
8.3.1 違う種類の値をListでまとめて扱う
8.3.2 違う種類の値をまとめて扱うレコードを定義する
8.3.3 レコードのオブジェクトを生成する
8.4 Mapで辞書を作る
8.4.1 Map
8.4.2 変更可能なMap
8.4.3 イミュータブル(不変)なオブジェクト
第9章 繰り返し
9.1 ループ構文
9.1.1 for 文の基本
9.1.2 for 文の応用
9.1.3 while 文
9.1.4 do while 文
9.1.5 ループのcontinueとbreak
9.2 ループに慣れる
9.2.1 デバッガーでループを覗く
9.2.2 二重ループ
COLUMN i、jの次は?
9.2.3 もう少しループの練習
9.2.4 迷路ゲームを作る
第10章 データ構造の処理
10.1 データ構造を拡張for 文で扱う
10.1.1 基本for 文でのListの要素の処理
10.1.2 拡張for 文によるListの要素の処理
10.1.3 拡張for 文による配列の要素の処理
10.1.4 値の集合の処理のパターン
10.2 Stream
10.2.1 IntelliJ IDEAによるStreamへの変換
10.2.2 Streamの構成
10.2.3 ラムダ式
10.2.4 Streamソース
10.2.5 終端処理
10.2.6 中間処理
10.2.7 Optional
10.3 基本型のStream 処理
10.3.1 IntStreamで整数の処理
10.3.2 StreamとIntStreamの行き来
第11章 メソッド
11.1 メソッドの宣言
11.1.1 JShellでのメソッド宣言
11.1.2 staticメソッドの宣言
11.1.3 インスタンスメソッドの宣言
11.1.4 IntelliJ IDEAにメソッドを宣言してもらう
11.2 ラムダ式とメソッド参照
11.2.1 ラムダ式
11.2.2 メソッド参照
11.2.3 IntelliJ IDEAでラムダ式とメソッド参照の変換
11.3 メソッドの使いこなし
11.3.1 メソッドのオーバーロード
11.3.2 メソッド呼び出しの組み合わせ
COLUMN うまく名前を付けるのも実力のうち
11.3.3 再帰とスタック
●第4部 高度なプログラミング
第12章 入出力と例外
12.1 ファイルアクセスと例外
12.1.1 ファイル書き込み
12.1.2 ファイル読み込み
12.1.3 例外
12.1.4 throwsで例外を押しつける
12.1.5 try 句で例外に対処する
12.1.6 検査例外と非検査例外
12.1.7 例外を投げる
12.2 ネットワークでコンピュータの外の世界と関わる
12.2.1 サーバーとクライアント
12.2.2 ソケット通信とTCP/IP
12.2.3 OutputStreamでのデータ送信
12.2.4 InputStreamでのデータ受信
12.2.5 try-with-resources
12.3 Webの裏側を見てみる
12.3.1 HTTP
12.3.2 HTTPクライアント
12.3.3 HTTPSで安全なWebアクセス
12.3.4 Webクライアントライブラリ
12.3.5 Webサーバーを作る
第13章 処理の難しさの段階
13.1 ループの難しさの段階
13.1.1 他のデータを参照するループ
13.1.2 隠れた状態を扱うループ
13.2 状態遷移と正規表現
13.2.1 状態遷移の管理とenum
13.2.2 正規表現
13.3 スタックとキュー
13.3.1 スタックとキュー
13.3.2 ツリーの探索
13.3.3 メソッドの再帰呼び出しをスタックを使った処理に置き換える
13.3.4 幅優先探索とキュー
13.3.5 計算の複雑さの階層
第14章 クラスとインタフェース
14.1 クラス
14.1.1 クラスのメンバー
14.1.2 アクセス制御(可視性)
14.1.3 コンストラクタ
14.1.4 this
14.1.5 フィールド
14.1.6 ネステッドクラスとインナークラス
14.2 インタフェース
14.2.1 インタフェースが欲しい状況
14.2.2 インタフェースを使ってメソッドを統一的に扱う
14.2.3 必要なメソッドを実装していないときのエラー
14.2.4 実装を持ったメソッドをインタフェースに定義する
14.2.5 インタフェースにおけるアクセス制御
14.2.6 公称型と構造的部分型
14.3 ラムダ式と関数型インタフェース
14.3.1 関数型インタフェース
14.3.2 標準APIで用意されている関数型インタフェース
14.4 クラスとファイル
14.4.1 ソースファイル
14.4.2 classファイル
14.4.3 コメント
14.4.4 コマンドラインパラメータ
第15章 継承
15.1 継承
15.1.1 クラスの継承
15.1.2 継承でのコンストラクタ
15.1.3 Objectクラス
15.1.4 メソッドのオーバーライド
15.1.5 匿名クラス
15.2 継承の活用
15.2.1 差分プログラミング
15.2.2 継承でデータを分類する
15.2.3 継承とオブジェクト指向
●第5部 ツールと開発技法
第16章 ビルドツールとMaven
16.1 ビルドツールの必要性
16.2 Mavenの基本
COLUMN Maven 以外のJavaビルドツール
16.3 Mavenのモジュールとディレクトリ構成
16.3.1 groupIdとartifactId
16.3.2 Mavenプロジェクトのディレクトリ構成
16.4 ライブラリとMaven Repository
16.4.1 ライブラリへの依存
16.4.2 Maven Central Repository
16.4.3 Mavenプロジェクトへライブラリを追加する
16.4.4 依存のscope
16.4.5 pom.xmlへの依存の記述
16.4.6 pom.xml 記述内容のプロジェクトへの反映
16.4.7 Maven Central Repository のインデックス作成
16.4.8 ライブラリの確認
16.4.9 businessCalendar4Jの動作確認
16.4.10 目的に合ったライブラリを見つける
16.5 MavenのGoal
第17章 Javadocとドキュメンテーション
17.1 Javadocとは
17.2 ブラウザでJavadocを見る
17.2.1 標準APIのJavadoc
17.2.2 Javadocの読み方
17.2.3 英語版のJavadoc
17.3 IDEからJavadocを見る
17.4 Javadocを書く
17.5 JavadocのHTMLを生成する
第18章 JUnitとテストの自動化
18.1 テストの自動化とは
18.1.1 JUnitのセットアップと実行
18.1.2 テストケースの実装、実装コードの修正
18.1.3 その他のアサーションメソッド
18.2 テスト自動化のヒント
18.2.1 効果的にテストケースを書く
18.2.2 テスト駆動開発
18.2.3 GUIアプリケーションやWebアプリケーションのテスト
COLUMN 時間がないからテストは書かない?
18.3 オリンピック開催年を判別するコードをテスト
第19章 IntelliJ IDEAを使いこなす
19.1 補完機能を使いこなす
19.1.1 補完の候補表示と補完確定
19.1.2 import 文の補完
19.2 Live Templateと後置補完
第20章 バージョン管理とGit
20.1 アンドゥやファイルコピーによる履歴管理
20.1.1 Local History
20.2 バージョン管理システム
20.2.1 Gitのインストール
20.3 Git 連携を有効にする
20.4 コミット
20.4.1 コミット対象ファイルの選択
20.4.2 コミットの実行
20.4.3 ファイル追加時の確認ダイアログ
20.4.4 変更したファイルの差分とコミット
20.4.5 Gitログの確認
20.4.6 .gitignoreファイルの作成
20.5 ブランチ
20.5.1 ブランチの作成と切り換え
20.5.2 ブランチのマージ
20.6 Git 誤操作後の復旧方法
20.6.1 Amend
20.6.2 Revert
20.6.3 コミットのReset
●第6部 Webアプリケーション開発
第21章 Spring BootでWebアプリケーションを作ってみる
21.1 Webアプリケーションとフレームワーク
21.1.1 Webアプリケーションとは
21.1.2 Webアプリケーションの仕組み
21.1.3 アプリケーションフレームワークとは
21.1.4 フレームワークを利用するメリット
21.1.5 Webアプリケーション開発に使える代表的なフレームワーク
21.2 Spring Bootでタスク管理アプリケーションを作ってみる
21.2.1 タスク管理アプリケーションの概要
21.2.2 Webアプリケーション用のプロジェクトを作る
21.3 RestControllerでWebアプリケーションの仕組みを学ぶ
21.3.1 @RestControllerアノテーションでコントローラを作成する
21.3.2 クライアントからのリクエストに応えるためのエンドポイントを作る
21.3.3 helloエンドポイントにアクセスしてみる
21.3.4 タスク管理アプリケーションをコマンドラインから起動する
21.4 モデルを使ってアプリケーションの内部情報を保持する
21.4.1 タスクの情報を保持するためのモデルの作成
21.4.2 タスクを追加するエンドポイントの作成
21.4.3 タスクを一覧表示するエンドポイントの作成
21.5 ユーザーインタフェースの作成にテンプレートエンジンを活用する
21.5.1 @Controllerアノテーションでコントローラを作成する
21.5.2 テンプレートエンジン
21.5.3 Thymeleafが使えるようにpom.xmlを修正する
21.5.4 Thymeleaf 用のHTMLテンプレートを作る
21.5.5 HomeControllerのhelloメソッドを修正する
21.5.6 タスクの追加および一覧表示用のテンプレートを用意する
21.5.7 HomeControllerにタスクの一覧表示機能のエンドポイントを実装する
21.5.8 HomeControllerにタスクの追加機能のエンドポイントを実装する
21.5.9 CSSを使ってテンプレートを装飾する
第22章 Webアプリケーションにデータベースを組み込む
22.1 データベースとは
22.1.1 DBMSの種類
22.1.2 リレーショナルデータベースとは
22.1.3 リレーショナルデータベースにアクセスするための言語「SQL」
22.1.4 Javaによるデータベース接続とJDBC
22.2 SQLでH2データベースを操作する
22.2.1 H 2とは
22.2.2 pom.xmlへの依存関係の追加
22.2.3 application.propertiesへの設定の追加
22.2.4 H 2コンソールを使ったデータベース接続
22.2.5 テーブルを作成するCREATE 文
22.2.6 テーブルにレコードを追加するINSERT 文
22.2.7 テーブルに格納されたデータを取得するSELECT 文
22.2.8 すでに登録されているレコードを更新するUPDATE 文
22.2.9 テーブルに登録されているレコードを削除する
22.2.10 タスク管理アプリケーションで使用するSQL 文の例
22.3 Spring BootアプリケーションでSpring JDBCを使用する
22.3.1 Spring JDBCとは
22.3.2 pom.xmlへの依存関係の追加
22.3.3 テーブル初期化用のスクリプトを用意する
22.3.4 データベース操作用のクラスを作成する
COLUMN DI/DIコンテナとは
22.3.5 HomeControllerクラスを修正する
22.3.6 タスク情報の削除機能を追加する
22.3.7 タスク情報の更新機能を追加する
おわりに
Amazonで詳しく見る
紹介文
DX推進で増す「システムを作ってもらう技術」の重要性。本書は、システムに詳しくない業務担当者が、すべきことを余すことなく書く
SEじゃないあなたのための
DX推進の教科書!
企業のDX推進でシステムを「作らせる技術」の重要性は増しています。
プログラマーやSEのような専門家だけがシステムについて考えればよいのではなく、「自分では作れなくとも、『作ってもらうノウハウ』」が必須の時代になったということです。
そのためには、
・「こんなシステムがあればいいのに」を構想し、
・「A機能とB機能、どちらを優先すべきか」を判断し、
・これを作るのにいくらまで投資する価値があるか?を見極め、
・作ってくれる人(社内の情報システム部門、または社外の専門ベンダー)を探し出し適切に依頼し、
・構築プロジェクトで沸き起こる様々な課題を解決
していかなければなりません。
本書はシステムに詳しくない業務担当者が、新しいビジネスを立ち上げるために、または既存の業務を改革するために、すべきこと/陥りやすい落とし穴を余すことなく書きます。
著者が20年以上にわたり支援してきた多くのプロジェクトでの事例やエピソードを詰め込んだ、実務家のための教科書です。
A章 作る前に知っておくべきこと
B章 プロジェクト全体の進め方
C章 ゴール(Why)を明らかにする
D章 現状の棚卸をする
E章 将来像(How)を明らかにする
F章 システム要求(What)を求めるプロセス
G章 機能を洗い出す7つの方法
H章 要求をFMにまとめる
I章 要求の詳細をFSに表現する
J章 優先順位の基準を決める
K章 作る機能を決める
L章 FMがシステム構築を成功に導く
M章 機能以外の要求を定義する
N章 パートナーの1次選定
O章 提案を依頼する
P章 パートナーを決定する
Q章 稼働までに計画を立てる
R章 プロジェクトの投資決裁を得る
S章 課題を先出しする
T章 開発チームの立ち上げ
U章 キーチャート
V章 開発中の関与
W章 データ移行
X章 いよいよ新システムの稼働
Y章 〔補足〕ベンチャーでのシステム構築
Z章 〔補足〕FMをシステム構築以外に応用する
Amazonで詳しく見る
紹介文
TypeScriptは、JavaScriptに静的型付けの機能を加えたオープンソースのプログラミング言語です。本書では、根幹となるJavaScriptの仕様・機能とともに、TypeScript独自の仕様・機能を解説します。TypeScriptの基礎知識はこれ一冊だけで学べます。
静的型付き言語は世にいくつもありますが、TypeScriptの型システムは他に類を見ない高い表現力を持っています。本書の読者が、型の有効性を理解しTypeScriptらしいコードを書けるようになるために、本書では、プログラムの安全性を高める基本的な型の扱い方から、TypeScriptの「高い表現力」の源となっているリテラル型・ユニオン型・keyof 型の扱い方まで幅広く取り上げます。また、わかりにくい機能や型安全を脅かす危険な機能についてもごまかさず、歴史的経緯や目的・用途を踏まえたうえで最善の扱い方を説明します。
章ごとに力試し問題を用意しており、理解の度合いを確認しながら学習を進められます。
第1章 イントロダクション
1.1 TypeScriptとは
1.1.1 JavaScriptに対する“静的型付け”
1.1.2 高い表現力を持つ型システム
1.1.3 静的型付けのメリット(1)型安全性
1.1.4 静的型付けのメリット(2)ドキュメント化と入力補完
1.1.5 TypeScript年表
1.2 TypeScriptとJavaScriptとの関係
1.2.1 TypeScriptコンパイラの役割(1)型チェック
1.2.2 TypeScriptコンパイラの役割(2)トランスパイル
1.2.3 TypeScriptとECMAScriptの関係
1.3 TypeScriptの開発環境
1.3.1 Node.jsのインストール
1.3.2 エディタの準備
1.3.3 ディレクトリの作成とTypeScriptのインストール
1.3.4 tsconfig.jsonの準備
1.3.5 初めてのTypeScriptプログラム
第2章 基本的な文法・基本的な型
2.1 文と式
2.1.1 文と式の基本
2.1.2 文と式は“結果”の有無で区別する
2.1.3 式文
2.2 変数の宣言と使用
2.2.1 変数宣言の構文
2.2.2 識別子
2.2.3 変数に型注釈を与える
2.2.4 letによる変数宣言と変数への再代入
2.3 プリミティブ型
2.3.1 プリミティブとは何か
2.3.2 TypeScriptにおける数値型の特徴
2.3.3 数値リテラル
2.3.4 任意精度整数(BigInt)
2.3.5 文字列型と3種類の文字列リテラル
2.3.6 文字列中のエスケープシーケンス
2.3.7 真偽値と真偽値リテラル
2.3.8 nullとundefined
2.3.9 プリミティブ型同士の変換(1)暗黙の変換を体験する
2.3.10 プリミティブ型同士の変換(2)明示的な変換を行う
2.4 演算子
2.4.1 算術演算子(1)二項演算子
2.4.2 算術演算子(2)単項演算子
2.4.3 文字列の結合を+演算子で行う
2.4.4 比較演算子と等価演算子
2.4.5 論理演算子(1)真偽値の演算
2.4.6 論理演算子(2)一般形と短絡評価
2.4.7 条件演算子
2.4.8 代入演算子
2.4.9 その他の演算子
2.5 基本的な制御構文
2.5.1 条件分岐(1)if文の基本
2.5.2 ブロック
2.5.3 条件分岐(2)elseを使う
2.5.4 switch文
2.5.5 while文によるループ
2.5.6 for文によるループ
2.6 力試し
2.6.1 FizzBuzzを書いてみよう
2.6.2 解説
第3章 オブジェクトの基本とオブジェクトの型
3.1 オブジェクトとは
3.1.1 オブジェクトは“連想配列”である
3.1.2 オブジェクトリテラル(1)基本的な構文
3.1.3 オブジェクトリテラル(2)プロパティ名の種々の指定方法
3.1.4 プロパティアクセス:値の取得と代入
3.1.5 オブジェクトリテラル(3)スプレッド構文
3.1.6 オブジェクトはいつ“同じ”なのか
3.2 オブジェクトの型
3.2.1 オブジェクト型の記法
3.2.2 オブジェクト型の型チェックと安全性
3.2.3 type文で型に別名をつける
3.2.4 interface宣言でオブジェクト型を宣言する
3.2.5 任意のプロパティ名を許容する型(インデックスシグネチャ)
3.2.6 オプショナルなプロパティの宣言
3.2.7 読み取り専用プロパティの宣言
3.2.8 typeofキーワードで変数の型を得る
3.3 部分型関係
3.3.1 部分型とは
3.3.2 プロパティの包含関係による部分型関係の発生
3.3.3 余剰プロパティに対する型エラーについて
3.4 型引数を持つ型
3.4.1 型引数を持つ型を宣言する
3.4.2 型引数を持つ型を使用する
3.4.3 部分型関係による型引数の制約
3.4.4 オプショナルな型引数
3.5 配列
3.5.1 配列リテラルで配列を作成する
3.5.2 配列の要素にアクセスする
3.5.3 配列型の記法
3.5.4 readonly配列型
3.5.5 配列の機能を使う
3.5.6 for-of文によるループ
3.5.7 タプル型
3.6 分割代入
3.6.1 オブジェクトの分割代入(1)基本的なパターン
3.6.2 オブジェクトの分割代入(2)ネストしたパターン
3.6.3 配列の分割代入
3.6.4 分割代入のデフォルト値
3.6.5 restパターンでオブジェクトの残りを取得する
3.7 その他の組み込みオブジェクト
3.7.1 Dateオブジェクト
3.7.2 正規表現オブジェクト(1)正規表現の基本
3.7.3 正規表現オブジェクト(2)正規表現を使う方法
3.7.4 Mapオブジェクト・Setオブジェクト
3.7.5 プリミティブなのにプロパティがある?
3.8 力試し
3.8.1 データ処理をしよう
3.8.2 解説
3.8.3 別解
第4章 TypeScriptの関数
4.1 関数の作り方
4.1.1 関数宣言で関数を作る
4.1.2 返り値がない関数を作る
4.1.3 関数式で関数を作る
4.1.4 アロー関数式で関数を作る
4.1.5 アロー関数式の省略形
4.1.6 メソッド記法で関数を作る
4.1.7 可変長引数の宣言
4.1.8 関数呼び出しにおけるスプレッド構文
4.1.9 オプショナル引数の宣言
4.1.10 コールバック関数を使ってみる
4.2 関数の型
4.2.1 関数型の記法
4.2.2 返り値の型注釈は省略可能
4.2.3 返り値の型注釈は省略すべきか
4.2.4 引数の型注釈が省略可能な場合
4.2.5 コールシグネチャによる関数型の表現
4.3 関数型の部分型関係
4.3.1 返り値の型による部分型関係
4.3.2 引数の型による部分型関係
4.3.3 引数の数による部分型関係
4.4 ジェネリクス
4.4.1 関数の型引数とは
4.4.2 関数の型引数を宣言する方法
4.4.3 関数の型引数は省略できる
4.4.4 型引数を持つ関数型
4.5 変数スコープと関数
4.5.1 変数のスコープとは
4.5.2 ブロックスコープと関数スコープ
4.6 力試し
4.6.1 簡単な関数を書いてみよう
4.6.2 解説
4.6.3 コールバック関数の練習
4.6.4 解説
第5章 TypeScriptのクラス
5.1 クラスの宣言と使用
5.1.1 クラス宣言とnew構文
5.1.2 プロパティを宣言する
5.1.3 メソッドを宣言する
5.1.4 コンストラクタ
5.1.5 静的プロパティ・静的メソッド
5.1.6 種類のアクセシビリティ修飾子
5.1.7 コンストラクタ引数でのプロパティ宣言
5.1.8 クラス式でクラスを作成する
5.1.9 もう1つのプライベートプロパティ
5.1.10 クラスの静的初期化ブロック
5.1.11 型引数を持つクラス
5.2 クラスの型
5.2.1 クラス宣言はインスタンスの型を作る
5.2.2 newシグネチャによるインスタンス化可能性の表現
5.2.3 instanceof演算子と型の絞り込み
5.3 クラスの継承
5.3.1 継承(1)子は親の機能を受け継ぐ
5.3.2 継承(2)親の機能を上書きする
5.3.3 override修飾子とその威力
5.3.4 privateとprotectedの動作と使いどころ
5.3.5 implementsキーワードによるクラスの型チェック
5.4 this
5.4.1 関数の中のthisは呼び出し方によって決まる
5.4.2 アロー関数におけるthis
5.4.3 thisを操作するメソッド
5.4.4 関数の中以外のthis
5.5 例外処理
5.5.1 throw文とErrorオブジェクト
5.5.2 例外をキャッチするtry-catch文
5.5.3 例外処理と大域脱出
5.5.4 finallyで脱出に割り込む
5.6 力試し
5.6.1 クラスに書き換えてみる
5.6.2 解説
5.6.3 クラスを関数に書き換えてみる
5.6.4 解説
第6章 高度な型
6.1 ユニオン型とインターセクション型
6.1.1 ユニオン型の基本
6.1.2 伝播するユニオン型
6.1.3 インターセクション型とは
6.1.4 ユニオン型とインターセクション型の表裏一体な関係
6.1.5 オプショナルプロパティ再訪
6.1.6 オプショナルチェイニングによるプロパティアクセス
6.2 リテラル型
6.2.1 種類のリテラル型
6.2.2 テンプレートリテラル型
6.2.3 ユニオン型とリテラル型を組み合わせて使うケース
6.2.4 リテラル型のwidening
6.2.5 wideningされるリテラル型・wideningされないリテラル型
6.3 型の絞り込み
6.3.1 等価演算子を用いる絞り込み
6.3.2 typeof演算子を用いる絞り込み
6.3.3 代数的データ型をユニオン型で再現するテクニック
6.3.4 switch文でも型を絞り込める
6.4 keyof型・lookup型
6.4.1 lookup型とは
6.4.2 keyof型とは
6.4.3 keyof型・lookup型とジェネリクス
6.4.4 number型もキーになれる?
6.5 asによる型アサーション
6.5.1 型アサーションを用いて式の型をごまかす
6.5.2 as constの用法
6.6 any型とunknown型
6.6.1 any型という最終兵器
6.6.2 any型の存在理由
6.6.3 anyに近いが安全なunknown型
6.7 さらに高度な型
6.7.1 object型・never型
6.7.2 型述語(ユーザー定義型ガード)
6.7.3 可変長タプル型
6.7.4 mapped types
6.7.5 conditional types
6.7.6 組み込みの型を使いこなす
6.8 力試し
6.8.1 タグ付きユニオンの練習(1)
6.8.2 解説
6.8.3 タグ付きユニオンの練習(2)
6.8.4 解説
6.8.5 タグ付きユニオンの練習(3)
6.8.6 解説
第7章 TypeScriptのモジュールシステム
7.1 import宣言とexport宣言
7.1.1 変数のエクスポートとインポート
7.1.2 関数もエクスポートできる
7.1.3 defaultエクスポートとdefaultインポート
7.1.4 型のインポート・エクスポート
7.1.5 その他の関連構文
7.2 Node.jsのモジュールシステム
7.2.1 Node.jsの組み込みモジュール
7.2.2 npmとは
7.2.3 package.jsonとpackage-lock.jsonの役割
7.3 DefinitelyTypedと@types
7.3.1 @typesパッケージのインストール
7.4 力試し
7.4.1 ファイルを読み込んでみる
7.4.2 解説
7.4.3 pathモジュールも使ってみる
7.4.4 解説
第8章 非同期処理
8.1 非同期処理とは
8.1.1 “時間がかかる処理”としての非同期処理
8.1.2 シングルスレッドモデル・ノンブロッキング
8.2 コールバックによる非同期処理の扱い
8.2.1 コールバック関数とは
8.2.2 タイマーの例
8.2.3 fsモジュールによるファイル操作の例
8.2.4 同期処理と非同期処理の順序
8.3 Promiseを使う
8.3.1 Promise版のfsを使ってみる
8.3.2 コールバック関数の登録とエラー処理(1)
8.3.3 コールバック関数の登録とエラー処理(2)
8.3.4 自分でPromiseオブジェクトを作る
8.3.5 Promiseの静的メソッド(1)
8.3.6 Promiseの静的メソッド(2)
8.3.7 Promiseの静的メソッド(3)
8.3.8 Promiseチェーン(1)チェーンを作る
8.3.9 Promiseチェーン(2)非同期処理の連鎖
8.3.10 Promiseチェーン(3)エラーの扱い
8.3.11 dynamic import構文
8.4 async/await構文
8.4.1 async関数を作ってみる
8.4.2 await式も使ってみる
8.4.3 awaitの返り値
8.4.4 awaitとエラー処理
8.4.5 async関数のいろいろな宣言方法
8.5 力試し
8.5.1 fs/promisesを使ってみる
8.5.2 解説
8.5.3 タイムアウトを追加してみよう
8.5.4 解説
第9章 TypeScriptのコンパイラオプション
9.1 tsconfig.jsonによるコンパイラオプションの設定
9.1.1 tsconfig.jsonの自動生成
9.1.2 ファイルパス周りの設定を押さえる
9.2 チェックの厳しさに関わるオプション
9.2.1 チェックをまとめて有効にできるstrictオプション
9.2.2 strictNullChecksでnullとundefinedを安全に検査する
9.2.3 型の書き忘れや推論の失敗を防ぐnoImplicitAnyオプション
9.2.4 インデックスアクセスを厳しくするnoUncheckedIndexedAccessオプション
9.2.5 新規プロジェクトでのお勧め設定
Amazonで詳しく見る
紹介文
ITエンジニアが業務で必要な文書や文章を書くために「最低限必要な知識、ノウハウ、コツ」を整理し、解説した指南書
メールでもチャットでも社内文書でも
わかりやすい・伝わる書き方がわかる!
本書は、IT分野における国家試験対策の論文指導や、
コミュニケーション・マネジメント、教育コンサルタント、コーチとして
豊富な経験を持つ著者が執筆した文章・文書作成の指南書です。
システム開発の現場や日常の社内業務において、社内文書やメールなどが
重要なコミュニケーションツールであることは言うまでもありません。
ところがその文書や文章に書き漏れがあったり、あいまいな記述があったりすると、
読み手に不要な誤解や混乱を与え、意思の伝達がうまくいきません。
これが、分業を前提とするシステム開発を失敗させる要因の1つとなっています。
そこで本書では、ITエンジニアが業務で必要な文書や文章を書くために
「最低限必要な知識、ノウハウ、コツ」を整理し、紹介します。
第1部の基礎編では、エンジニアが書く文章の問題点や、
わかりやすい・伝わる文章を書くために必要な
文章表現力の7つの基礎技術について説明します。
第2部の実践編では、社内の基礎的なコミュニケーション、顧客や社外の人とのやりとり、
アイデアや企画の検討・提案、相手に配慮した円滑な社内コミュニケーションなど、
状況別に具体的な文書・文章の書き方を実践的なテクニックとともに解説します。
●書き方を解説する文書・文章
調査報告、課題報告、進捗報告、会議開催通知、会議議事録、情報提供依頼書、提案依頼書、
顧客とのデザインシンキング実施依頼、商談メール・文書、依頼お断りメール・文書、
情報提供依頼メール・文書、業務改善企画書、説得メール・文書、新規ビジネス企画書、
作業協力依頼メール・文書、指導メール・文書、お礼メール・文書、作業指示書、
協業誘いメール・文書 ほか
■第1部 基礎編
第1章 エンジニアが書く文章の問題点と文章表現力
1-1 ビジネス向け文章作成に必要な素養
1-2 文章の基本は、相手と目的の理解
1-3 文章表現力の基礎技術とは?
第2章 文章表現力の基礎技術を活用する
2-1 7つの力1 確実に伝える
2-2 7つの力2 納得させる
2-3 7つの力3 一目でわかる
2-4 7つの力4 理解しやすくする
2-5 7つの力5 正確に伝える
2-6 7つの力6 短い文章で伝える
2-7 7つの力7 心に訴える
■第2部 実践編
第3章 社内の基礎的なコミュニケーション
3-1 調査依頼された内容を報告する[調査報告]
3-2 現状課題を報告する[課題報告]
3-3 進捗遅れを報告する[進捗報告]
3-4 会議の開催を連絡する[会議開催通知]
3-5 会議結果を報告する[会議議事録]
3-6 練習問題|課題報告書を書いてみよう
3-7 練習問題の解説と作成例
第4章 顧客や社外の人とやりとりする
4-1 顧客にヒアリングする[ヒアリング依頼]
4-2 システム導入の情報提供や提案を依頼する[情報提供依頼][提案依頼]
4-3 顧客と解決策を議論する[顧客とのデザインシンキング実施依頼]
4-4 顧客に決断させる[商談メール・文書]
4-5 顧客からの依頼を断る[依頼お断りメール・文書]
4-6 練習問題|提案依頼書(RFP)を書いてみよう
4-7 練習問題の解説と作成例
第5章 アイデアや企画を考える・提案する
5-1 企画に必要な情報を社外から収集する[情報提供依頼メール・文書]
5-2 業務改善の企画を考える[業務改善企画]
5-3 自分の考えで上司を説得する[説得メール・文書]
5-4 新しいビジネスを企画する[新規ビジネス企画]
5-5 ブレストする、アイデアを出し合う[Slackなどのチャットスタイル]
5-6 練習問題|新規ビジネス企画書を書いてみよう
5-7 練習問題の解説と作成例
第6章 相手に配慮した円滑な社内コミュニケーション
6-1 他部門の人に依頼する[作業協力依頼メール・文書]
6-2 後輩や部下をほめてやる気にさせる[指導メール・文書]
6-3 感謝の気持ちを伝える[お礼メール・文書]
6-4 仕事の指示をする[作業指示]
6-5 同じ目的・考えの仲間を増やす[協業誘いメール・文書]
6-6 練習問題|作業指示書を書いてみよう
6-7 練習問題の解説と作成例
Amazonで詳しく見る
紹介文
「ITエンジニア本大賞2023」技術書部門で大賞受賞!
本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。
システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。
コードの可読性が低く調査に時間がかかる、
コードの影響範囲が不明で変更すると動かなくなる、
新機能を追加したいがどこに実装すればいいかわからない……。
変更しづらいコードは、成長できないコードです。
ビジネスの進化への追随や、機能の改善が難しくなります。
成長できないコードの問題を、設計で解決します。
1 悪しき構造の弊害を知覚する
1.1 意味不明な命名
1.2 理解を困難にする条件分岐のネスト
1.3 さまざまな悪魔を招きやすいデータクラス
1.4 悪魔退治の基本
2 設計の初歩
2.1 省略せずに意図が伝わる名前を設計する
2.2 変数を使い回さない、目的ごとの変数を用意する
2.3 ベタ書きせず、意味のあるまとまりでメソッド化
2.4 関係し合うデータとロジックをクラスにまとめる
3 クラス設計 ―すべてにつながる設計の基盤―
3.1 クラス単体で正常に動作するよう設計する
3.2 成熟したクラスへ成長させる設計術
3.3 悪魔退治の効果を検証する
3.4 プログラム構造の問題解決に役立つ設計パターン
Column 種類の異なる言語と本書のノウハウ
4 不変の活用 ―安定動作を構築する―
4.1 再代入
4.2 可変がもたらす意図せぬ影響
4.3 不変と可変の取り扱い方針
5 低凝集 ―バラバラになったモノたち―
5.1 staticメソッドの誤用
5.2 初期化ロジックの分散
5.3 共通処理クラス(Common・Util)
5.4 結果を返すために引数を使わないこと
Column C#のoutキーワード
5.5 多すぎる引数
5.6 メソッドチェイン
6 条件分岐 ―迷宮化した分岐処理を解きほぐす技法―
6.1 条件分岐のネストによる可読性低下
6.2 switch文の重複
Column クソコード動画「switch文」
6.3 条件分岐の重複とネスト
6.4 型チェックで分岐しないこと
6.5 interfaceの使いこなしが中級者への第一歩
6.6 フラグ引数
7 コレクション ―ネストを解消する構造化技法―
7.1 わざわざ自前でコレクション処理を実装してしまう
Column 車輪の再発明
7.2 ループ処理中の条件分岐ネスト
7.3 低凝集なコレクション処理
8 密結合 ―絡まって解きほぐせない構造―
8.1 密結合と責務
Column クソコード動画「共通化の罠」
8.2 密結合の各種事例と対処方法
Column クソコード動画「継承」
9 設計の健全性をそこなうさまざまな悪魔たち
9.1 デッドコード
9.2 YAGNI原則
9.3 マジックナンバー
9.4 文字列型執着
9.5 グローバル変数
9.6 null問題
9.7 例外の握り潰し
9.8 設計秩序を破壊するメタプログラミング
9.9 技術駆動パッケージング
9.10 サンプルコードのコピペ
9.11 銀の弾丸
10 名前設計 ―あるべき構造を見破る名前―
10.1 悪魔を呼び寄せる名前
10.2 名前を設計する―目的駆動名前設計
10.3 設計時の注意すべきリスク
10.4 意図がわからない名前
Column 技術駆動命名を用いる分野もある
10.5 構造を大きく歪ませてしまう名前
Column クソコード動画「Managerクラス」
10.6 名前的に居場所が不自然なメソッド
10.7 名前の省略
11 コメント ―保守と変更の正確性を高める書き方―
11.1 退化コメント
11.2 コメントで命名をごまかす
11.3 意図や仕様変更時の注意点を読み手に伝えること
11.4 コメントのルール まとめ
11.5 ドキュメントコメント
12 メソッド(関数) ―良きクラスには良きメソッドあり―
12.1 必ず自身のクラスのインスタンス変数を使うこと
12.2 不変をベースに予期せぬ動作を防ぐ関数にすること
12.3 尋ねるな、命じろ
Column クソコード動画「カプセル化」
12.4 コマンド・クエリ分離
12.5 引数
12.6 戻り値
Column メソッドの名前設計
Column staticメソッドの扱いに注意
13 モデリング ―クラス設計の土台―
13.1 邪悪な構造に陥りがちなUserクラス
13.2 モデリングの考え方とあるべき構造
13.3 良くないモデルの問題点と解決方法
Column クソコード動画「Userクラス」
13.4 機能性を左右するモデリング
14 リファクタリング ―既存コードを成長に導く技―
14.1 リファクタリングの流れ
14.2 ユニットテストでリファクタリングのミスを防ぐ
14.3 あやふやな仕様を理解するための分析方法
14.4 IDEのリファクタリング機能
14.5 リファクタリングで注意すべきこと
Column Railsアプリのリファクタリング
15 設計の意義と設計への向き合い方
15.1 本書はなんの設計について書いたものなのか
15.2 設計しないと開発生産性が低下する
15.3 ソフトウェアとエンジニアの成長性
15.4 課題を解決する
15.5 コードの良し悪しを判断する指標
Column クラスを分割すると読みにくくなる?
15.6 コード分析をサポートする各種ツール
Column シンタックスハイライトを品質可視化に利用する
15.7 設計対象と費用対効果
15.8 時間を操る超能力者になろう
16 設計を妨げる開発プロセスとの戦い
16.1 コミュニケーション
16.2 設計
16.3 実装
16.4 レビュー
16.5 チームの設計力を高める
17 設計技術の理解の深め方
17.1 さらにステップアップするための設計技術書紹介
Column バグ退治RPG『バグハンター2 REBOOT』
17.2 設計スキルを高める学び方
Column C#と長き旅、そして設計への道
Amazonで詳しく見る
紹介文
ITエンジニアに関わる職種は多様化し、その役割とスキルは様々なものに細分化しています。その中でもインフラエンジニアは、ネットワーク、サーバー、クラウドなど、サービスやシステムを稼働させるためになくてはならない存在です。本書は、こうしたインフラエンジニアに転職/就職を考えている人、またすでに就職が決まっている人を対象に、インフラエンジニアの業界知識、業務内容、労働環境、必要な知識、心構え、キャリアパスなどを豊富な図解をまじえて解説します。
第1章 ITインフラの基礎知識
01 IT社会を支えるITインフラ
02 インフラの需要
第2章 インフラエンジニアの仕事と仕組み
03 インフラエンジニアってどんな人?
04 インフラエンジニアの仕事場
05 インフラエンジニアの仕事
06 インフラのクラウド化
07 インフラの設計
08 インフラの構築
09 インフラの保守運用
第3章 インフラエンジニアの求人状況と働き方
10 インフラエンジニアの求人状況
11 インフラエンジニアの学歴と年齢
12 インフラエンジニアの労働環境
13 インフラエンジニアの1日 CASE1
14 インフラエンジニアの1日 CASE2
15 インフラエンジニアの1日 CASE3
第4章 インフラエンジニアになるには
16 インフラエンジニアには知識と経験が必要
17 インフラエンジニアに必要なスキル
18 インフラエンジニアに関連した資格
19 インフラエンジニアになるには~学生の場合~
20 インフラエンジニアになるには~ITエンジニアの場合~
21 インフラエンジニアになるには~非エンジニアの場合~
22 インフラエンジニアになったら
第5章 インフラの概要
23 インフラエンジニアの業務範囲
24 サーバーとクライアント
25 IPアドレス
26 IPアドレスの自動割り当て
27 ドメイン名とDNS
28 ネットワーク機器とルーティング
29 拠点間の接続
30 サーバーとOS、各種ソフトウェア
31 暗号化とデジタル証明書
32 ストレージ
33 データベース
34 冗長化と負荷分散
35 セキュリティ
36 マネージドサービスとサーバーレス
37 データセンター
第6章 インフラの設計
38 インフラ設計の流れ
39 要件を定義する
40 可用性と性能・拡張性
41 ネットワークを設計する
42 機器の選定
43 監視とログの集約
44 バックアップ
第7章 インフラを構築する
45 インフラ構築の準備
46 入念な準備・検証をする
47 実地作業での流れ
48 実地作業の大原則
49 ネットワークの構築
50 サーバーの構築
51 動作を確認する
第8章 インフラの運用
52 インフラは生きている
53 インフラを監視する
54 障害に対応する
55 システムのアップデートとリプレース
56 庶務に対応する
第9章 安定したインフラを構築するために
57 障害が起こらないインフラはない
58 インフラ運用では記録管理が大切
59 スケーリングできるシステムを考える
60 クラウドの使いどころと注意点
第10章 インフラ業界でのステップアップ
61 最新の知識を取り入れる
62 大規模システムの経験を積む
63 セキュリティの知識を身に付ける
64 ソフトウェア開発を知る
65 仮想化技術、コンテナ、クラウドを理解する
66 インフラエンジニアのキャリアパス
Amazonで詳しく見る
紹介文
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress's highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone's feedback, we selected 15 folks who've been kind enough to agree to be interviewed: * Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow * Joe Armstrong: Inventor of Erlang * Joshua Bloch: Author of the Java collections framework, now at Google * Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger * Douglas Crockford: JSON founder, JavaScript architect at Yahoo! * L.
Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 * Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation * Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal * Dan Ingalls: Smalltalk implementor and designer * Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler * Donald Knuth: Author of The Art of Computer Programming and creator of TeX * Peter Norvig: Director of Research at Google and author of the standard text on AI * Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress * Ken Thompson: Inventor of UNIX * Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker What you'll learnHow the best programmers in the world do their jobs! Who this book is for Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.
Table of Contents * Jamie Zawinski * Brad Fitzpatrick * Douglas Crockford * Brendan Eich * Joshua Bloch * Joe Armstrong * Simon Peyton Jones * Peter Norvig * Guy Steele * Dan Ingalls * L Peter Deutsch * Ken Thompson * Fran Allen * Bernie Cosell * Donald Knuth
Amazonで詳しく見る
紹介文
どうやってプログラミングを学んだ?他人のコードをどうやって読む?ソフトウェアはどう設計する?バグを追跡する方法は?プログラミングの将来はどうなる?プログラミング言語が果たす役割は?プログラマであるピーター・サイベルが15人の偉大なコーダーからその技を聞き出すインタビュー。
ジェイミー・ザウィンスキー
ブラッド・フィッツパトリック
ダグラス・クロックフォード
ブレンダン・アイク
ジョシュア・ブロック
ジョー・アームストロング
サイモン・ペイトン・ジョーンズ
ピーター・ノーヴィグ
ガイ・スティール
ダン・インガルス
L・ピーター・ドイチュ
ケン・トンプソン
フラン・アレン
バーニー・コーセル
ドナルド・クヌース
Amazonで詳しく見る
紹介文
本書は、サーバ/インフラの運用・管理などに携わるエンジニアにとって必要な技術や知識を基本から解説した1冊です。ネットワークやサーバの基礎知識はもちろんのこと、クラウド全盛の現代に必要な知識についてもしっかりフォロー。技術に関する解説だけにとどまらず、サーバ/インフラエンジニアとして必要な考え方、学習法、スキルアップ、業務知識、職業倫理などについても取り上げていますから、これからサーバ/インフラエンジニアを目指す人にとって最適な教科書です。
■第1章 エンジニアとして生きる
1.1 インフラエンジニアとは
1.2 技術力とは
1.3 成長とは
1.4 学びとはどういうことか
1.5 継続的な学び・成長のために重要なこと
1.6 インフラエンジニアをとりまく時代の流れ
1.7 インフラエンジニアが扱うテクノロジのオーバービュー
■第2章 ネットワークの基礎知識
2.1 巨大ネットワーク「インターネット」の形
2.2 階層と規格
2.3 IPアドレス
2.4 ポート番号
2.5 マルチキャスト、エニーキャスト、ブロードキャスト
2.6 NAT、NAPT
2.7 パケット
2.8 ルーティング
2.9 ARP
2.10 TCPとUDP
2.11 速度と品質
■第3章 インターネットの基礎知識
3.1 HTTP
3.2 URLとURI
3.3 ドメイン名
3.4 DNS
3.5 HTTPSとTLS証明書(SSL証明書)
3.6 PKI
■第4章 サーバの基礎知識
4.1 サーバの基本的な構成
4.2 Linuxの基礎知識
4.3 Linuxの基本操作
4.4 Linuxのネットワーク操作
■第5章 仮想化の基礎知識
5.1 サーバ仮想化
5.2 コンテナ
5.3 ストレージやネットワークの仮想化
5.4 デスクトップ作業環境の仮想化
5.5 仮想化と高集積化
■第6章 ミドルウェアの基礎知識
6.1 Webシステムの構成要素
6.2 Webサーバ
6.3 アプリケーションサーバ
6.4 ロードバランサ
6.5 プロキシ(Proxy/CDN)
6.6 RDBMS
6.7 KVS
■第7章 Webサービス運用の基礎知識
7.1 システムは何もしないと壊れる
7.2 システムはよくわからない状態になる
7.3 システムの可用性とは
7.4 運用フェーズでの情報共有
7.5 構成管理・変更管理
7.6 CI/CD
7.7 モニタリング
7.8 バックアップ
■第8章 セキュリティの基礎知識
8.1 情報セキュリティとは
8.2 鉄板の対策①[ID管理]
8.3 鉄板の対策②[アップデートと期日管理]
8.4 鉄板の対策③[Firewallによる境界型防御]
8.5 鉄板の対策④[IDSやIPSによる内部検査]
8.6 鉄板の対策⑤[ セキュリティインシデント対応と証跡取得]
■第9章 クラウドの基礎知識
9.1 クラウドコンピューティングとは
9.2 クラウドコンピューティングで変わったこと
9.3 代表的なクラウドサービス:AWS(Amazon Web Services)の基礎知識
9.4 AWSの代表的なサービス
9.5 利用するサービスの選び方
■第10章 法律・ライセンスの基礎知識
10.1 通信の秘密
10.2 善管注意義務
10.3 プロバイダ責任制限法
10.4 OSSとライセンス
Amazonで詳しく見る
紹介文
3つの「因果のはしご」を駆使した「なぜ?」の科学。AIジャンルの超弩級本。データ分析、意思決定に携わるビジネスパーソン必読。
「人工知能の巨人」が放つ「なぜ?の科学」の革命的な入門書!
「私自身、この本の解説を書くことが憚られるくらいの凄い内容」
――松尾豊氏(人工知能学者・東大大学院教授)絶賛!
米Amazonでは1256レビュー、4.5★。ポピュラーサイエンスの世界的ベストセラー!
・今までの統計学では答えられなかった「なぜ?の科学」とは?
・それは3段の「因果のはしご」を使って説明できる
・著者は人工知能界のノーベル賞にあたるチューリング賞受賞!
・現在のデータ主義には限界がある。それを乗り越える「因果推論」とは?
・その商品が売れた理由をどう分析し、新たな儲けにつなげるか?
・公衆衛生におけるベストな選択肢の考え方とは?
・人間のように考えられる人工知能=強いAIはつくれるか?
・そもそも私たち人間はどのように「因果関係」を考えているのか?
統計学とデータ分析を超えた新たな学問の誕生!
人工知能と人類の未来を知るために、なくてはならない一冊。
データ分析、マーケティング、意思決定に携わるビジネスパーソンも必読!
〔目次より〕
序 章 「因果推論」という新しい科学
第1章 因果のはしご
第2章 シューアル・ライトが起こした革命 ─因果推論創世記
第3章 結果から原因へ ─ベイジアンネットワークの真価と限界
第4章 交絡を取り除く ─ランダム化比較試験と新しいパラダイム
第5章 タバコは肺がんの原因か?─喫煙論争の煙を吹き飛ばす
第6章 パラドックスの詰め合わせ ─因果のレンズで世界を見る
第7章 介入─険しい山を登るための強力な道具一式
第8章 反事実 ─「こうであったかもしれない」世界を考える
第9章 媒介 ─因果関係の背後にはどんな仕組みがあるのか?
第10章 ビッグデータ、AI、ビッグクエスチョン
Amazonで詳しく見る
紹介文
これから学ぶ人のベストな一冊!
さまざまな社内サーバー、公開サーバーの種類や役割、セキュリティ、障害から守る仕組み、運用、仮想化、クラウドと自社運用(オンプレミス)の連携、使い分けなど、これからサーバーにかかわる人が知っておきたい知識をこの一冊で丸ごと解説!
すべての項目の解説は、徹底的にイラスト図解化。
これから仕事に必要な知識を学ぶ方に、すばやく、たのしく知識を身につけていただけるよう、読みやすさ、わかりやすさにこだわって制作しています。
・知識ゼロから全体像がつかめる!
・よく使われる用語の意味がわかる!
・技術の仕組みがスムーズに学べる!
実務に生かせる知識が、確実に身につく、これから学ぶ人のベストな一冊です!
<主な対象読者>
・これからIT系の仕事に就かれる方
・これから社内の情報システムを担当される方
・サーバーの技術と実務を、幅広く、バランスよく学びたい方
Chapter1 サーバーとは
1-01 サーバーとは
1-02 クライアント/サーバーシステム
1-03 いろいろなサーバー
1-04 サーバーソフトウェア
1-05 企業におけるサーバー
1-06 サーバーの運用管理
1-07 サーバーとネットワーク
Chapter2 ネットワークの基礎知識
2-01 ネットワークの技術を理解する
2-02 OSI参照モデルとプロトコル
2-03 プロトコルの役割
2-04 イーサネットとMACアドレス
2-05 スイッチング
2-06 IPとIP アドレス
2-07 いろいろなIPアドレス
2-08 ルーティング
2-09 ARP
2-10 TCPとUDP
2-11 ポート番号の使い方
2-12 NATとNAPT
Chapter3 サーバーを用意する
3-01 どのサーバーを利用するかを選ぶ
3-02 オンプレミス型とクラウド型
3-03 クラウドサービスの種類
3-04 自社かデータセンターか
3-05 サーバーを仮想化するかしないか
3-06 仮想化ソフトウェアの種類
3-07 サーバーの筐体形状を選ぶ
3-08 サーバーを構成するコンポーネント
3-09 UNIX系サーバーOSとWindows系サーバーOS
3-10 アプライアンスサーバー
3-11 仮想アプライアンスサーバー
Chapter4 社内サーバーの基本
4-01 社内サーバーの配置
4-02 DHCPサーバーの役割
4-03 DNSサーバーの役割
4-04 DNSサーバーの冗長化
4-05 ワークグループとActive Directoryドメイン
4-06 Active Directoryドメインを構成するメリット
4-07 ファイルサーバーの役割
4-08 プリントサーバーの役割
4-09 SSOサーバーの役割
4-10 SIPサーバーの役割
4-11 プロキシサーバーの役割
4-12 SMTPサーバーの役割
4-13 POP3サーバーの役割
4-14 Microsoft Exchange Serverの役割
Chapter5 公開サーバーの基本
5-01 公開サーバーの配置
5-02 オンプレミス環境のサーバーを公開する
5-03 クラウド環境のサーバーを公開する
5-04 Webサーバーの役割
5-05 Webサーバーで行う処理
5-06 SSLサーバーの役割
5-07 2つの暗号化技術
5-08 SSLを支える技術
5-09 FTPサーバーの役割
5-10 Webアプリケーションサーバーの役割
5-11 データベースサーバーの役割
5-12 VPNサーバーの役割
Chapter6 サーバーを障害から守る
6-01 サーバーに障害はつきもの
6-02 RAID
6-03 チーミング
6-04 UPS
6-05 クラスタリング
6-06 サーバー負荷分散技術
6-07 広域負荷分散技術
Chapter7 サーバーのセキュリティ
7-01 インターネットに潜む脅威と脆弱性
7-02 ファイアウォールでサーバーを守る
7-03 ファイアウォールの選びかた
7-04 セキュリティゾーンとサーバーの配置
7-05 IDSとIPS
7-06 UTM
7-07 次世代ファイアウォール
7-08 Webアプリケーションファイアウォール
7-09 メールのセキュリティ対策
Chapter8 サーバーの運用管理
8-01 サーバーの運用管理で行う作業
8-02 サーバーのリモート管理
8-03 更新プログラムのインストール
8-04 更新プログラムの配信管理
8-05 バックアップとリストア
8-06 コマンドでネットワークの状態を知る
8-07 コマンドで障害を切り分ける
8-08 NTPサーバーの役割
8-09 Syslogサーバーの役割
8-10 SNMPサーバーの役割
Amazonで詳しく見る
紹介文
40万部突破
「エッセンシャル思考」の第2弾!「無駄な努力を0%にして
成果を100%にする方法!」
40万部突破
「エッセンシャル思考」の第2弾!
ダニエル・ピンク、カル・ニューポート
イヴ・ロドスキー、アリアナ・ハフィントンが絶賛!
「無駄な努力を0%にして
成果を100%にする方法!」
最近、こんなふうに感じたことはないだろうか。
・目標に向かって努力しているのに、なぜかうまくいかない
・走っても走っても、ゴールに近づかない
・やりたいことがあるのに、エネルギーが足りない
・いったいどうして、何もかもこんなに大変なんだ?
成功するためには不断の努力が必要だ――そう信じて、
私たちは今まで頑張ってきた。
最高の成果を上げるために必死で働き、
脳と体を酷使する。
疲れていなければ頑張りが足りないのだと思って、
いつも限界まで自分を追い込む。
ところが、努力の結果は、思うようには返ってこない。
頑張れば頑張るほど、前に進むのが難しくなる。
2倍働いているのに、気づけば半分しか進んでいない。
本当は、何もかもがそんなに大変である必要はない。
頑張ってもうまくいかないなら、別の道を探したほうがいい。
エッセンシャル思考は「何を」やるかを教えてくれた。
エフォートレス思考は「どのように」やるかを極める技術だ。
いちばん重要なことを、いちばん簡単なやり方でやる。
そうすれば、余裕で思い通りの成果が出せる。
エフォートレス思考を読めば、
・「我慢」が「楽しい」に変わる
・最適なペースを見つけられる
・複雑なプロセスが驚くほどシンプルになる
・一度の意思決定で、未来の無数の選択を省略できる
・さまざまな問題を未然に防げる
・人づきあいのストレスが減る
・その他、人生のあらゆる面に応用できる
エフォートレス思考は、怠惰なやり方ではない。
スマートで正しい生き方だ。
Prologue エフォートレス思考とは
PART1 エフォートレスな精神
第1章 INVERT 頑張れば成果が出るとはかぎらない
第2章 ENJOY 「我慢」を「楽しい」に変える
第3章 RELEASE 頭の中の不要品を手放す
第4章 REST 「休み」で脳をリセットする
第5章 NOTICE 今、この瞬間にフォーカスする
PART2 エフォートレスな行動
第6章 DEFINE ゴールを明確にイメージする
第7章 START はじめの一歩を身軽に踏みだす
第8章 SIMPLIFY 手順を限界まで減らす
第9章 PROGRESS よい失敗を積み重ねる
第10章 PACE 早く着くために、ゆっくり進む
PART3 エフォートレスのしくみ化
第11章 LEARN 一生モノの知識を身につける
第12章 LIFT いちばんシンプルに伝える
第13章 AUTOMATE 勝手に回る「しくみ」をつくる
第14章 TRUST 不信のコストを削減する
第15章 PREVENT 問題が起こる前に解決する
Epilogue エフォートレス思考を生きる
Amazonで詳しく見る
紹介文
開発チームをスムースに運営したいなら、プログラマ文化の深い理解が必要不可欠
あなたはプログラマーですか?
プログラマーではないけれど、あなたの部下や同僚、あなたが関わっているプロジェクトにプログラマーが一人でもいれば、あなたは本書の読者です。
この本では、日頃あなたが不思議に思っていること、すなわち、
●プロジェクトの計画と遂行の方法とソフトウェア開発プロセスが噛み合わない
●それによって生まれる衝突の回避
・ソフトウェア開発プロジェクト管理の発展
・開発手法のその利点と欠点の評価
●プログラマーは何をどのようにやっているのか
●ソフトウェア開発プロセスや関連する用語、コードを書く以外にプログラマーが行っていること
そして、
●プログラマーの管理
・プログラマーをどう採用するか
・一般的なプログラマーの心理学
・開発者の心を占めているプレッシャーや優先度
●プロジェクトの失敗にどう対処するか
といったことに対して、著者自身が見聞し体験してきた、ソフトウェア開発にまつわる手酷い失敗や過ちをもとにした解決方法と指針を(ユーモアとともに)与えてくれます。
【重要な注】
そしてそれは、円滑にプロジェクトを進めるために必要な相互理解のステップであり、決定権の綱引きの方法ではありません。
もちろん、米国のソフトウェア開発事情と日本とでは、必ずしも全面的に同じではありませんが、日本の非プログラマー管理者たちにとっても、自身のプロジェクトを円滑に進めるためのヒントが詰まっている1冊といえます。
もちろん第一線で活躍しているプログラマーの皆さんにとっても得るものがたくさんあるはずです。
第1章 イントロダクション
1.1 読者は誰か
1.2 身に覚えがありますか?
1.3 この本は何か
1.4 この本は何ではないか
第2章 なぜソフトウェア開発は建築と似ていないのか
2.1 ソフトウェアプロジェクトの悲しい現実
2.2 固い数字
2.3 想像力の問題
2.4 見積りの問題
2.5 既知の問題
2.6 つまらないこと
2.7 未知のこと
2.8 ゲームするのを拒む
2.9 見積りは点ではなくグラフ
2.10 経験主義
2.11 算数の問題
2.12 ブルックスの法則
2.13 まとめ
第3章 アジャイル
3.1 アジャイルへの簡単な入門
3.2 SCRUM
3.3 他の方法論
3.4 アジャイルの利点
3.5 小さなスプリントと大きな決断
3.6 関係者の参加
3.7 チーム内のデザイナーと双方向の会話
3.8 同期
3.9 2歩進んで3歩戻る
3.10 統合
3.11 アジャイル対リーン
3.12 リーン開発の例
3.13 アジャイルかつリーン
3.14 アジャイルをいつ使うべきでないか
3.15 まとめ
第4章 彼らは一日中何をしているのか
4.1 何を作るか
4.2 ユーザー体験の詳細が重要
4.3 ユーザーストーリーは仕様ではない
4.4 Given-When-Thenシナリオ
4.5 引き渡し
4.6 コード
4.7 1と0
4.8 コンピューターの中身
4.9 ソフトウェア開発は抽象芸術
4.10 オブジェクト化
4.11 プログラミングとはモデル化である
4.12 完了
4.13 ソース管理
4.14 もう一組の目
4.15 配備
4.16 まとめ
第5章 緑の大きなチェックマーク
5.1 正攻法
5.2 すると言っていることをするか?
5.3 すると言っていないことをするか?
5.4 したと言ったことをするか?
5.5 失敗と折り合う
5.6 受け入れ
5.7 火のないところ
5.8 もう1つの方法
5.9 内部検査
5.10 テスト駆動
5.11 見えない品質
5.12 防止策
5.13 治療法
5.14 まとめ
第6章 ジャーゴンの謎を解く
6.1 インターネット
6.2 データ
6.3 セキュリティ
6.4 コーディング
6.5 まとめ
第7章 プログラマーを採用するには
7.1 プログラマーが本当に必要か
7.2 プログラマーをどうやって探すか
7.3 プログラマーの面接
7.4 プログラマーにイエスと言ってもらうには
7.5 まとめ
第8章 プログラマーの心を占めるもの
8.1 フォーラムという現象
8.2 ハイプサイクル
8.3 プログラマーの戦争
8.4 コードの美
8.5 まとめ
第9章 プログラマーを上機嫌に保つ
9.1 静かな部屋と強力なコンピューター
9.2 妙な時間
9.3 古いものと新しいもの
9.4 オープンソース
9.5 学び続けること
9.6 まとめ
第10章 すべてが悪くなるとき
10.1 メンバーが互いに反目しているとき
10.2 ひどくスケジュールから遅れているとき
10.3 できた製品が単に駄目だというとき
10.4 最後のまとめ
Amazonで詳しく見る
紹介文
エンジニアからエンジニアリングマネージャになるためのノウハウをまとめた書籍。考え方と方法を、幅広いトピックで解説。
エンジニアからエンジニアリングマネージャになるためのノウハウをまとめた書籍!
エンジニアがエンジニアリングチームを率いるマネージャになるための考え方や方法まとめた書籍です。エンジニアにとってエンジニアリングマネージャになるのは未知の領域であり、技術チームが必要とするマネージャになるための考え方と方法を幅広いトピックで解説します。
Amazonで詳しく見る
紹介文
第1部 ドメインモデルを機能させる(知識をかみ砕く
コミュニケーションと言語の使い方 ほか)
第2部 モデル駆動設計の構成要素(ドメインを隔離する
ソフトウェアで表現されたモデル ほか)
第3部 より深い洞察へ向かうリファクタリング(ブレイクスルー
暗黙的な概念を明示的にする ほか)
第4部 戦略的設計(モデルの整合性を維持する
蒸留 ほか)
Amazonで詳しく見る
紹介文
最新のセキュリティの基本をこの1冊で!
大好評の「イラスト図解式」シリーズ 第4弾!
今回のテーマは「情報セキュリティ」です。
ネットワークが高度に発達した現在では、サービスの提供者はもとより、利用者側も「セキュリティの基礎知識」は必修です。
基本的なことを知っておくだけでも、情報漏えいや不正アクセスといったリスクを大幅に軽減できます。
本書ではセキュリティの基礎知識を「防御」「観測」「攻撃」の3つに大別し、各カテゴリごとに説明しています。
なぜセキュリティが必要なのか。どのようにしてセキュリティは確保されているのか。その仕組みを図解で解説します。
また、セキュリティ関連の法律についても触れています。セキュリティ技術の多くは関連法律と密接に関係しているため、
基本的な全体像を把握しておくことはとても大切です。
ぜひ本書で情報セキュリティの全容をぜひ理解してください。
1章 セキュリティの基本
2章 セキュリティを確保するためのしくみ
3章 攻撃を観測・検知・解析するためのしくみ/技術
4章 セキュリティを脅かすしくみや動き
5章 セキュリティを脅かす手口や技術
6章 セキュリティを確保するために使われる技術
7章 ネットワーク・セキュリティ
8章 セキュリティに関連した法律
9章 セキュリティを取り巻く各種規約/団体/取組等
Amazonで詳しく見る
紹介文
データサイエンティストがどのようにデータと向き合っているのか、プログラミング言語を使わずにその思考過程を体験できます。
データサイエンティストはどのように考えるのか?
本書は、紙と鉛筆で学ぶというコンセプトのもと、
PythonやRなどのプログラミング言語を使わずに
データサイエンティストの思考過程を体験できます。
データサイエンティストがどのような思考回路でデータと向き合っているのか、
本書掲載の40問のクイズを解きながら体験してみてください。
本書掲載のクイズは複雑な計算やExcelなども不要で、
紙と鉛筆さえあれば解くことができますので、ぜひチャレンジしてみてください。
【こんな方におすすめ!】
・デジタル時代を生き抜くためにデータを読み解くスキルを身につけたい人
・「データを使って論理的に考えろ」と言われるが、
データのどこを見ればよいのかわからない人
・大学時代に政府が提唱するデータリテラシーを学ぶことができなかった人
・大学でデータリテラシーを身につけた新入社員を受け入れる部署の管理職
・社会でデータリテラシーがどう活用されているか知りたい人
・データサイエンティストと仕事をすることになったが、
どのような思考回路の専門家なのか知りたい人
【本書を読むことで得られる知識/できるようになること】
・データを活用するプロであるデータサイエンティストが
どのような思考回路でデータに向き合っているかわかる
・データサイエンティストの思考過程を知る(なぞる)ことによって、
自分自身でデータを正しく読み解くことができるようになる
・データを読み解く際の勘所(着眼点)がわかる
・与えられたデータの意味を適切に読み解き、
他者に対して正しくデータを説明できるようになる
・恣意的に誇張されたグラフや不適切に切り取られたデータに騙されなくなる
・データ分析の考え方、留意事項がわかる
・データを分類する方法、データから法則を見つけ出す方法、予測する方法がわかる
・データを基に論理的に意思決定できるようになる
【目次】
第1章 デジタル時代に必要なデータリテラシー
第2章 データを読む力を身につける
第3章 データを説明する力を身につける
第4章 データを分類する力を身につける
第5章 データから法則を見つける力を身につける
第6章 データから予測する力を身につける
第7章 仕事でデータリテラシーを活用する
第1章 デジタル時代に必要なデータリテラシー
1-1 デジタル時代の到来
1-2 データリテラシーはこれからのビジネスパーソンに必須のスキル
1-3 データリテラシーを身につけよう
第2章 データを読む力を身につける
2-1 考えながらデータを読もう!
クイズ1:目的に即したデータの見方について学ぶ
クイズ2:データの特徴や傾向の見方について学ぶ
クイズ3:データの着眼点について学ぶ
2-2 全体の傾向をつかもう!
クイズ4:平均値・最頻値・中央値の算出方法について学ぶ
クイズ5:代表値とデータ分布の関係について学ぶ
2-3 データの細部を確認しよう!
クイズ6:外れ値・異常値について学ぶ
2-4 データの関係性を読み解こう!
クイズ7:2つのデータの関係性について学ぶ
クイズ8:相関と因果について学ぶ
第3章:データを説明する力を身につける
3-1 データを可視化してみよう!
クイズ1:適切なグラフ表現について学ぶ
クイズ2:不適切なグラフ表現について学ぶ
3-2 データを比較するとは?
クイズ3:適切な比較対象の設定について学ぶ
クイズ4:ある時点との比較について学ぶ
クイズ5:他者との比較について学ぶ
3-3 データから課題を見つけ出す!
クイズ6 〜9:データから課題を見つけ出す手順について学ぶ
第4章:データを分類する力を身につける
4-1 特徴の似たデータでグループを作ろう!
クイズ1:データをグループに分ける意義について学ぶ
クイズ2:データ間の距離について学ぶ
クイズ3:距離計算する際の注意事項について学ぶ
4-2 目的に応じてデータを分類しよう!
クイズ4:データを分類するための観点について学ぶ
4-3 データを機械的に分類しよう!
クイズ5:グループの重心について学ぶ
4-4 データの分類を体験しよう!
クイズ6 〜8:データを分類する手順について学ぶ
第5章:データから法則を見つける力を身につける
5-1 データから法則を見つけ出す!
クイズ1:データから法則を見つけ出す方法について学ぶ
クイズ2:見つけ出した法則を適用する方法について学ぶ
5-2 判別問題を解く決定木モデル
クイズ3:決定木モデルの作り方について学ぶ
クイズ4:決定木モデルを用いて結果を推測する方法について学ぶ
5-3 判別問題の精度を評価してみよう!
クイズ5:判別問題の評価方法について学ぶ
5-4 決定木モデルを活用してみよう!
クイズ6:データから法則を見つけ出し判別問題を解く手順について学ぶ
第6章:データから予測する力を身につける
6-1 数値データの関係性を確認しよう!
クイズ1:数値データの関係性を確認する方法について学ぶ
クイズ2:数値データの関係性を絞り込めない場合について学ぶ
クイズ3:数値以外のデータとの関係性を確認する方法について学ぶ
6-2 内挿と外挿に注意しよう!
クイズ4:データから予測する際に注意すべき内挿と外挿について学ぶ
6-3 データの偏りに注意しよう!
クイズ5:データに偏りがある場合の注意事項について学ぶ
6-4 時間の変化に着目しよう!
クイズ6:時系列データのトレンドと周期性について学ぶ
6-5 データから予測しよう!
クイズ7 〜9:データから予測する手順について学ぶ
第7章 仕事でデータリテラシーを活用する
7-1 データを読む力を活用する
7-2 データを説明する力を活用する
7-3 データを分類する力を活用する
7-4 データから法則を見つける力を活用する
7-5 データから予測する力を活用する
Amazonで詳しく見る
紹介文
現代人の必須スキル、クリティカル・リーズニングは、いま注目を浴びるクリティカル・シンキングの論理部門。本書は、世界の新聞記事やコラムに加え、米国のロースクール進学適性試験をふんだんに用い、問題を解きながら順に読み進めれば自然に論理力がつく。ビジネスのコミュニケーション能力向上や法科大学院適性試験の参考書としてもおすすめ。
第1章 推論を分析する(推論を見分け、結論を見定める
要約:それは論証だろうか?
理由を見定める
仮定を見定める)
第2章 推論を評価する(論証の諸部分
理由と仮定が真であるかどうかを評価する
要約:証拠または権威の信頼性
結論への支持を評価する
さらなる証拠を評価する
説明に疑問を持つ
評価のスキルの要約)
第3章 含意を理解する(結論を引き出す
論証の含意を理解する)
第4章 言語使用における2つのスキル(明確さと厳密さをもって言語を使用する
論証を要約する)
第5章 推論のスキルを磨く(推論を提示する長めの文章
推論の評価に関する2つの例題
要約:論証を評価する)
練習問題解答例
Amazonで詳しく見る
紹介文
仕事のあらゆるシーンで使える!
いま大注目の「心理的安全性」を
取り入れるなら、
本書の言葉から
いつものひと言を変えることで……
会話が増える!
チャレンジが始まる!
チームが変わる!
「言い換え」でわかりやすくお伝えします!
×じゃあ任せたから、頼んだよ →
〇誰に相談すると進みそうですか?
×ムリでしょ →
〇その視点はなかった!
×仕事は増えるけど頑張ろう →
〇やめたほうがいい仕事ってなんだろう?
「多くのリーダーが変化を体感した言葉が
厳選されています」
ベストセラー
『心理的安全性のつくりかた』著者
石井遼介
第1章 毎日使いたい! チームの土壌をつくる言葉
第2章 会議を活性化させる言葉
第3章 1on1が楽しみになる言葉
第4章 チャレンジフルなチームをつくる言葉
第5章 お客さまと取引先を「パートナー」に変える言葉
第6章 ピンチをチャンスに変える言葉
Amazonで詳しく見る
紹介文
情報セキュリティに関する基本的な知識を、キーワード形式で、イラストを使ってわかりやすく解説しています。掲載している項目は、「情報セキュリティマネジメント試験」の午前重点分野で出題される項目が中心になっています。
1章 セキュリティの概念と対策の方針
01 情報セキュリティとは
02 情報セキュリティを構成する7つの要素
03 OECDセキュリティガイドライン
04 リスク
05 情報資産とは
06 脅威の種類
07 脆弱性の種類
08 人為的不正のメカニズム
2章 サイバー攻撃の手法①
09 サイバー攻撃の攻撃者
10 サイバー攻撃の手法
11 パスワードを狙った攻撃
12 マルウェア
13 スパイウェア
3章 サイバー攻撃の手法②
14 標的型攻撃
15 Webブラウザを狙った攻撃
16 サーバーを狙った攻撃①
17 サーバーを狙った攻撃②
18 乗っ取り/不正アクセス/なりすまし
19 負荷をかける攻撃
20 プログラムの脆弱性を突いた攻撃
4章 セキュリティ確保の基礎技術
21 暗号化技術の基礎
22 暗号化技術の種類
23 暗号鍵管理システム
24 ディスク/ファイルの暗号化
25 危殆化
26 利用者に対する認証技術
27 生体認証技術
28 PKI
29 デジタル証明書のしくみ
5章 情報セキュリティの管理
30 情報資産と無形資産
31 リスクマネジメント
32 情報セキュリティインシデント
33 情報資産の調査と分類
34 リスクの分析と評価
35 情報セキュリティリスクアセスメント
36 リスクコントロール
37 情報セキュリティマネジメントシステム
38 セキュリティの評価
39 セキュリティ規定と関連機関
6章 情報セキュリティ対策の基礎知識
40 内部不正防止ガイドライン
41 入口対策と出口対策
42 マルウェア/不正プログラム対策
43 ファイアウォール
44 WAF
45 プロキシサーバー
46 不正侵入検知システム
47 侵入防止システム
48 DMZ
49 ネットワーク認証/フィルタリング
50 無線通信セキュリティ
51 著作権保護
52 メール認証
53 ネットワーク管理
54 対策機器
55 物理対策
7章 セキュリティの実装に関する知識
56 セキュア・プロトコル
57 ネットワークセキュリティ
58 データベースセキュリティ
59 アプリケーションセキュリティ
Amazonで詳しく見る
紹介文
Knuth先生の名著シリーズの最初の1冊。
Knuth先生の名著『The Art of Computer Programming』シリーズの最初の1冊。
数値演算の基本アルゴリズムについて解説。独自の計算モデルであるMIXの解説や、基礎的な概念、情報構造などについての話が非常に厳密に定義されながら進みます。個々の演習問題にはランク付けされていて、高校の代数以上の数学知識をもたない読者でも、数学的な色合いの濃い部分は斜め読みして、全体を把握できるように構成されています。
※本書は株式会社アスキーより刊行された『The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版』を並製本として再刊行したものです。再刊行にあたり、旧版刊行後に発見された誤植等を修正しています。
※本書の1.3.1、1.3.2、1.3.3および1.4.1、1.4.2、1.4.3については、改訂版が『The Art of Computer Programming Volume 1 Fascicle 1 MMIX - A RISC Computer for the New Millennium 日本語版』として分冊の形で刊行されています。必要があれば、こちらをご参照ください。
◆『The Art of Computer Programming』シリーズについて
『The Art of Computer Programming』シリーズは、「コンピュータアルゴリズムの特徴についての理論」の研究を続けるドナルド・E・クヌースの集大成といえるものです。第1巻「基本アルゴリズム」、第2巻「準数値的アルゴリズム」、第3巻「ソートと探索」、第4巻「組合せアルゴリズム」、第5巻「構文アルゴリズム」、第6巻「言語理論」、第7巻「コンパイラ」という構成になっています(現在も執筆が続けられています)。
情報科学の自習、大学の授業のテキストとして利用できるように、膨大な演習問題が含まれており、その大半に解答が用意されているので、解説内容の研究、確認もできるようになっています。また、このシリーズには数学的な内容がふんだんに盛り込まれていますが、高校の代数以上の数学知識をもたない読者が数学的な色合いの濃い部分を斜め読みしても全体を理解できるような構成をとっています。
Knuth先生の名著『The Art of Computer Programming』シリーズの最初の1冊。
目次
第1章 基礎概念
1.1. アルゴリズム
1.2. 数学的な基礎
1.3. MIX
1.4. 基本的プログラム技法
第2章 情報構造
2.1. はじめに
2.2. 線形リスト
2.3. 木
2.4. 複数リンク構造
2.5. 動的メモリ配置
2.6. 歴史と参考文献
演習問題の解答
付録A 数表
1. 基本定数 (十進)
2. 基本定数 (八進)
3. 調和数, Bernoulli数, Fibonacci数
付録B 表記法索引
Amazonで詳しく見る
紹介文
ロジカルシンキングを使って、相手に納得してもらうことのできる報告や提案を組み立てるための手法を紹介。『ITエンジニアのロジカル・シンキング・テクニック』の内容を、多くのITエンジニアに導入した結果をフィードバックし、より分かりやすく、よりコンパクトにまとめたエッセンス。
第1章 構造化の基本(論理構造を作る
適切な根拠を与える ほか)
第2章 課題解決のための構造(原因探索型
目的展開型 ほか)
第3章 コンテキストの断裂(断裂の存在を知る
ストーリーで断裂を越える ほか)
第4章 ドキュメントの構成(ドキュメントの3形態
起承転結より構造化 ほか)
Amazonで詳しく見る
紹介文
1 Building Abstractions with Procedures 2 Building Abstractions with Data 3 Modularity, Objects, and State 4 Metalinguistic Abstraction 5 Computing with Register Machines
Amazonで詳しく見る
紹介文
知識ゼロ・完全独学なのに資格試験合格率100%! 働きながら9つの資格をとった男の勉強法! 「その他大勢」から抜け出せ!
"完全独学で資格試験の合格率 100%! 絶対忘れないすごいノウハウを公開!
「宅建勉強法」というニッチジャンルにもかかわらず、開設からわずか1年で チャンネル登録者数7.4 万人超え!「棚田行政書士の不動産大学 」の管理人、棚田健大郎氏の 初著書 。 「棚田行政書士の不動産大学」 とは、 「法律知識ゼロ、不動産経 験ゼロの超初心者の方でも宅建一発合格する」をモットーに、 宅建の勉強法や不動産業界の実情などを楽しく、わかりやすく発信するチャンネルです。
本企画は、棚田氏オリジナルの勉強ノウハウ「大量記憶法」に焦点を当てたものです。進め方は極めてシンプル。紙1枚と問題集1冊を用意。そして、
1縦の列に「勉強する分野」「問題数」「問題ページ」を明記する
2横の列に「復習する間隔(1なら1日おきに復習) 」「学んだ日付」を入力する
勉強したことを忘れてしまう前に復習し、記憶に定着させる。それが大量記憶法のポイントです。 「忘れない」というメリットはもちろんのこと、「勉強したことを可視化できる」「モチベーションがアップする」「自信をもって試験に臨める」 等、多くのメリットがある勉強法です。"
Amazonで詳しく見る
紹介文
攻撃と防御の知識を一冊に凝縮!
日本中の現場で支持されたベストセラーが、最新環境にあわせて全面刷新+大増ページ!
Webアプリケーションにはなぜ脆弱性が生まれるのか?
脆弱性を解消するにはどうプログラミングすればよいか?
PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる!
Webアプリ開発者の必読書、待望の改訂版!
OWASP Top 10 - 2017対応
・HTML5の普及に対応してWeb APIやJavaScriptに関する解説を新設
・OWASP Top 10 - 2017に対応して、XXEや安全でないデシリアライゼーションなどを解説
・脆弱性診断に対する関心が高まっていることから、脆弱性診断の入門の章を親設
・IE7のサポート終了など現在のソフトウェアの状況に対応
・実習環境をWindowsに加えてMacにも対応
1章 Webアプリケーションの脆弱性とは
1.1 脆弱性とは、「悪用できるバグ」
1.2 脆弱性があるとなぜ駄目なのか
1.3 脆弱性が生まれる理由
1.4 セキュリティバグとセキュリティ機能
1.5 本書の構成
1.6 セキュリティガイドラインとの対応
2章 実習環境のセットアップ
2.1 実習環境の概要
2.2 Firefoxのインストール
2.3 VirtualBoxのインストール
2.4 仮想マシンのインストールと動作確認
2.5 OWASP ZAPのインストール
2.6 Firefoxの拡張FoxyProxy-Standardのインストール
2.7 OWASP ZAPを使ってみる
2.8 Webメールの確認
3章 Webセキュリティの基礎 ~ HTTP、セッション管理、同一オリジンポリシー
3.1 HTTPとセッション管理
3.2 受動的攻撃と同一オリジンポリシー
3.3 CORS(Cross-Origin Resource Sharing)
4章 Webアプリケーションの機能別に見るセキュリティバグ
4.1 Webアプリケーションの機能と脆弱性の対応
4.2 入力処理とセキュリティ
4.3 表示処理に伴う問題
4.4 SQL呼び出しに伴う脆弱性
4.5 「 重要な処理」の際に混入する脆弱性
4.6 セッション管理の不備
4.7 リダイレクト処理にまつわる脆弱性
4.8 クッキー出力にまつわる脆弱性
4.9 メール送信の問題
4.10 ファイルアクセスにまつわる問題
4.11 OSコマンド呼び出しの際に発生する脆弱性
4.12 ファイルアップロードにまつわる問題
4.13 インクルードにまつわる問題
4.14 構造化データの読み込みにまつわる問題
4.15 共有資源やキャッシュに関する問題
4.16 Web API実装における脆弱性
4.17 JavaScriptの問題
5章 代表的なセキュリティ機能
5.1 認証
5.2 アカウント管理
5.3 認可
5.4 ログ出力
6章 文字コードとセキュリティ
6.1 文字コードとセキュリティの概要
6.2 文字集合
6.3 文字エンコーディング
6.4 文字コードによる脆弱性の発生要因まとめ
6.5 文字コードを正しく扱うために
6.6 まとめ
7章 脆弱性診断入門
7.1 脆弱性診断の概要
7.2 脆弱なサンプルアプリケーションBad Todo
7.3 診断ツールのダウンロードとインストール
7.4 Nmapによるポートスキャン
7.5 OpenVASによるプラットフォーム脆弱性診断
7.6 OWASP ZAPによる自動脆弱性スキャン
7.7 OWASP ZAPによる手動脆弱性診断
7.8 RIPSによるソースコード診断
7.9 脆弱性診断実施上の注意
7.10 まとめ
7.11 脆弱性診断報告書のサンプル
8章 Webサイトの安全性を高めるために
8.1 Webサーバーへの攻撃経路と対策
8.2 成りすまし対策
8.3 盗聴・改ざん対策
8.4 マルウェア対策
8.5 まとめ
9章 安全なWebアプリケーションのための開発マネジメント
9.1 開発マネジメントにおけるセキュリティ施策の全体像
9.2 開発体制
9.3 開発プロセス
9.4 まとめ
Amazonで詳しく見る
紹介文
第二版は新しい主題を強調。最も主要なのは計算モデルでの時の扱いの異る解決法:状態を持つオブジェクト、並列プログラミング、関数型プログラミング、遅延評価と非決定性などの果す役割である。並列性と非決定性の新しい節を採用し、この主題を全体で統一した。
1 手続きによる抽象の構築(プログラムの要素
手続きとその生成するプロセス ほか)
2 データによる抽象の構築(データ抽象入門
階層データ構造と閉包性 ほか)
3 標準部品化力、オブジェクトおよび状態(代入と局所状態
評価の環境モデル ほか)
4 超言語的抽象(超循環評価器
Schemeの変形-遅延評価 ほか)
5 レジスタ計算機での計算(レジスタ計算機の設計
レジスタ計算機シミュレータ ほか)
Amazonで詳しく見る
紹介文
最近の開発で必須のフロントエンド。Vue.jsやAngularやReactなど複雑化する内容をすっきり理解し効率的な開発を。
■さまざまな開発支援ツールを使いこなし■
■効率的に開発をするための基礎知識■
--
■変わり続けるプラットフォームで■
■変わらないことを学ぶ■
-------------------------------------------------------------------------
根幹を支えるエコシステム "Node.js" / コンポーネント指向のフレームワーク・ライブラリの基本の考えを知り使いこなす "Vue.js" "Angular" "React" / コンパイラ "Babel" / モジュールバンドラー "webpack" / JavaScript 代替言語 "TypeScript" / 状態管理・データレイヤ "Redux" / 単方向のデーターフロー "Flux" / 静的解析ツール "Prettier" "ESLint" / ユニットテスト "Mocha" "Jest" "Karma" / 解析とABテスト "Google Analytics" "Google Optimize" / エラーイベント検知 "Sentry" / チーム作業する "スクラム" / 変わり続ける "Webプラットフォーム"
複数の開発支援ツールから「なぜそれを使うのか」選択する基準を理解する!
■Part 1 導入編 なぜ使うかを知る
●Chapter 1 フロントエンドエンジニアの歴史
1-1 Web の始まりと HTML
1-2 Web と HTML で何ができるようになったのか
1-3 ブラウザ戦争と標準化
1-4 ブログの流行とインターネットインフラ
1-5 静的な UI から動的な UI へ
1-6 「フロントエンドエンジニア」という専門職
1-7 Node.js による開発基盤の構築
1-8 ECMAScript 規格更新に伴う周辺事情の活性化
1-9 止まらないフロントエンド
●Chapter 2 フロントエンドエンジニアに求められるスキル
2-1 「フロントエンドエンジニア」が取り組む実務
想定される実務例
2-2 JavaScript の成長と要求の変化
2-3 変容する中で維持すべき開発者の姿勢
「Web は止まらない、求められる技術要素も止まらない」
パブリックな存在として
2-4 本書におけるフロントエンドエンジニア像
●Chapter 3 フロントエンドにおける一般的なツール群
3-1 Node.js とその周辺のエコシステム
パッケージマネージャー
Node.js がもたらす恩恵
3-2 コンパイラ・モジュールバンドラー
コンパイラ:Babel
モジュールバンドラー:webpack
Babel, webpack が解決すること
3-3 JavaScript 代替言語:TypeScript
TypeScript の特徴
コンパイラとしての TypeScript
TypeScript によって解決できること
3-4 フレームワーク・ビューライブラリ:Vue.js, Angular, React
Vue.js
Angular
React
コンポーネント指向のフレームワーク・ライブラリであること
3-5 状態管理・データレイヤ:Redux
ブラウザにおける状態管理は煩雑である
クライアント MVC
簡易的なクライアント MVC
フロントエンドで抽象化されるモデル、扱ううえでの課題とは
役割があいまいになる Controller
Flux というアプリケーションアーキテクチャパターン
Redux:データの一極管理
Redux が解決できること
3-6 CSS:CSSメタ言語、設計手法、CSS-in-JS
CSS を取り巻く現状
各ブラウザの対応状況について
CSS の表現力を高めた Sass、CSS メタ言語
JavaScript で作成された PostCSS
CSS 設計手法
CSS を弱点を補うためには
3-7 静的解析ツール:Prettier, ESLint
Prettier
ESLint
ほかのリンターやチェッカーについて
静的解析ツールが可能にすること
3-8 ユニットテスト:Mocha, Jest, Karma
ユニットテストとフロントエンド開発
Mocha Jest Karma それぞれどういった特性があるのか
ユニットテストやテストフレームワークが解決できること
●Chapter 4 開発の現場における仕事の進め方
4-1 アジャイルといった考え方
4-2 スクラムという開発手法
4-3 個人との対話と他者との協調
プロダクトオーナー
スクラムマスター
デザイナー
サーバサイドエンジニア
テストエンジニア・テスター
コミュニケーションハブとして
4-4 変化に対応しながら提供するサイクルを上げる
■Part 2 実践編 どう使うかを学ぶ
●Chapter 5 開発環境
5-1 既存アプリケーションの開発環境構築
Docker のインストール
Node.js のインストール
Yarn のインストール
API サーバの起動
クライアントの起動
5-2 既存機能の把握
どんなアプリケーションなのかを知る
アプリケーションが抱える課題を探る
●Chapter 6 設計と実装
6-1 フロントエンド環境の構築
Yarn の利用準備
webpack のインストール
Babel のインストール
6-2 TypeScript の導入
TypeScript のインストール
Babel 経由で TypeScript のコンパイルを行う
既存コードを TypeScript で書き換える
コンパイルエラーを解消する
6-3 コードの分割
処理を別ファイルに切り出す
6-4 Jest を利用したユニットテスト
Jest のインストール
jest.config.js の設定
描画された DOM の検査
6-5 React の導入
React のインストール
JSX のためのコンパイル設定
JSX で要素を表示する
webpack-dev-server のインストールと設定
jQuery で書いたコードを React に書き換える
イベントハンドラの記述
6-6 Enzyme を使ったコンポーネントのテスト
Enzyme のインストール
Jest の設定
React Component をテストする
6-7 styled-components の導入
styled-components のインストール
CSS から styled-components への移行
●Chapter 7 CI/CD によって受けられるメリット
7-1 CI/CD によって受けられるメリット
CI/CD について
GitHub Actions を始める
ESLint を導入し動作させる
CI で自動化するメリット
7-2 パフォーマンスと改善
パフォーマンスの問題とは
基礎的なパフォーマンス知識:クリティカルレンダリングパス
Lighthouse を利用した定期的なパフォーマンス計測
強力な武器はない、ひとにはひとのパフォーマンス
■Part 3 応用編 より深く学ぶために知る
●Chapter 8 解析とモニタリング
8-1 サービスの成長とともに開発する
仮説検証、AB テストの目的
ツールの導入: Google アナリティクス
ツールの導入: Google オプティマイズ
プロダクトコードに組み合わせる
サードパーティスクリプトとの兼ね合い
8-2 ユーザーモニタリング・エラーイベント監視
ユーザーを取り巻く環境を知る
ブラウザで起きるエラーイベントなどからユーザーを知る
エラーイベント検知のため Sentry を導入する
Sentry の動作とコードへの組み込み
React Error Boundary を利用する
収集したエラーイベントを役立てる
●Chapter 9 チーム開発と Web への貢献
9-1 チームで働く
あらためてスクラムという開発手法について
スクラムを採用したチームに入ったら
ストーリー:スプリントプランニング
タイムボックスという考え方
ストーリー:スプリントが開始する
デイリースクラム
ストーリー:スプリントの終わり
振り返り
チーム開発とはテクニカルスキルではない
9-2 コミュニティへの貢献活動
OSS への貢献はコードコミットだけではない
できることから OSS へコミットする
寄付する、翻訳するといった違ったアプローチ
Web というプラットフォームに貢献する
9-3 Web プラットフォームに関わるフロントエンド開発者として
仕様を知るには
ライトにキャッチアップする
フロントエンド技術を楽しむために
Amazonで詳しく見る
紹介文
ソフトウェアの高速なデリバリーを実現するために、チームが最大限のパフォーマンスを発揮する効率的なチーム編成術。
DXが進み、ビジネスはIT・オンラインを基準に変化が加速している。この大きな流れを受けるのがソフトウェア開発である。またソフトウェア業界としては、アジャイルやDevOpsなどの手法を開発して、時代の移り変わりの速度に合わせるように、いかに効率的にサービスを提供できるかを試行錯誤してきた。
本書は高速なデリバリーを実現することを目的とした、4つの基本的なチームタイプと3つのインタラクションパターンに基づく、組織設計とチームインタラクションのための実践的な適応モデルを紹介する。これは、ソフトウェアの組織設計における大きな前進であり、チームの相互作用と相互関係を明確に定義した方法を提示することで、チーム間の問題を組織の自己運営のための貴重なシグナルに変え、結果として得られるソフトウェアアーキテクチャをより明確で持続可能なものにする。これにより組織に適したチームパターンを選択して進化させ、ソフトウェアを健全な状態に保つことで、バリューストリームを最適化するのに役立たせることができるだろう。
ソフトウェアの高速なデリバリーを実現するために、チームが最大限のパフォーマンスを発揮する効率的なチーム編成術。
PART I デリバリーの手段としてのチーム
Chapter1 組織図の問題
Chapter2 コンウェイの法則が重要な理由
Chapter3 チームファースト思考
PART Ⅱ フローを機能させるチームトポロジー
Chapter4 静的なチームトポロジーチームのアンチパターン
Chapter5 4つの基本的なチームタイプ
Chapter6 チームファーストな境界を決める
PART Ⅲ イノベーションと高速なデリバリーのため にチームインタラクションを進化させる
Chapter7 チームインタラクションモード
Chapter8 組織的センシングでチーム構造を進化させる
Chapter9 まとめ:次世代デジタル運用モデル
Amazonで詳しく見る
紹介文
アジャイル開発における新たなマネジメントのあり方、マネジメント3.0について解説。
ここ数年ほどの間、DX という追い風や、日本や海外の市場での競争の激化もあり、日本でもアジャイル開発がようやく普及し、定着しつつある状況になってきている。アジャイル開発の実践が進むと、それらのアジャイル開発チームの中で自己組織化や奉仕型リーダーシップをうまく実現することで、開発メンバーの多様な意見(観点)を取り入れてより良い成果を生み出したり、より働き甲斐のあるチーム(環境)を実現できる例が 増えていくことが期待できる。本書は、このような自己組織化や奉仕型リーダーシップなどに基づく新たなマネジメントのあり方、すなわちマネジメント3.0を提案するものである。複雑系の科学、マネジメント理論、社会学などに基づいて理論的に説明するとともに、組織に少しずつ試し、取り入れやすい様々なプラクティスを提案する。
推薦のことば
「私は、『何事であれ5ステップで成功する』というような解説本を好まない。私は、自分に考えさせる本―新しいアイデアを示し、心理的な活力が流れるようにするもの―が好きだ。ヨーガンの本は、後者に分類される。本書は、リードし、マネージすること―特に今日の荒れ狂う世界において―について、複雑な取り組みとして我々に考えることを求める。マネジメント3.0は、アジャイル/リーンへの転換に巻き込まれたマネージャー自身がどのようにアジャイルに『なり』うるかに対して示唆に富んだガイドを提供する。」
―ジム・ハイスミス、エクゼブティブ・コンサルタント、ThoughtWorks, Inc.,
『アジャイルプロジェクトマネジメント』の著者
「私は、マネジメント3.0は今後10年にアジャイルなマネジメントの書籍の「聖書」になるだろうと固く信じている。」
―エド・ヨードン、ITマネジメント/ソフトウェア コンサルタント、Nodruoy, Inc.、
『デスマーチ』の著者
「本書は、その場しのぎの解決策が欲しい人向けには書かれていない。本書は、マネジメントに対する情熱と愛を持つ、真剣な学習者向けに書かれている。本書は、マネジメントのクラフトマン(職人)向けに書かれている。」
―ロバート C.マーティン、ObjectMentor, inc.のオーナー、「Clean Code」の著者
第1章 なぜ物事はそれほど単純ではないのか
因果関係 複雑性 我々の線形な心 還元主義 全体論 階層的なマネジメント アジャイルなマネジメント すべてに対する私の理論 本書とモデル まとめ 振り返りとアクション
第2章 アジャイルソフトウェア開発
アジャイルの前触れ アジャイルの本 アジャイルの基礎 アジャイルの競争相手 アジャイルへの障害 ラインマネジメント対プロジェクト管理 まとめ 振り返りとアクション
第3章 複雑系の理論
機能横断的な科学 一般システム理論 サイバネティックス 動的システム理論 ゲーム理論 進化論 カオス理論 システムの知識体系 単純性:新たなモデル 単純化を再考する 非適応的 対 適応的 我々は、科学を乱用しているのか? 痛い! 新時代:複雑性思考 まとめ 振り返りとアクション
第4章 情報-イノベーションシステム
イノベーションが生き残りのための鍵である 知識 創造性 モチベーション 多様性 個性(Personality) 人々のみが統制を行う資格がある アイデアから実装へ まとめ 振り返りとアクション
第5章 人々をどのように元気づけるか
創造的なプロセス 創造的な環境をマネージする 創造的なテクニック 外発的なモチベーション 内発的なモチベーション モチベーションの喪失 チームメンバーの10個の願望 人々のモチベーションを高めるもの:バランスを見つけよう あなたの褒賞を内発的にしよう 多様性? つながりのことですね! パーソナリティ評価 チームのパーソナリティー評価にむけての4つのステップ 自前のチームの価値 あなた個人の価値を定義する これは難しいというものではない.これは超人的だ. ドア無しポリシー まとめ 振り返りとアクション
第6章 自己組織化の基本
ある状況の中での自己組織化 価値に向けた自己組織化 自己組織化 対 アナーキー 自己組織化 対 創発 チームにおける創発 自己組織化 対 主体性 対 自己選択 暗やみの原則 コナント-アシュビーの定理 分散された統制 概念としての委任 必要なこととしての委任 あなたは庭師(のようなもの)だ まとめ 振り返りとアクション
第7章 チームにどのように委任するか
モチベーションの負債を作らない 魔法使いの帽子を被る 政治家ではなく,魔法使いを選ぼう 委任と移譲 あなたの恐れを減らし、ステータスを増やす 適切な成熟レベルを選ぼう 適切な権限のレベルを選択する チームあるいは個人を割り当てる 委譲チェックリスト 何かをなそうとするならば、忍耐心を鍛えよう あなたのマネージャーの抵抗に抵抗しよう 人々の10個の内発的な願望に対応する 周囲をやさしくマッサージしよう 信頼 人々が互いに信頼することを助けよう 敬意 まとめ 振り返りとアクション
第8章 意図的にリードし、統治する
ライフゲーム 普遍性クラス 間違ったメタファー あなたはゲームデザイナーではない それでも…自己組織化では十分ではない 素ステムを管理し、人々を管理しない マネージャーかリーダーか? 適切な区別:リーダーシップ 対 統治 人生の意味 チームの目的 外発的な目的を割り当てる まとめ 振り返りとアクション
第9章 制約をどのように揃えるか
人々に共有されたゴールを提供する アジャイルゴールに対するチェックリスト あなたのゴールを伝える ビジョンとミッション 組織のゴールの例 あなたのチームに自律的なゴールを許容する あなたのゴールとあなたのチームのゴールで妥協する 権限の境界リストを作る 人々の管理の角度を選ぶ 人々を守る 共有されたリソースを守る 品質を制約する 社会的な契約を作る まとめ 振り返りとアクション
第10章 ルール作りの技能
学習システム ルール 対 制約 アジャイルの死角 大事なこと:職人の技能 正のフィードバックループ 負のフィードバックループ 規律×スキル=コンピテンス ルールの多様性 補完性原理 リスクの認識と間違いの安全 ミーム学 割れ窓 まとめ 振り返りとアクション
第11章 コンピテンスをどのように育むか
コンピテンスの育成に対する7つのアプローチ 全体を最適化する:複数のレベル 全体を最適化する:複数の次元 パフォーマンスメトリックスに対するヒント 自己啓発のための4つの材料 マネージ 対 コーチング 対 メンタリング しかし、他のオプションもある… 認定を考えよう 社会的圧力を御する 適応可能なツールを使う 監督者を考える 1 on 1を持つ 360度ミーティングを計画する 標準を育てる ルールや人々ではなく,システムに取り組む まとめ 振り返りとアクション
第12章 構造の上のコミュニケーション
それは、バグか、フィーチャーか? コミュニケーションとフィードバック ミスコミュニケーションは、ありふれている コミュニケーションする人の能力 ネットワーク効果 つながりをチューニングする 競争と協力 グループと境界 ハイパーな生産性あるいは自己触媒 パターンの形成 対称性をスケールさせる:大きなパターンと小さなパターン まとめ 振り返りとアクション
第13章 構造をどのように成長させるか
環境、プロダクト、規模、そして人々について まずスペシャリスト化を考える …そしてジェネラリスト化が2番目 人々の職種を広げる 非公式のリーダーシップを育成する チームの境界を注意してみる 最適なチーム規模は(おそらく)5名である 機能チーム 対 機能横断チーム 2つの設計原則 あなたの組織スタイルを選ぶ 各チームを小さな価値ユニットに転じる 別のチームにスタッフを移す 別のレイヤーにスタッフを移す 組織を変えるために何名のマネージャーが必要か? ハイブリッドな組織を作る アナーキーは死んでおり、パナーキー万歳 秘密を持たない すべてを目に見えるようにする 人々をつなぐ 適応性を目指す まとめ 振り返りアクション
第14章 変革の地形
環境は、「向こう」ではない 不確実性の恐怖 変化の法則 すべてのプロダクトは成功である…失敗するまでは 成功と適合:それはすべて相対的である 変化を受け入れる方法 適応、探索、予期 赤の女王のレース 我々は複雑性を測定できるか? プロダクトはより複雑になっているのか? 物事の形:位相空間 アトラクターと収束 安定性と外乱 適応度地形 地形を形づくる 方向づけられた適応 対 方向づけられていない適応 まとめ 振り返りとアクション
第15章 すべてをどのように改善するか
線形の改善 対 非線形の改善 あなたのいる場所を知る うねっている地形に対する旅のコツ 環境を変化させる、山を召喚する 変化を望ましいものにする 停滞を苦痛にする 汝の間違いに栄誉を与える ノイズの戦略 性の戦略 ブロードキャストの戦略 改善をコピー-ペーストしない 継続的な変化に対するいくつかの最後の実践上のアドバイス 転がり続ける まとめ 振り返りとアクション
第16章 全て間違っているが、いくらかは有用である
マネジメント3.0の6つの視点 はい、私のモデルは「間違っている」 しかし、他のモデルも「間違い」である アジャイル主義者の衰亡 複雑性のパンフレット まとめ 振り返りとアクション
Amazonで詳しく見る
紹介文
オブジェクト開発を経験した技術者が、アーキテクチャを理解しないまま開発を行うために、エンタープライズアプリケーション開発では共通の失敗がしばしば生じます。本書は、エンタープライズアプリケーション開発者が直面するやっかいな課題に対する直接的な回答を示したものです。技術は変化(SmalltalkからJava、.NET、CORBAまで)していても、共通の問題を解決するために同じ基礎的な設計の考え方を適用することができるのです。本書は40以上のパターンを紹介しています。これらは、エンタープライズアプリケーションプラットフォームに適用可能な解決策です。前半は、エンタープライズアプリケーションの開発についての短いチュートリアルです。後半は、各パターンについて詳細に解説しています。各パターンは、JavaまたはC#でコード例を詳述し、使用法および実装について説明します。概念についても、豊富なUMLダイアグラムで例証します。
第1部 概論(レイヤ化
ドメインロジックの構築
リレーショナルデータベースへのマッピング
Webプレゼンテーション ほか)
第2部 パターン(ドメインロジックパターン
データソースのアーキテクチャに関するパターン
オブジェクトリレーショナル振る舞いパターン
オブジェクトリレーショナル構造パターン ほか)
Amazonで詳しく見る
紹介文
人類は物質(アトム)の束縛から解き放たれる──日本発メタバースプラットフォームを作った気鋭の起業家がバズワードを徹底考察。
2022年最注目キーワード〈メタバース〉が一番よくわかる教科書。
GAFAMがしのぎを削る現状から、VRの歴史や背後の思想、そして驚きの未来像まで、メタバースに関わるすべてを網羅!
「世界を変える30歳未満30人の日本人」(Forbes JAPAN)に選出された、メタバースプラットフォームcluster創業者が幻視する、人類が物質(アトム)の束縛から解き放たれる未来とは?
【目次】
第1章 メタバースとは何か
伝説的小説『スノウ・クラッシュ』/一世を風靡した「セカンドライフ」/メタバース7つの条件/8つ目の条件は「身体性」/世界的大ヒットゲーム「フォートナイト」/MMORPGとの違いは「自己組織化」/フェイスブックの大きな賭け etc.
第2章 メタバース市場とそのプレイヤーたち
ゲーム業界とSNS業界の戦い/デジタル資産・NFTの活用先/実現可能な『ハリー・ポッター』の魔法/究極のネイティブ広告/ノーコード・ツールとしての「どうぶつの森」/Web3.0を牽引するイーサリアム etc.
第3章 人類史にとってのメタバース
「計算」は身体と深く結びついている/「数学を数学する」という挑戦/人間と機械を融合する「サイバネティクス」/知性とはパターンを見つけること/現実はすでに「圧縮」されている/情報を動かすバーチャリティの時代/主役はアトムからデータへ交代 etc.
第4章 VRという技術革命
VR発展の3つのフェーズ/画期的な89年の「アイフォン」/VRの3大技術要素/オキュラスの快進撃/デバイス技術をオープンソースに/2016年の新機種旋風/VRデバイスの驚異的な進化スピード etc.
第5章 加速する新しい経済
ゲーム・イベント・エロ/VR・ARでやる必要がないこと/世界初の有料VRライブ/アーカイブ機能はタイムマシンである/メタバースの第1次&第2次産業/NFTによるクリエイターの復権/遊べば遊ぶほど稼げる未来 etc.
第6章 メタバースの未来と日本
"面倒くさい"コミュニケーションの歴史/デジタル世界で「体を重ねる」/メタバース・ファーストな都市/コラボして建造するメタバースのピラミッド/日本のストロングポイント etc.
【プロフィール】
加藤直人(かとう・なおと)
クラスター株式会社 代表取締役CEO。
1988年大阪府生まれ。京都大学理学部にて宇宙論と量子物性論を研究。京都大学大学院理学研究科修士課程中退後、約3年間のひきこもり生活を過ごす。
2015年にスタートアップ「クラスター」を起業。2017年にVRプラットフォーム「cluster」を公開。
clusterは現在アバターを用いたコミュニケーションやオンラインゲームの投稿などができるメタバースプラットフォームへと進化している。
Amazonで詳しく見る
紹介文
大須賀美恵子氏(大阪工業大学特任教授・日本バーチャルリアリティ学会会長[2020/21年度])、深津貴之氏(note CXO)推薦!
メタバース発、人類を別次元にいざなう衝撃のルポルタージュ!
【メタバースは我々に何をもたらすのか? “原住民”が語るメタバース解説の決定版】
メタバースでは「新たな人類」が文化を築きつつある――期待が膨らむメタバースの本当の姿、そして真の可能性とは? 仮想現実世界の住人が物理現実世界の私たちに伝える、衝撃のルポルタージュ!
Meta(旧Facebook)の事業計画と社名変更の発表以来、注目度が急上昇した「メタバース」。本書は、特にソーシャルVRに焦点をあてて、メタバースについて解説します。ただし、単なるソーシャルVRの概説ではありません。メタバースが人間の在り方を劇的に進化させる可能性を考察する、仮想現実住民である著者が物理現実に住む私たちへおくるディープで刺激的な「別次元のルポルタージュ」です。
前半では現状の主なソーシャルVRサービスの概要の紹介や、VRゴーグル、トラッキング、アバターといった関連技術の簡単な解説を行います。現在最もメタバースを実現していると考えられる「ソーシャルVR」とはそもそもどのような世界なのでしょうか? 住民ならではの視点で基本的な事項をわかりやすく整理します。
後半では、ソーシャルVRユーザーへのアンケート調査や著者本人の経験にもとづき、アバターをまとうことによるアイデンティティやコミュニケーションの変化を考察します。また、アバターと事実上無限で自由な空間性に注目して、経済分野における可能性も指摘します。これらを通じて、肉体や空間に縛られてきた人間社会がメタバースによって劇的に変化しうること、そしてそうした「進化」の萌芽が現在のソーシャルVRにはすでにみられることを論じます。
仮想現実では多くの人が「美少女」になる?
アバターをまとった人間同士の恋愛関係が生まれる?
存在しないはずの「しっぽ」を触られたと感じる人たちがいる?
――本書が扱う内容は仮想現実の文化のほんの一側面にすぎません。物理現実とは違った「別の現実」の在り方を目撃してください。
【推薦!】
大須賀美恵子氏(大阪工業大学特任教授・日本バーチャルリアリティ学会会長[2020/21年度])
「1,200人を対象とした調査と広い知識に基づいた論理的展開がすばらしい。」
深津貴之氏(note CXO)
「メタバースを理解したいなら、メタバースで生活している人々の生の声を聞こう。」
■はじめに
物理現実で語るザッカーバーグ、メタバースから覗く原住民たち
「バーチャル美少女ねむ」の人生と来歴
メタバース原住民1,200人を分析「ソーシャルVR国勢調査」
本書の目的と内容
メタバースは荒野のフロンティア
ホモ・メタバース――人類の進化のてがかり
■■第1章 メタバースとは何か
■メタバース前史
「メタバース」という言葉の由来
セカンドライフと初期のメタバース概念
■メタバースの定義:実現に必要な七要件
■メタバースは世界と世界を結びつける
オープンメタバースとクローズドメタバース
リアルワールドメタバース
■メタバースではないもの
メタバースはSNSのことではない
メタバースはオンラインゲームのことではない
メタバースはAR・VRのことではない
メタバースはNFT・ブロックチェーンのことではない
■メタバースがもたらす三つの革命
メタバースはアイデンティティの革命
メタバースはコミュニケーションの革命
メタバースは経済の革命
■■第2章 ソーシャルVRの世界
■ソーシャルVR:既にある「必要最小限のメタバース」
「ソーシャルVR」とは何か
ソーシャルVRの利用動向:VRChatが世界的に人気
■VRChat:ソーシャルVRの概念を確立した存在
圧倒的な人口とコンテンツ自由度の高さ
ソーシャルVRとしての基本的なしくみ
仮想世界最大のマーケットイベント「バーチャルマーケット」
メタバース時代の覇権を握るには山積する課題
■Neos VR:メタバースを体現するソーシャルVR
仮想世界で循環する創造性と経済性
人類のクリエイティブを加速する革新的なしくみ
メタバース内でミュージックビデオを共創してみた
敷居の高さが人口増加への課題
■cluster:メタバース時代のイベントホール
圧倒的な収容力とアクセス性
メタバース内で気軽にイベントを開催できるしくみ
個人でもイベントに1,000人以上集められた
個人の商用利用が認められていない
■バーチャルキャスト:仮想空間の超高性能撮影スタジオ
ニコニコ動画が生んだ配信のためのメタバース
配信を軸にした新たなコミュニケーションのしくみ
物理現実と仮想現実が融合したイベントを作ってみた
今後ソーシャル的な活用が広がるか
■比較からわかる四大ソーシャルVRの個性
メタバースの七要件に基づいた評価
特徴と目的に合わせた利用実態
■ソーシャルVRユーザーのプロファイル
累計プレイ時間:半数が500時間超え
プレイ頻度:半数がほぼ毎日
一回あたりプレイ時間:半数が3時間以上
年代と性別:20代男性がボリュームゾーン
■Horizon Worlds:Metaの新サービスは何をもたらすのか
統一感のあるアバターの世界観
「なりたい自分になれる権利」への姿勢はまだ不透明
一般ユーザーへのきめ細かいナビゲーションと創造性の提供
メタバースになるための課題、交錯する期待と懸念
■■第3章 メタバースを支える技術
■メタバースのために積み重ねられた人類の技術
■「バーチャルリアリティ」とは何か
■VRゴーグル:VR体験の核
被るだけで仮想空間に没入できる
VR元年からQuest 2の普及まで
没入感を実現する三つの映像性能
仮想空間でどれだけ動けるか:3DoFと6DoF
ハイエンドなPCVRと手軽なスタンドアローンVR
VRゴーグルの三つの「リスク」
■トラッキング技術:仮想空間で自在に動く
物理現実の動きをリアルタイムに追跡する技術
アウトサイドイン方式とインサイドアウト方式
フルトラ:アバターの全身を動かす
調査から伺えるフルトラの圧倒的な需要
指トラ:アバターの指を自由自在に動かす
アイトラ:アバターと目の動きが連動する
顔トラ:アバターの顔と一体になる
■アバター技術:仮想世界でなりたい自分になれる
「アバター」とは何か
「なりたい自分になれる権利」がぶつかる課題
VRM:アバターの統一規格
絵を描くようにアバターを作れる「VRoid Studio」
VRMがもたらした「なりたい自分になれる権利」
「アバターの人格権」を守るしくみ
「なりたい自分になれる」今後のメタバースの課題
■■第4章 アイデンティティのコスプレ
■魂にアイデンティティを「纏う」革命
■名前:言霊世界のアイデンティティ
新しい人生は名乗りから始まる
メタバースでの実名利用率
仮名でも「オープンで透明な世界」に向けて
■アバター:視覚世界のアイデンティティ
性別も種族も全てが自由
アバターの性別:男も女も女性アバター
「心身の性別の不一致」でなりたい性別で暮らす人も
女性アバターが選ばれる三つの理由
日本における「バ美肉」文化
美少女は「枯山水」
アバター種族の多様性
アバター種族:亜人間がトップシェア 45%
■声:音響世界のアイデンティティ
「なりたい自分」への最後の鍵
声コスプレ:加工音声によるコミュニケーション わずか16%
無言勢:非音声コミュニケーション 8%
文化によって違う加工音声の好み
男も女もkawaiiボイスになりたい
ボイチェン勢:機械の力で声を変える勢力 9%
両声類:筋肉の力で声を変える勢力 5%
バ美肉紅白:声コスプレの一般化に向けて
■魂の新しいかたち
分人主義:人間な多様な側面を認める価値観
今、歩きだす「分人」
自己のイデアの発見
■■第5章 コミュニケーションのコスプレ
■本当のコミュニケーションを「加速する」革命
■メタバースでの距離感
空間が縮める心の距離
VR飲み会:「昭和の飲み屋街」で起こる最先端コミュニケーション
なぜZoom飲みは流行らなかったのか
メタバースでは距離感が近くなる 76%
■メタバースでのスキンシップ
物理的な触覚がなくても大切な「スキンシップ」
アバター同士のスキンシップをする 74%
不愉快なスキンシップに注意
■メタバース恋愛
メタバースでも「恋」は芽生える
メタバースで恋に落ちたのは40%
恋愛に物理性別は重要でない 75%
アバターごしの恋の決め手は「性格」64%
メタバースでの「お砂糖」とは?
「お砂糖」できたのは30%
メタバースでの恋人は物理世界では恋人ではない 68%
■バーチャルセックス
「バーチャルセックス」とは何か
バーチャルセックスが変える性のありかた
バーチャルセックスの経験率と適正
■社会の新しいかたち
人類を霊長たらしめたコミュニケーション能力
人類社会のプロトコルを書き換える
■■第6章 経済のコスプレ
■メタバース経済前夜:十年以内に百兆円の経済規模?
■ミクロ・マクロ両面で経済を「拡張する」革命
■分人経済:多面性が生むクリエイターエコノミーの究極形
はじめての分人経済学
アバター経済圏
メタバース×ファッション
Skebのアバターポートレート経済圏
分人経済が人々のクリエイター化を加速する
アバターワークなら在宅で接客業ができる
分人経済で一番重要なこと
■超空間経済:経済が地球の空間の限界から解放される
はじめての超空間経済学
都市のデジタルツイン化
心象イメージによる超空間デザイン
ワールドの広告表示権が巨大産業になる
メタバース×地方創生
メタバース×学術
個人クリエイターによる超空間革命
■メタバースで生まれる職業
3Dクリエイター:メタバース世界の創造神
メタバースイベンター:仮想空間の人流をコントロールする存在
メタバース接客業:仮想空間での触れ合いが価値になる
■経済の新しいかたち
■■第7章 身体からの解放
■生まれ持った肉体を「脱ぎ捨てる」
■ファントムセンス概論
「ファントムセンス」とは何か
メタバース原住民たちは何を感じているか
ファントムセンスの原理:クロスモーダル現象と共感覚
■ファントムセンス実態調査
どんなファントムセンスを感じるか:触覚が45%
ファントムセンスを感じる部位:頭・顔が90%
ファントムセンスとスキンシップ文化
ファントムセンスの鍵は「想像力」?
強くなる感覚と弱くなる感覚
ファントムセンスを「生やす」方法
■触覚スーツ
■BMIによる「フルダイブVR」
「BMI(ブレイン・マシン・インタフェース)」とは
「ニューラリンク」の革命と「フルダイブVR」の夢
■私たちの新しい身体
■おわりに
鏡の中の「私」へ
ホモ・メタバース――肩を寄せ合い、手と手をつないで
メタバースが広まるために本当に必要なこと
Amazonで詳しく見る
紹介文
第1部 はじめに(真珠貝を開いて
「ああ(そうか)!」アルゴリズム
データで決まるプログラムの構造 ほか)
第2部 パフォーマンス(パフォーマンスに関する考察
封筒の裏で…
アルゴリズムデザインのテクニック ほか)
第3部 作品(ソート
サンプリング問題
探索 ほか)
Amazonで詳しく見る
紹介文
原著は世界標準教科書,MITでのアルゴリズム論の教育用テキスト第3版.本書は第1~35章,付録をまとめた完訳総合版である.
原著は,計算機科学の基礎分野で世界的に著名な4人の専門家がMITでの教育用に著した計算機アルゴリズム論の包括的テキストであり,その第3版.前版までで既にアルゴリズムとデータ構造に関する世界標準教科書としての地位を確立しているが,より良い教科書を目指して再び全面的な記述の見直しがなされ,それを基に新たな章や節の追加なども含めて,大幅な改訂がなされている.
単にアルゴリズムをわかりやすく解説するだけでなく,最終的なアルゴリズム設計に至るまでに,どのような概念が必要で,それがどのように解析に裏打ちされているのかを科学的に詳述している.
さらに各節末には練習問題(全957題)が,また章末にも多様なレベルの問題が多数配置されており(全158題),学部や大学院の講義用教科書として,また技術系専門家のハンドブックあるいはアルゴリズム大事典としても活用できる.
本書は,原著の第1~35章,および付録A~Dまでの完訳総合版である.また巻末の索引も圧巻で,和(英)‐英(和)という構成により,「数理用語辞典」としてもまことに有用である.
I 基礎:1.計算におけるアルゴリズムの役割,2.さあ,始めよう,3.関数の増加,4.分割統治,5.確率的解析と乱択アルゴリズム;
II ソートと順序統計量;6.ヒープソート,7.クイックソート,8.線形時間ソート,9.中央値と順序統計量;
III データ構造:10.基本データ構造,11.ハッシュ表,12.2分探索木,13.2色木,14.データ構造の補強;
IV 高度な設計と解析の手法:15.動的計画法,16.貪欲アルゴリズム,17.ならし解析
V 高度なデータ構造:18.B木,19.フィボナッチヒープ,20.Van Emde Boas木,21.互いに素な集合族のためのデータ構造
VI グラフアルゴリズム:22.基本的グラフアルゴリズム,23.最小全域木,24.単一始点最短路問題,25.全点対最短路,26.最大フロー
VII精選トピックス:27.マルチスレッドアルゴリズム,28.行列演算,29.線形計画法,30.多項式とFFT,31.整数論的アルゴリズム,32.文字列照合,33.計算幾何学,34.NP完全性,35.近似アルゴリズム;
付録 数学的基礎:A.和,B.集合など,C.数え上げと確率,D.行列
索引:記号,手続き(擬似コード),和(英),英(和)
Amazonで詳しく見る
紹介文
Apple、Bloomberg、Lexus などを顧客としてきた、ユーザビリティコンサルタントの第一人者にして激安ユーザーテストの伝道師 スティーブ・クルーグが説く、ユーザーに「考えさせない」デザインの作り方。
ちゃんと使ってもらえるサイトにしたいWeb 担当者、コンバージョン率を上げたいEC 担当者におすすめの一冊です。
Amazonで詳しく見る
紹介文
ソフトウエア開発者専用に、「より良い人生」を送るためのノウハウ・スキルを網羅した、生き方バイブル本です。
プログラマーが良い人生を送るためには、技術習得法やキャリア構築法といったノウハウに加え、対人的な交渉・指導・意思疎通などをうまく行える能力や知恵、すなわちソフトスキルが不可欠です!
本書では、キャリアの築き方、自分の売り込み方、技術習得法、生産性の高め方といった仕事で成功する方法だけでなく、財産の築き方、心身の鍛え方、恋愛で成功する方法など、「人生全般をより良く生きる方法」を具体的に説明します。
■序文から抜粋
あなたがこの複雑な産業で活路を開こうとしている若いソフトウェア開発者なら、今手にしているこの本は、多くの知恵と優れたアドバイスを与えてくれるはずだ。
ロバート・C・マーティン(アンクル・ボブ)
■「解説」から抜粋
本書はソフトウェア技術者向けの書籍ではありますが、いわゆるテクノロジーのことはほとんど書いてありません。しかし、「成功者」になるために必要なそれ以外の多くのことが書いてあります。(中略)今こそ私たちがもっと成功に貪欲になれるチャンスなのではないでしょうか。
■「訳者あとがき」から抜粋
全体を読み通して感じたのは、人の弱さを十分に意識して書かれていること、率直であ
ること、上からではなく同じ高さから話しかけてくることでした。(中略)校正のために読み返してみると、株や栄養や腹筋のことなど、「何かで読んだんだけどさあ」という枕で出てくるような話の多くを本書で覚えたことに気づきました。無意識のうちにいろいろな影響を受けているようです。この本、ただものではないですよ。
◎目次(詳しくは、以下の目次をご覧ください)
第1部 キャリアを築こう
第2部 自分を売り込め!
第3部 学ぶことを学ぼう
第4部 生産性を高めよう
第5部 お金に強くなろう
第6部 やっぱり、体が大事
第7部 負けない心を鍛えよう
付録A コードを書けるなら金融は理解できる
付録B 株式市場の仕組み
付録C 食事と栄養の基礎:ガラクタを入れればガラクタが出てくる
付録D 健康な食事の方法:ピザは食品群ではない
謝辞
訳者あとがき
解説 まつもと ゆきひろ(Matz)
第1部 キャリアを築こう
第2章 スタートから派手にいこう!:誰もがするようなことはするな
第3章 未来について考える:あなたの目標は何?
第4章 社交術:考えている以上のものが必要だ
第5章 面接をハッキングするコツ
第6章 雇用形態:三つの選択肢を理解する
第7章 あなたはどのタイプのソフトウェア開発者か
第8章 「どの会社も同じ」ではない
第9章 出世階段の上り方
第10章 プロであること1
第11章 自由を得る:仕事の辞め方
第12章 フリーランサー:外に出て独立する
第13章 初めての製品開発
第14章 スタートアップを起業したい場合
第15章 遠隔勤務サバイバル戦略
第16章 うまくやり遂げるまではできたふりをしよう
第17章 ダメな履歴書をよくする方法
第18章 テクノロジーに対して頑なな態度を取るな
第2部 自分を売り込め!
第19章 コードモンキーのためのマーケティング基礎講座
第20章 自分だと気づいてもらえるブランドを確立しよう
第21章 大成功するブログの作り方
第22章 最大の目標:他人のために価値を生み出せ!
第23章 ソーシャルメディアの使い方
第24章 講演、プレゼンテーション、講師:しゃべるギーク
第25章 フォロワーを引きつける本や記事を書く
第26章 バカにされるのを恐れる
第3部 学ぶことを学ぼう
第27章 学び方を学ぶ:独学の方法
第28章 私の10 ステッププロセス
第29章 ステップ1~6:1度限りのステップ
第30章 ステップ7~10:繰り返すステップ
第31章 メンターを探す:あなたのヨーダを見つける
第32章 弟子をとる:ヨーダになる
第33章 教える:学びたいなら教えよう
第34章 学位は必要か、なしで済ませられるか
第35章 知識のなかの隙間を見つける
第4部 生産性を高めよう
第36章 すべては集中から始まる
第37章 私の生産性向上策を明かそう
第38章 ポモドーロテクニック
第39章 以前よりも安定して多くの仕事ができるワケ
第40章 自分自身に対して責任を取る
第41章 マルチタスク、やっていいこと、悪いこと
第42章 燃え尽き症候群の治し方
第43章 時間を浪費するメカニズム
第44章 ルーチンを持つことの重要性
第45章 習慣を作る:コードを磨こう
第46章 ブレイクダウン: 先延ばしを克服する方法
第47章 ハードワーク:その価値とできないワケ
第48章 どんなことでも、しないよりした方がまし
第5部 お金に強くなろう
第49章 給料をどのように運用するか
第50章 給与交渉の方法
第51章 オプション取引:どこが面白いの
第52章 不動産投資の基礎
第53章 引退計画を本当に理解できているか
第54章 借金の危険性
第55章 打ち明け話:私が33 歳で引退できた理由
第6部 やっぱり、体が大事
第56章 なぜ健康をハックする必要があるのか
第57章 フィットネスの目標の設定
第58章 熱力学、カロリーと人間
第59章 モチベーションを高める
第60章 筋肉のつけ方:オタクでも膨らむ上腕二頭筋
第61章 ハッシュテーブル型腹筋のつけ方
第62章 ランニングプログラムの実行法
第63章 立ち机などの数々の小技
第64章 フィットネスのためのオタク向けテクニカル製品
第7部 負けない心を鍛えよう
第65章 心は身体にどのようにして影響を与えるか
第66章 正しい心構えを持つ:リブートしよう
第67章 プラスの自己イメージを築く:脳をプログラミングする
第68章 恋愛と人間関係:コンピューターはあなたの手を握れない
第69章 私の成功本リスト
第70章 失敗に正面からぶつかれ
第71章 別れの言葉
付録A コードを書けるなら金融は理解できる
付録B 株式市場の仕組み
付録C 食事と栄養の基礎:ガラクタを入れればガラクタが出てくる
付録D 健康な食事の方法:ピザは食品群ではない
謝辞
訳者あとがき
解説 まつもと ゆきひろ(Matz)
Amazonで詳しく見る
紹介文
トップIT企業が出題するコーディング面接にチャレンジ!
人気のあるトップIT企業で行われるプログラミング面接に合格し採用されるための攻略本として、マイクロソフト、アップル、グーグルでエンジニアとして働き、かつ多くの採用プロセスに関わってきた著者によって本書は執筆されました。米国で大人気のコンピュータプログラミングに関するベストセラー書(Cracking the Coding Interview: 189 Programming Questions and Solutions)の日本語版です。
本書で取り上げるプログラミング問題はトップIT企業が求める能力が凝縮されている面接で実際に使われた問題です。そしてなによりもアルゴリズムを中心としたコンピュータサイエンスの基礎知識や活用法を楽しみながら学べる内容となっています。
前著「世界で闘うプログラミング力を鍛える150問」と比べ問題数が増えただけでなく、Big-O記法の解説章や発展課題、解き方のヒントの追加、また全ての問題がカテゴライズされより読みやすくなりました。
問題を出しっぱなしにしない著者の親切丁寧な解説が本書最大の特徴です。
Amazonで詳しく見る
紹介文
本書は柔軟で、再利用可能な、理解しやすい設計のために、オブジェクト指向ソフトウェア設計において遭遇するさまざまな問題に対する解法を、23個のデザインパターンとしてカタログ化。あなたのプログラムにも、即、適用できます。Software Development Productivity Award受賞。
概論
事例-ドキュメントエディタの設計
デザインパターン・カタログ(生成に関するパターン
構造に関するパターン
振る舞いに関するパターン)
終わりに
Amazonで詳しく見る
紹介文
システム保守の現場でありがちな、構造が複雑で理解できないようなコードに対する分析手法・対処方法について解説。コードを理解し、テストできるようにし、リファクタリングを可能にし、機能を追加できるテクニックを紹介。
第1部 変更のメカニズム(ソフトウェアの変更
フィードバックを得ながらの作業
検出と分離
接合モデル
ツール)
第2部 ソフトウェアの変更(時間がないのに変更しなければなりません
いつまで経っても変更作業が終わりません
どうやって機能を追加すればよいのでしょうか?
このクラスをテストハーネスに入れることができません
このメソッドをテストハーネスで動かすことができません
変更する必要がありますが、どのメソッドをテストすればよいのでしょうか?
1カ所にたくさんの変更が必要ですが、関係するすべてのクラスの依存関係を排除すべきでしょうか?
変更する必要がありますが、どんなテストを書けばよいのかわかりません
ライブラリへの依存で身動きが取れません
私のアプリケーションはAPI呼び出しだらけです
変更できるほど十分に私はコードを理解していません
私のアプリケーションには構造がありません
自分のテストコードが邪魔になっています
私のオブジェクトはオブジェクト指向ではありませんが、どうすれば安全に変更できるでしょうか?
このクラスは大きすぎて、もうこれ以上大きくしたくありません
同じコードをいたるところで変更しています
モンスターメソッドを変更する必要がありますが、テストを書くことができません
どうすれば何も壊していないことを確認できるでしょうか?
もうウンザリです。何も改善できません)
第3部 依存関係を排除する手法
Amazonで詳しく見る
紹介文
ソフトウェアのプロになるには本書が必要だ!
ソフトウェアのプロとは? プロの行動とは? 衝突・厳しいスケジュール・理不尽なマネージャにどう対応すべきか? いつ・どのようなときに「ノー」と言うべきか? プロはプレッシャーにどう対応するのか?
ソフトウェアのプロとは? プロの行動とは? 衝突・厳しいスケジュール・理不尽なマネージャにどう対応すべきか? いつ・どのようなときに「ノー」と言うべきか? プロはプレッシャーにどう対応するのか?
序章 必読イントロダクション
第1章 プロ意識
第2章 「ノー」と言う
第3章 「イエス」と言う
第4章 コーディング
第5章 テスト駆動開発
第6章 練習
第7章 受け入れテスト
第8章 テスト戦略
第9章 時間管理
第10章 見積もり
第11章 プレッシャー
第12章 協力
第13章 チームとプロジェクト
第14章 指導・徒弟制度・職人気質
付録A ツール
Amazonで詳しく見る
紹介文
タールの沼
人月の神話
外科手術チーム
貴族政治、民主政治、そしてシステムデザイン
セカンドシステム症候群
命令を伝える
バベルの塔は、なぜ失敗に終わったか?
予告宣言する
5ポンド袋に詰め込んだ10ポンド
文書の前提
1つは捨石にするつもりで
切れ味のいい道具
全体と部分
破局を生み出すこと
もう1つの顔
銀の弾などない-ソフトウェアエンジニアリングの本質と偶有的事項
「銀の弾などない」再発射
『人月の神話』の命題-真か偽か
『人月の神話』から20年を経て
Amazonで詳しく見る
紹介文
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead).
You want to learn how those principles will help the next time you're up a creek without a design paddle pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks.
In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.
Amazonで詳しく見る
紹介文
初めて学ぶ方、過去に挫折した経験のある方、知識を確固たるものにしたい方を対象に、イラストや写真を使ってやさしく楽しく解説する人気のHead Firstシリーズのデザインパターン編。刺激的なレイアウト、思わず膝を叩く見事なたとえ、引き込まれる小話、楽しいクイズやパズルで飽きることなく読み進むことができます。複雑難解なデザインパターンの概念が面白いほどよくわかる、目からウロコの画期的な書籍です。
デザインパターン入門:デザインパターンへようこそ
Observerパターン:オブジェクトを事情通に
Decoratorパターン:オブジェクトの装飾
Factoryパターン:00の利点を活用した構築
Singletonパターン:唯一のオブジェクト
Commandパターン:呼び出しのカプセル化
AdaptorパターンとFacadeパターン:適合可能にする
Template Methodパターン:アルゴリズムのカプセル化
IteratorパターンとCompositeパターン:適切に管理されたコレクション
Stateパターン:物事の状態
Compoundパターン:パターンのパターン
パターンの有効利用:実世界でのパターン
付録:残りのパターン
Amazonで詳しく見る
紹介文
リファクタリングのガイドブックであり、ソフトウェア開発者にとって非常に役立つ一冊。
ソフトウェア開発の名著、第2版登場!
リファクタリングは、ソフトウェアの外部的な振る舞いを保ったままで、内部の構造を改善する作業を指します。本書はリファクタリングのガイドブックであり、リファクタリングとは何か、なぜリファクタリングをすべきか、どこを改善すべきか、実際の事例で構成され、ソフトウェア開発者にとって非常に役立つものとなっています。
本第2版では、約20年前のオリジナル原稿の構成は変わらないものの、大幅に書き換えられているほか、サンプルコードがJavaからJava Scriptになるなど、現代的にアレンジされています。
Amazonで詳しく見る
紹介文
コードを書き、読み、洗練する
本書のケーススタディを注意深く読むことで、コードを洗練していく過程で行うべき判断について学ぶことができます。プログラムが動作したからといって、プログラミングが終わったことにはならないのです。
本書のケーススタディを注意深く読むことで、コードを洗練していく過程で行うべき判断について学ぶことができます。プログラムが動作したからといって、プログラミングが終わったことにはならないのです。
第1章 クリーンコード
第2章 意味のある名前
第3章 関数
第4章 コメント
第5章 書式化
第6章 オブジェクトとデータ構造
第7章 エラー処理
第8章 境界
第9章 単体テスト
第10章 クラス
第11章 システム
第12章 創発
第13章 同時並行性
第14章 継続的改良(コマンドライン引数のパーサを用いたケーススタディ)
第15章 JUnitの内部
第16章 SerialDateのリファクタリング
第17章 においと経験則
付録A 同時並行性II
付録B org.jfree.date.SerialDate
付録C 経験則のクロスリファレンス
Amazonで詳しく見る
紹介文
永遠の名著、待望の復刊!技術が進歩しても開発者の心は変わらない。ワインバーグの原点。
第1部 人間の行動としてのプログラミング(プログラムを読む
良いプログラムとは何か
プログラミングをどのように研究するか)
第2部 社会活動としてのプログラミング(プログラミンググループ
プログラミングチーム
プログラミングプロジェクト)
第3部 個人の活動としてのプログラミング(プログラミング作業の多様性
プログラマーの性格
知能-問題解決の能力
動機づけ・訓練・経験)
第4部 プログラミングの道具(プログラミング言語
プログラミング言語の設計原則
他のプログラミングの道具)
第5部 エピローグ
Amazonで詳しく見る
紹介文
よいシステムを開発するための要件定義の方法化を、システム論、各種の工学、心理学、経済学まで動員して臨場感あふれる展開で示唆。SE必読!
I.コンセンサスの形成
II.始める方法
III.可能性の探求
IV.明確な期待
V.成功に向かって