プログラミング 書籍紹介

技術習得に有益な書籍の数々

プログラミング 書籍紹介

初心者向けから上級者向けまで、プログラミングを習得するための珠玉の32冊のご紹介です。

作って理解するOS x86系コンピュータを動かす理論と実装

現在広く普及している、x86系CPU搭載のコンピュータ。

本書はOSの機能を実装しながら、その姿を明らかにしていきます。

第1部ではまず、ハードウェア、ソフトウェアの基本概念や、CPUとOSの関係など、コンピュータの核となる理論を丁寧に解説します。

第2部では、x86系コンピュータに対象を絞り、レジスタの構成や、機械語命令の使い方などを詳細に検討します。

第3部は、いよいよOSの実装パートです。第1部、第2部で得た知識を生かして、マルチタスクなどのOSの機能を楽しみながら実装することができるでしょう。

なおイントロダクションでは、初学者向けの基礎知識を解説。

「2進数って何? 」という方でも、x86系コンピュータとOSへの理解を深めることを可能にする一冊です。

新装版 達人プログラマー 職人から名匠への道

本書は、より生産的になりたいソフトウェア開発者に向け、アジャイルソフトウェア開発手法の先駆者として知られる二人により執筆されました。経験を積み、生産性を高め、ソフトウェア開発の全体をより良く理解するための、実践的なアプローチが解説されています。

先見性と普遍性に富んだ本書は、入門者には手引きとなり、ベテランでも読み直すたびに得るものがある、座右の一冊となるでしょう。

プロを目指す人のためのRuby入門

Rubyの文法をサンプルコードで学び、例題でプログラミングの流れを体験できる解説書です。

Rubyの特徴(他プログラミング言語との違い)、テスト駆動開発やデバッグのやり方など開発現場で必要になる知識を解説しています。本書の内容を理解すれば、開発の現場で必要とされるRuby関連の知識を一通り習得できます。

達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ

SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダなSQL機能を駆使した書き方」を徹底解説しています。

リレーショナルデータベースの歴史なども網羅。SQLの原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。

Ruby on Rails 6 実践ガイド

本書では、1つの企業向け顧客管理システムを作る過程で、RailsによるWebアプリケーション開発の基礎知識とさまざまなノウハウを習得していきます。各章末には演習問題が設けられているので、理解度を確かめながら確実に読み進められます。著者が試行錯誤を繰り返した上でのベストプラクティスを提供し、読者は、実際に業務システムを構築しながらRailsのさまざまな機能、方法、作法、メソッド、テクニックを学ぶことができます。仮想環境における開発環境の構築/Railsアプリケーションの基盤ユーザー認証とDB処理/堅牢なシステム設計/テストフレームワーク―業務システムの構築を通じて、Railsアプリケーション開発をマスター。

たのしいRuby 第6版

本書は、今までプログラミングというものをしたことがない、という方でもRubyの使いこなし方の一端がつかめるように、ていねいな解説を行っています。プログラムに必要な変数・定数・メソッド・クラス・制御構造といった文法的な説明から、主なクラスの使い方と簡単な応用まで、できるだけわかりやすく説明することを心がけました。チュートリアル、基礎、クラス、実践とテーマを切り分けて、平易に解説。Rubyの基礎から応用までがわかる一冊。

Ruby on Rails 6 実践ガイド[機能拡張編]

本書のテーマは多岐にわたります。クッキー、リクエスト元のIPアドレス、Ajax、データベーストランザクション、排他的ロック、ツリー構造のデータなど、さまざまなWebアプリケーションに必須の機能を実装しながら解説します。また、この機能拡張編では、HTMLフォームのさまざまなバリエーションを紹介しています。特にRailsで業務システムを開発する場合、要求仕様に応じて自由にHTMLフォームを設計・実装する力が求められます。本書では、さまざまなフォーム設計の事例を扱っていますので、一種のレシピ集として活用できます。

リファクタリング:Rubyエディション

Rubyを使うエンジニア必読の書!

Martin Fowlerの名著『リファクタリング』のRuby対応全面改訂版が、ついに復刊!

Ruby初級者~中級者におすすめ。リファクタリングを網羅的にまとめた名著でありながら、絶版になり古書価も高騰していました。

読者の方々の熱い声に応えての復刊です。

初めてのSQL

