プログラミング〈新〉作法 これからプログラムを書く人のために

荒木雅弘・著

プログラミング〈新〉作法 これからプログラムを書く人のために

発行
2024/09/26
サイズ
A5
ページ数
320
ISBN
978-4-06-536981-4
定価
2,860円(税込)
在庫
在庫あり

書籍を購入する

定価
2,860円(税込)

内容紹介

「プロとしてプログラムが書ける人」に求められる能力が大きく変わった! 1つのプログラミング言語にこだわらず、それぞれの言語のベストプラクティスを学ぼう。現代のプログラミング言語を支える技術が凝縮した一冊

目次

第1章 はじめに
1.1 プログラミングに必要な知識とは
1.2 本書の構成
1.3 プログラマに伴走する生成AI
1.4 コーディング環境
 1.4.1 オンライン実行環境
 1.4.2 ローカルでのコーディング環境
1.5 まとめ

第2章 C言語からはじめよう
2.1 C言語とは
2.2 入力・演算・出力
 2.2.1 変数・定数・リテラル
 2.2.2 演算子
 2.2.3 入出力関数
 2.2.4 数値計算を行うプログラム例
 2.2.5 配列
 2.2.6 文字と文字列
2.3 制御構造
 2.3.1 条件分岐
 2.3.2 繰り返し
 2.3.3 構造化プログラミング
2.4 関数
 2.4.1 main関数
 2.4.2 ライブラリ関数
 2.4.3 ユーザが定義する関数
 2.4.4 スコープと記憶域期間
 2.4.5 関数を用いたプログラム例
2.5 ポインタ
 2.5.1 ポインタと関数呼び出し
 2.5.2 ポインタと配列
 2.5.3 関数ポインタ
2.6 構造体と共用体
 2.6.1 構造体とは
 2.6.2 構造体の配列
 2.6.3 共用体
2.7 リソース管理
 2.7.1 ファイル入出力
 2.7.2 動的メモリ確保
 2.7.3 並行・分散処理
2.8 まとめ

第3章 プログラムが動く仕組み
3.1 ハードウェアとソフトウェア
3.2 ハードウェアの構成
 3.2.1 CPU
 3.2.2 メモリ
 3.2.3 I/Oコントローラ
3.3 プログラムの実行
 3.3.1 アセンブリ言語の基本
 3.3.2 Cプログラムとアセンブリ言語の対応
 3.3.3 数の表現
 3.3.4 メモリの使い方
3.4 ソフトウェアの構成
 3.4.1 オペレーティングシステム
 3.4.2 言語処理系
3.5 仮想化技術
 3.5.1 クラウドコンピューティング
 3.5.2 仮想マシン
 3.5.3 コンテナ
3.6 まとめ

第4章 Java:オブジェクト指向
4.1 手続き型から新しいパラダイムへ
4.2 Javaの基本
 4.2.1 言語仕様の概要
 4.2.2 入力・演算・出力
 4.2.3 配列
 4.2.4 制御構造
4.3 Javaにおけるオブジェクト指向
 4.3.1 オブジェクト指向の考え方
 4.3.2 クラス
 4.3.3 レコード
 4.3.4 オブジェクトの仕組み
4.4 オブジェクトによるエラー処理
 4.4.1 エラー処理におけるイベントとハンドラ
 4.4.2 非チェック例外
 4.4.3 チェック例外
4.5 データ構造
 4.5.1 コレクションフレームワーク
 4.5.2 ジェネリックスと型パラメータ
 4.5.3 要素へのアクセス
 4.5.4 メモリ管理
 4.5.5 コレクションフレームワークを用いたプログラム例
 4.5.6 データベース
4.6 オブジェクト指向における問題解決
 4.6.1 UMLによる図式化
 4.6.2 デザインパターン
4.7 まとめ

第5章 Elixir:関数型
5.1 関数型プログラミングとは
5.2 関数型言語Elixir
 5.2.1 Elixir の処理系
 5.2.2 Elixir の基本
5.3 関数型言語の典型的な処理
 5.3.1 Map
 5.3.2 Filter
 5.3.3 Reduce
5.4 並行処理
 5.4.1 単純なプロセス生成
 5.4.2 プロセスの監視
 5.4.3 エージェント
 5.4.4 非同期処理
5.5 まとめ

第6章 プログラミングを支える環境
6.1 開発方法論の変遷
6.2 バージョン管理
 6.2.1 Gitの基本操作
 6.2.2 ブランチの操作
 6.2.3 GitHub
6.3 パッケージマネージャ
6.4 コンテナ
 6.4.1 Dockerの構成
 6.4.2 Dockerのコマンド
6.5 統合的コーディング環境
 6.5.1 エディタとしてのVS Code
 6.5.2 クライアントとしてのVS Code
 6.5.3 生成AIの活用
 6.5.4 Gitとの連携
 6.5.5 Dockerとの連携
6.6 まとめ

第7章 Rust:高性能と安全性の追求
7.1 Rustの基本
 7.1.1 Rustの歴史と位置づけ
 7.1.2 パッケージマネージャCargo
 7.1.3 基本的な文法
 7.1.4 数値計算プログラムの例
7.2 型安全性
 7.2.1 型の分類
 7.2.2 型推論
 7.2.3 列挙型による値の限定
7.3 メモリ安全性
 7.3.1 C言語のメモリ管理
 7.3.2 Javaのメモリ管理
 7.3.3 Rustのメモリ管理手法
 7.3.4 ライフタイム
7.4 スレッド安全性
7.5 まとめ

第8章 Python:スクリプト言語からエコシステムへ
8.1 Pythonの歴史と位置づけ
8.2 Pythonの基本
 8.2.1 記憶・演算・入出力
 8.2.2 データ構造と型
8.3 Pythonのプログラム構造
 8.3.1 制御構造
 8.3.2 関数
 8.3.3 クラス
 8.3.4 ファイル入出力
8.4 Pythonのエコシステム
 8.4.1 ライブラリ
 8.4.2 機械学習ライブラリの事例
 8.4.3 Project Jupyter
8.5 Pythonと生成AI
8.6 まとめ

第9章 JavaScript:webアプリケーション開発
9.1 JavaScriptとは
9.2 webの仕組み
 9.2.1 HTML
 9.2.2 CSS
 9.2.3 クライアント側での処理
 9.2.4 サーバ側での処理
9.3 JavaScriptの文法
 9.3.1 変数
 9.3.2 入出力
 9.3.3 制御構造
 9.3.4 関数
 9.3.5 クラス
 9.3.6 JSON
9.4 TypeScript
 9.4.1 型ヒントと型推論
 9.4.2 型エイリアス
 9.4.3 Union型
 9.4.4 型の互換性
9.5 JavaScript/TypeScriptのコーディングパターン
 9.5.1 web APIの利用
 9.5.2 生成AIを用いたバックエンドのコーディング
 9.5.3 生成AIを用いたフロントエンドのコーディング
9.6 まとめ