本書『初めてのSQL』は、SQL言語に初めて触れるプログラマを対象に、SQL言語の基本を解説する書籍です。その特徴は、実践に必要なポイントを過不足なく、コンパクトにまとめたこと。「データベースの歴史」から始まり「データベースの作成と設定」「クエリ」「フィルタリング」「複数テーブルからのデータの取得」「集合」「データの作成、変換、操作」「グループ化と集約化」「サブクエリ」「結合」「条件ロジック」「トランザクション」「インデックスと制約」などについて、丁寧に解説を行います。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック

「美しいコードを見ると感動する。優れたコードは見た瞬間に何をしているかが伝わってくる。そういうコードは使うのが楽しいし、自分のコードもそうあるべきだと思わせてくれる。本書の目的は、君のコードを良くすることだ」

名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについてなど、楽しいイラストと共に説明しています。

Effective Ruby

一線級のプログラマたちが座右の一冊としている「Effective」シリーズ。

そのシリーズの最新刊となる本書は言語にRubyをとりあげ、小手先の対処法ではない骨太のRubyプログラミング技法を解説します。

ごくカンタンに実装できるがゆえに、無駄なオブジェクトを配置して見通しの悪いプログラムになっていたり、アクセスしにくいコレクションを作っていたり、機能的ではない例外処理を施していたり、知らず知らずのうちに実行速度を犠牲にしていたりなどなど、自己流では解決しない問題に正しい道筋を示してくれます。

とくに、誰か他のプログラマーに利用されるコードを、どう書くことで堅牢さや使い易さを確保するかという観点が多いことが、本書の特徴といえるでしょう。

Rubyの良さを殺しているプログラミングを撲滅し、より美しくRubyを輝かせるためのノウハウを、各種サンプルを交えてわかりやすく提示する、中級~上級者向けの一冊です。

CSSグリッドで作る HTML5&CSS3 レッスンブック

CSSグリッドをベースにすると、Webページ制作がシンプルになります。

本書では、サンプルを作りながらステップ・バイ・ステップで学習することにより、モバイルファーストで本格的なレスポンシブに対応した実践的なWeb制作に関する知識をひと通り得ることができるようになっています。

これからHTML5&CSS3を使ったWebサイトの構築を学びたい人に最適の一冊です。

パーフェクト Ruby on Rails 【改訂2版】

本書は,RubyやRailsに関する基本的なことから開発や運用に活用するツール,Railsを拡張する方法など現場で役立つ知識を中心に,最新のRails 4.1.1/Ruby 2.0.0,2.1.2に対応した書籍です。初心者から中上級者までをカバーした実践的なWebアプリケーション開発手法を解説します。

初めてのプログラミング 第2版

初めてプログラミングを学ぶ入門者を対象に、プログラミングの基礎をていねいに解説した書籍。

教材には、誰でもどんな環境でも気軽に使えるRubyを使い、実際に簡単なコードを書きながら理解を深めます。プログラミングとは何かを無理なく理解してもらうために、要点をひとつひとつていねいに解説。簡単な概念から始めて、かなり高度なプログラミングの知識まで身に付けることができます。

プログラミングを学ぶなら、本書は最初の1冊に最適な入門書です。

キタミ式イラストIT塾 ITパスポート

可愛いイラストでとてもわかりやすい解説を行っているため、ITパスポート試験にとって、まず大切となる「解説書を一冊読み、用語や計算に慣れる」ことができる書籍です。

アルゴリズムの絵本 第2版 プログラミングが好きになる新しい9つの扉

本書はアルゴリズムとプログラムロジックの基本を通じて、プログラミング(=コードを書く)の実際を学んでいただけます。アルゴリズムは、与えられたさまざまな課題をプログラムで効率良く解く、「解法」のことです。 効果的なコードを書くための第一歩を踏み出すことができます。

ルビィのぼうけん こんにちは!プログラミング

親子で楽しくプログラミングに触れる絵本 『ルビィは大きな想像力を持つ女の子。ルビィの好きな言葉は“どうして?”。ルビィの世界では考えたものがなんでも実現します。パパがお仕事でいないときは、家の中をどたどた・ふらふら歩きまわるのが大好き。ある日、ルビィはパパからの手紙を見つけます――「宝石を5つ、かくしたから、さがしてごらん。ぜんぶ見つけられるかな?」。でもどう探せばいいのか書かれていません。仕方がないので、まずはヒントを探しはじめると・・・パパの机の下に、秘密の数字が書かれた紙きれを発見! ここからルビィの本当のぼうけんが始まります・・・』

プログラミングを、子どもたちが身近に感じ、楽しく学んでいける本があればいい――このような思いから生まれたのが「ルビィのぼうけん(原題:Hello Ruby)」です。

続編として「ルビィのぼうけん コンピューターの国のルビィ」「ルビィのぼうけん インターネットたんけん隊」「ルビィのぼうけん AIロボット、学校へいく」もあります。

教養としてのコンピューターサイエンス講義 今こそ知っておくべき「デジタル世界」の基礎知識

デジタル時代で活躍するための「教養」をこの1冊で身につけよう!

プリンストン大学の一般人向け「コンピューターサイエンス」の講義が1冊に。デジタル社会をよりよく生きるための知識を伝説の計算機科学者がやさしくお伝えします。

本書は、私たちの世界(デジタル社会)が、どのように動いているのか、なぜそのしくみになっているのかをもっとも明快かつ簡潔に説明しています。地球上の誰もが読むべきです。

エリック・シュミット、グーグル元CEO、アルファベットテクニカルアドバイザー

コンピューターのハードウェアの基礎からソフトウェア、インターネットからIoT、さらは著作権やプライバシー問題まで、抑えておくべき「デジタル時代の教養」はすべて網羅され、しかもその「広さ」と内容の「深さ」のバランスが良い。

坂村健、INIAD(東洋大学情報連携学部)学部長、東京大学名誉教授

私たちの身の周りには、情報機器があふれています。そうした機器を使いこなしてデジタル社会をよりよく生きるためには、コンピューターやネットに関する知識が欠かせません。本書は、パソコンやスマホをはじめとするコンピューターや、ネット、ウェブサイトがなぜ動くのか、どう安全に使いこなせばいいのかを、理系・文系を問わない「一般の人」を対象に、イチからやさしくお伝えします。

著者は、伝説的な計算機科学者であるブライアン・カーニハン先生。プログラミング言語の歴史的名著『プログラミング言語C』(通称: K&R本)を書いた人でもあります。そう聞くと「本書は難しいかも」と思われるかもしれませんが、心配はいりません。カーニハン先生がプリンストン大学で一般人向けに行っている講義に基づいているので、理系ではない人にとっても分かりやすく平易に書いてあります。

グーグル元CEO(エリック・シュミット氏)が「地球上の誰もが読むべきだ」と激賞する1冊で、コンピューターとネットの仕組みをさっくり学び、デジタル社会をもっともっと楽しみましょう。

キタミ式イラストIT塾 応用情報技術者

可愛いイラストでとてもわかりやすい解説を行っているため、試験範囲が広く、かつ深い理解度が必要とされる応用情報技術者試験にとって、「試験範囲の内容をひととおり理解する」ことができる書籍です。

Rubyによるデザインパターン

スクリプト言語Rubyの持つ力強さ・エレガントさ・シンプルさを、Gofをはじめ従来の代表的なデザインパターンと結合させ、少ないコードでより高度な効果的ソフトウェアを記述する方法を解説します。

MetaprogrammingやRails-based Convention Over Configuration patternsなどといったRubyコミュニティから出てきた新しい革新的なパターンも紹介し、Rubyのプログラミング経験をより深く価値のあるものにしてくれる1冊です。

実践Opal

本書はRubyで書いたソースコードをJavaScriptに変換するトランスパイラ(ソースコードコンパイラ)であるOpalのチュートリアルガイド「Pragmatic Opal」の改題・最新改訂版です。Opalの入門、応用、実践と実用的なアプリケーションを作るための解説に加えてOpalの活用事例も掲載しています。

現場で使える Ruby on Rails 5速習実践ガイド

RailsでどのようにWebアプリを作るのかという基礎から、現場のニーズに合わせてどのように機能を追加していくのか、テストはどのように行うのか、複数人で開発していく場合の方法といった実践的なトピックまで、幅広くカバーしています。

Railsアプリの基本から実践的なノウハウまで、纏まった一冊です。

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

基本的な26のアルゴリズム+7つのデータ構造をすべてイラストで解説

アルゴリズムはどんな言語でプログラムを書くにしても不可欠ですが、現場で教わることはめったになく、かといって自分で学ぶには難しいものです。

本書は、アルゴリズムを独学する人のために作りました。はじめて学ぶときにはイメージしやすく、

復習するときには思い出しやすくなるよう、基本的な26のアルゴリズム+7つのデータ構造を

すべてイラストにしています。

よいプログラムを書くために知っておかなきゃいけないアルゴリズムの世界を、楽しく学びましょう。

コーディングを支える技術――成り立ちから学ぶプログラミング作法

本書は,プログラミング言語が持つ各種概念が「なぜ」存在するのかを解説する書籍です。

世の中にはたくさんのプログラミング言語があります。そしてプログラミングに関する概念も,関数,型,スコープ,クラス,継承など,さまざまなものがあります。多くの言語で共通して使われる概念もあれば,一部の言語でしか使われない概念もあります。これらの概念は,なぜ生まれたのでしょうか。本書のテーマは,その「なぜ」を理解することです。

そのために本書では,言語設計者の視点に立ち,複数の言語を比較し,そして言語がどう変化してきたのかを解説します。いろいろな概念が「なぜ」生まれたのかを理解することで,なぜ使うべきか,いつ使うべきか,どう使うべきかを判断できるようになるでしょう。そして,今後生まれてくる新しい概念も,よりいっそう理解しやすくなることでしょう。

わかばちゃんと学ぶ Git使い方入門

せっかく学ぶなら、やっぱり楽しい方がいい

「Gitって難しそう」「勉強しようとは思っているけど、なかなか一歩が踏み出せない」そんな方のために、楽しくGitを理解できる本を作りました。

・個性的なキャラクターたちが登場するマンガ・感覚的にわかる図解・丁寧な実践パート

上記3つの特長で、Gitを無理なく学べます。

仕事に必要な基本の使い方はもちろん、サンプルデータが使えるので、プルリクエストの練習・GitHub PagesでのWebページ公開もできます!

Rubyのしくみ -Ruby Under a Microscope-

もっと知りたい、Rubyのしくみ!

本書では、VMベースのインタプリタ型言語処理系であるRubyがコードをどのように解釈し、どうやって実行するか、そのしくみを解説。Rubyについての基礎知識がなくても、図版と短いコードの実験を多用した構成により、そのしくみについて理解することができます。

Rubyインタプリタを題材にプログラミング言語処理系の仕組みを解説。

Rubyの開発者であるまつもとゆきひろ氏の序文とYARVの開発者である笹田耕一氏の付録が加筆されています。

[改訂新版]C言語による標準アルゴリズム事典

コンピュータの算法に関わるアルゴリズムの定石、レトリックを可能な限り収録した定番の書。

手元に置いておきたい実用的な本が30年弱の時を経て新装改訂版として登場です。

定評をいただいている基本的な内容はそのままに、時代にそぐわなくなっていた部分のみ改訂。

これからも末長くご愛顧いただけるようにまとめ直しました。

CSSグリッドレイアウト デザインブック

CSSグリッドによるWebデザインを、作成制作を通して解説。

・縦横に均等に分割したグリッドによる「雑誌風レイアウト」

・複数のグリッドを組み合わせて作る「フライヤー風レイアウト」

・画像とテキストの重ね合わせによる「画像メインのレイアウト」

本書を通して、CSSグリッドがWebデザインにもたらす表現力と自由さを体験してください。

初めてのRuby

本書は、他言語でのプログラミング経験を持つ人を対象に、Rubyの特徴、Rubyならではの方法や慣習について解説します。これはRubyの資料を読んで実践的な学習を進めていくために必要な前提知識です。本書はRubyの基礎的な部分とメタクラスやブロック構文のような独自の概念、それらにまつわる文化を説明し、Ruby特有の考え方を知ってもらうことを目的としています。

メタプログラミングRuby 第2版

本書はRubyを使ったメタプログラミングについて解説する書籍です。

メタプログラミングとは、「プログラミングコードを記述するコード」を記述することを意味します。

メタプログラミングの背景にある基本的な考えを紹介しながら、動的ディスパッチ、ゴーストメソッド、フラットスコープといったさまざまな「魔術」を紹介します。

Rubyを使ったメタプログラミングの魔術をマスターし、自由自在にプログラミングをしたい開発者必携の一冊です。

Cの絵本 第2版 C言語が好きになる新しい9つの扉

プログラムのことを何も知らなくても勉強が始められるように考えられた、とてもやさしい入門書です。難しいと言われるC言語のポインタについても無理なくハードルを越えられるように配慮しました。本書を読むのにプログラム言語の知識は一切不要です。もっとも親しみやすいC言語の入門書。

30日でできる! OS自作入門

プログラミングの基礎からはじめて、30日後にはウィンドウシステムを有する32bitマルチタスクOSをフルスクラッチで作り上げるという入門書。ビギナーでも無理なく作成できるようPCの仕組み・アセンブラ・Cの解説から始まり、試行錯誤を繰り返しながらアルゴリズムを学びつつ、たのしく自由な雰囲気でOSをゼロから構築していくという、他に類を見ない手法による、趣味と実用と学習を兼ね備えたOS作成の入門書です。